Compare commits

...

30 commits

Author SHA1 Message Date
499b4bf30a Dotnet lock files failing, basically right after I update flake.lock? Feels like a coincidence, but... 2024-05-18 18:01:41 -04:00
884596a413 Forgot to update rom-properties.src before committing originally! 2024-05-18 17:48:32 -04:00
a30d7b0b94 Removed my callPackage = pkgs.callPackage\ "alias" so it's a little less confusing. 2024-05-18 17:47:43 -04:00
3b7957d45b Silly me, I forgot pkgs. on the flake's callPackage call for rom-properties! 2024-05-18 17:46:13 -04:00
d4bb874a57 Finally add rom-properties to home.packages! 2024-05-18 17:40:09 -04:00
3b82363534 Update flake.lock just because. 2024-05-18 17:20:43 -04:00
5ae1623230 Remove TargetName_lowercase.diff since it didn't work, so I don't use it anymore. 2024-05-18 16:36:04 -04:00
a609e36403 Swap to using the main csproj, and rename the binary to sabretools 2024-05-18 16:35:10 -04:00
dc83e9ca00 Add SabreTools to home.packages -- Bianry is SabreTools, trying to fix that... 2024-05-18 06:27:33 -04:00
1f699da0a1 Commas and incorrectly pointing at variables are hard. 2024-05-18 05:54:39 -04:00
813722216b Oops, messed up where ps3dec was actually located. 2024-05-18 05:51:17 -04:00
267dad7f8b idk, I moved some comments around again. 2024-05-18 05:49:45 -04:00
4e4601eafa Change ps3dec license to lib.licenses.unfree because \*TECHNICALLY...\* 2024-05-18 05:49:17 -04:00
5bfa7afb82 Add ps3dec to home.packages 2024-05-18 05:44:36 -04:00
3edea2bd31 Update flake.lock 2024-05-18 04:06:46 -04:00
c63489eff2 Update IRDKit's deps.nix so it can build. 2024-05-18 03:48:31 -04:00
8376e2453c Bleh 2024-05-18 03:34:23 -04:00
4e034f1bfc Tweak some comments around my self-packaged apps. 2024-05-18 03:31:06 -04:00
a23fc68d9e Add my self-packaged apps to flake.nix so I can easily update them in future. 2024-05-18 03:30:33 -04:00
1b7aa8a8b3 Enable nixpkgs.config.allowUnfree = true; to make my life easier. 2024-05-18 03:27:59 -04:00
7ad91a64ac Remove myself as maintainer of ird_tools just to ease any issues there. 2024-05-18 02:16:16 -04:00
08baf793bf Ah, I misread my own comment lol. Tweaked the message a little, that's for future me. 2024-05-18 02:11:05 -04:00
42619cc0d5 Change ird_tools back to lib.licenses.unfree, and tweak comment layout. 2024-05-18 02:08:59 -04:00
e91485c0af Add irdkit and ird_tools to my packages again. 2024-05-18 01:50:05 -04:00
a4f824c0e7 Add old root channel list to README.md so I have a record of it. Just in case. 2024-05-17 19:19:37 -04:00
77d5921a3d ... Maybe a couple more comments. 2024-05-14 06:02:59 -04:00
ac341f613a Move some comments around again. 2024-05-14 04:23:11 -04:00
3bc7bddb25 Change system.configurationRevision to use self.shortRev instead of rev. 2024-05-14 04:04:51 -04:00
2ea9051688 Remove some outdated files that git was still holding... for some reason. 2024-05-13 23:31:53 -04:00
d0c059e25e First try of a slightly cleaner version. 2024-05-13 23:18:54 -04:00
20 changed files with 742 additions and 370 deletions

View file

@ -1,125 +0,0 @@
{
description = "Whovian9369's WSL NixOS Config";
inputs = {
### Basically required
nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-unstable";
};
nixos-wsl = {
url = "github:nix-community/NixOS-WSL/main";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
### My extra inputs
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
# Optional, not necessary for the module
inputs.darwin.follows = "";
# Optionally choose not to download darwin deps
# (saves some resources on Linux)
inputs.systems.follows = "nix-systems_default";
inputs.home-manager.follows = "home-manager";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
my_packages = {
url = "/home/whovian/.flakes";
inputs.nixpkgs.follows = "nixpkgs";
};
xil = {
url = "github:Qyriad/Xil";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
nix-index-database = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
#########
# Extra inputs that I am adding just to make my life easier,
# but don't like that they're included >:(
#########
# I don't like `flake-utils`, but so many things use it that I might as
# well only keep a single version of it.
flake-utils = {
url = "github:numtide/flake-utils";
inputs.systems.follows = "nix-systems_default";
};
# Ditto to github:nix-systems/default
nix-systems_default = {
url = "github:nix-systems/default";
};
}; # inputs
outputs = {
# Needed
self, nixpkgs, nixos-wsl,
# Added by me
agenix, home-manager, my_packages, nix-index-database, xil, ... }:
{
nixosConfigurations = {
testing-wsl = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./system/configuration.nix
nixos-wsl.nixosModules.wsl
home-manager.nixosModules.home-manager
{
system.configurationRevision = self.rev or self.dirtyRev or "dirty";
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit my_packages;
inherit xil;
my_pkgs = my_packages.packages.x86_64-linux;
system = "x86_64-linux";
};
sharedModules = [
# ./home/home.nix
agenix.homeManagerModules.default
nix-index-database.hmModules.nix-index
];
users.whovian = import ./home/home.nix;
# users.whovian.home.packages = [
# agenix.packages.x86_64-linux.default
# ];
/*
home-manager.lib.homeManagerConfiguration {
# configuration = import ./home/home.nix;
# system = "x86_64-linux";
# pkgs = import nixpkgs {
# system = "x86_64-linux";
# config = {
# allowUnfree = true;
# };
# };
};
*/
};
}
];
};
};
};
}

View file

@ -10,3 +10,11 @@ If you have suggestions on "fixing" or "cleaning up" my configurations, please a
[[Xe Iaso] Nix Flakes on WSL](https://xeiaso.net/blog/nix-flakes-4-wsl-2022-05-01/)
[[Home-Manager GitHub/Site] Setting up `home-manager` as a NixOS module.](https://nix-community.github.io/home-manager/index.xhtml#sec-flakes-nixos-module)
### Notes:
```bash
$ sudo nix-channel --list
nixos https://nixos.org/channels/nixos-23.11
nixos-wsl https://github.com/nix-community/NixOS-WSL/archive/refs/heads/main.tar.gz
```

View file

@ -70,11 +70,11 @@
]
},
"locked": {
"lastModified": 1715380449,
"narHash": "sha256-716+f9Rj3wjSyD1xitCv2FcYbgPz1WIVDj+ZBclH99Y=",
"lastModified": 1715930644,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d7682620185f213df384c363288093b486b2883f",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
"type": "github"
},
"original": {
@ -83,23 +83,6 @@
"type": "github"
}
},
"my_packages": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1715061149,
"narHash": "sha256-ZM13/Z/7W9POKVIoMIJzRRzKY8v9oMD1nhLdXej0pFY=",
"path": "/home/whovian/.flakes",
"type": "path"
},
"original": {
"path": "/home/whovian/.flakes",
"type": "path"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
@ -107,11 +90,11 @@
]
},
"locked": {
"lastModified": 1714878592,
"narHash": "sha256-E68C03sYRsYFsK7wiGHUIJm8IsyPRALOrFoTL0glXnI=",
"lastModified": 1715483403,
"narHash": "sha256-WMDuQj7J5jbpXI/X/E6FZRKgBFGcaSTvYyVxPnKE6KU=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "a362555e9dbd4ecff3bb98969bbdb8f79fe87f10",
"rev": "f9027322f48b427da23746aa359a6510dfcd0228",
"type": "github"
},
"original": {
@ -146,11 +129,11 @@
]
},
"locked": {
"lastModified": 1715237610,
"narHash": "sha256-/ZeWQ4mL3DfHsbTZYc80qMrL4vBfENP0RiGv2KrCrEo=",
"lastModified": 1716028628,
"narHash": "sha256-sjgvUXjDXIA48tq+nbQ+e2BfAJyz865mfOtXTj1c8yQ=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "61fe33f4194bbbc48c090a2e79f4eb61b47c9b75",
"rev": "041bad074dbde651c6b9d23dce5ee15b67e98c6c",
"type": "github"
},
"original": {
@ -162,11 +145,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1715266358,
"narHash": "sha256-doPgfj+7FFe9rfzWo1siAV2mVCasW+Bh8I1cToAXEE4=",
"lastModified": 1715961556,
"narHash": "sha256-+NpbZRCRisUHKQJZF3CT+xn14ZZQO+KjxIIanH3Pvn4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f1010e0469db743d14519a1efd37e23f8513d714",
"rev": "4a6b83b05df1a8bd7d99095ec4b4d271f2956b64",
"type": "github"
},
"original": {
@ -181,7 +164,6 @@
"agenix": "agenix",
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"my_packages": "my_packages",
"nix-index-database": "nix-index-database",
"nix-systems_default": "nix-systems_default",
"nixos-wsl": "nixos-wsl",

View file

@ -31,11 +31,6 @@
inputs.nixpkgs.follows = "nixpkgs";
};
my_packages = {
url = "/home/whovian/.flakes";
inputs.nixpkgs.follows = "nixpkgs";
};
xil = {
url = "github:Qyriad/Xil";
inputs.nixpkgs.follows = "nixpkgs";
@ -71,42 +66,59 @@
# Needed
self, nixpkgs, nixos-wsl,
# Added by me
agenix, home-manager, my_packages, nix-index-database, xil, ... }:
agenix, home-manager, nix-index-database, xil, ... }:
let
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
in
{
nixosConfigurations = {
nixos-wsl = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./system/configuration.nix
./system/nixos-wsl/configuration.nix
nixos-wsl.nixosModules.wsl
home-manager.nixosModules.home-manager
{
system.configurationRevision = self.rev or self.dirtyRev or "dirty";
system.configurationRevision = self.shortRev or self.dirtyShortRev or "dirty";
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
sharedModules = [
./home/home.nix
agenix.homeManagerModules.default
nix-index-database.hmModules.nix-index
];
users.whovian.home.packages = [
agenix.packages.x86_64-linux.default
];
users.whovian = ./home/home.nix;
# Optionally, use home-manager.extraSpecialArgs to pass arguments to home.nix
extraSpecialArgs = {
system = "x86_64-linux";
inherit my_packages;
inherit xil;
my_pkgs = my_packages.packages.x86_64-linux;
inherit nixpkgs;
pkgs = import nixpkgs {
system = "x86_64-linux";
config.allowUnfree = true;
};
inherit agenix;
# inherit my_packages;
# my_pkgs = my_packages.packages.x86_64-linux;
};
};
}
];
};
};
packages.x86_64-linux = {
irdkit = pkgs.callPackage ./home/packages/irdkit/package.nix {};
ird_tools = pkgs.callPackage ./home/packages/ird_tools/package.nix {};
ps3dec = pkgs.callPackage ./home/packages/ps3dec/package.nix {};
sabretools = pkgs.callPackage ./home/packages/sabretools/package.nix {};
rom-properties = pkgs.callPackage ./home/packages/rom-properties/package.nix {};
};
};
}

16
home/aliases.nix Normal file
View file

@ -0,0 +1,16 @@
{
home.shellAliases = {
# From Windows "%PATH%"
"adb" = "adb.exe";
"caja" = "explorer.exe";
"hactoolnet" = "hactoolnet.exe";
"mpv" = "mpv.com";
"tailscale" = "tailscale.exe";
"yt-dlp" = "yt-dlp.exe";
"7zexe" = "/mnt/c/Program\\ Files/7-Zip/7z.exe";
# From Nix environment
"7z" = "7zz";
# "7zz" is from "nixpkgs#_7zz"
};
}

37
home/dotfiles.nix Normal file
View file

@ -0,0 +1,37 @@
{
home.file = {
/*
# Building this configuration will create a copy of 'dotfiles/screenrc' in
# the Nix store. Activating the configuration will then make '~/.screenrc' a
# symlink to the Nix store copy.
".screenrc".source = dotfiles/screenrc;
# You can also set the file content immediately.
".gradle/gradle.properties".text = ''
org.gradle.console=verbose
org.gradle.daemon.idletimeout=3600000
'';
*/
".zshrc".text = ''
eval "$(direnv hook zsh)"
download_nixpkgs_cache_index () {
filename="index-$(uname -m | sed 's/^arm64$/aarch64/')-$(uname | tr A-Z a-z)"
mkdir -p ~/.cache/nix-index && cd ~/.cache/nix-index
# -N will only download a new version if there is an update.
wget -q -N https://github.com/Mic92/nix-index-database/releases/latest/download/$filename
ln -f $filename files
}
'';
".lftp/rc".text = ''
alias s32 "mirror -c --use-pget-n=32"
alias p32 "pget -n 32 -c"
alias p16 "pget -n 16 -c"
alias s16 "mirror -c --use-pget-n=16"
alias p8 "pget -n 8 -c"
alias ssl "set ssl:verify-certificate false"
'';
};
}

View file

@ -1,94 +1,52 @@
{
lib,
agenix,
config,
modulesPath,
nixosConfig,
nixpkgs,
options,
osConfig,
pkgs,
my_pkgs,
xil,
specialArgs,
system,
...
xil
}:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "whovian";
home.homeDirectory = "/home/whovian";
imports = [
./pkgs_and_programs.nix # home.packages and programs
./dotfiles.nix # home.file
./variables.nix # home.sessionVariables
./aliases.nix # home.shellAliases
];
/*
This value determines the Home Manager release that your configuration is
compatible with. This helps avoid breakage when a new Home Manager release
introduces backwards incompatible changes.
You should not change this value, even if you update Home Manager. If you do
want to update the value, then make sure to first check the Home Manager
release notes.
*/
home.stateVersion = "23.05"; # Please read the comment before changing.
home = {
# Home Manager needs a bit of information about you and the paths it should
# manage.
username = "whovian";
homeDirectory = "/home/whovian";
# The home.packages option allows you to install Nix packages into your
# environment.
nixpkgs = {
config = {
allowUnfree = true;
};
/*
This value determines the Home Manager release that your configuration is
compatible with. This helps avoid breakage when a new Home Manager release
introduces backwards incompatible changes.
You should not change this value, even if you update Home Manager. If you do
want to update the value, then make sure to first check the Home Manager
release notes.
*/
stateVersion = "23.05"; # Please read the comment before changing.
# Let Home Manager install and manage itself.
# Probably not needed for a module?
# programs.home-manager.enable = true;
};
home.packages = [
pkgs._7zz
pkgs.bat
pkgs.binwalk
pkgs.cdecrypt
pkgs.colorized-logs
pkgs.croc
pkgs.dhex
pkgs.fd
pkgs.file
pkgs.gdrive3
pkgs.git
pkgs.hactool
pkgs.instaloader
pkgs.internetarchive
pkgs.lynx
pkgs.megatools
pkgs.ncdu
pkgs.nixfmt-classic
pkgs.progress
pkgs.pyrosimple
pkgs.python3
pkgs.quickbms
pkgs.rclone
pkgs.screen
pkgs.sshfs
pkgs.unrar-wrapper
pkgs.wget
pkgs.xxd
pkgs.yq
# my_pkgs.irdkit
my_pkgs.ird_tools
my_pkgs.rom-properties
xil.packages.${system}.xil
];
/*
Disabled
pkgs.binutils
# Instead just do `nix shell nixpkgs#binutils -c strings -- INPUT.ext > INPUT.ext.strings
pkgs.mpv
pkgs.terminator
pkgs.yt-dlp
pkgs.p7zip
# Replaced in favour of nixpkgs#_7zz
Disabled
*/
/*
# It is sometimes useful to fine-tune packages, for example, by applying
# overrides. You can do that directly here, just don't forget the
# parentheses. Maybe you want to install Nerd Fonts with a limited number of
# fonts?
(pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
*/
# nixpkgs = {
# config = {
# allowUnfree = true;
# };
# };
age = {
identityPaths = [
@ -106,112 +64,4 @@
};
};
};
programs = {
bat = {
enable = true;
};
direnv = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
git = {
enable = true;
userName = "Whovian9369";
userEmail = "Whovian9369@gmail.com";
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
jq = {
enable = true;
};
nix-index = {
enable = true;
enableZshIntegration = false;
};
ripgrep = {
enable = true;
};
zsh = {
enable = true;
# Honestly unsure if I should be using `programs.zsh.envExtra` or
# `programs.zsh.localVariables` here.
localVariables = {
DISABLE_MAGIC_FUNCTIONS = true;
};
# enableAutosuggestions = true;
# enableCompletion = true;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"sudo"
];
theme = "bira";
};
};
};
home.file = {
/*
# Building this configuration will create a copy of 'dotfiles/screenrc' in
# the Nix store. Activating the configuration will then make '~/.screenrc' a
# symlink to the Nix store copy.
".screenrc".source = dotfiles/screenrc;
# You can also set the file content immediately.
".gradle/gradle.properties".text = ''
org.gradle.console=verbose
org.gradle.daemon.idletimeout=3600000
'';
*/
".zshrc".text = ''
eval "$(direnv hook zsh)"
download_nixpkgs_cache_index () {
filename="index-$(uname -m | sed 's/^arm64$/aarch64/')-$(uname | tr A-Z a-z)"
mkdir -p ~/.cache/nix-index && cd ~/.cache/nix-index
# -N will only download a new version if there is an update.
wget -q -N https://github.com/Mic92/nix-index-database/releases/latest/download/$filename
ln -f $filename files
}
'';
".lftp/rc".text = ''
alias s32 "mirror -c --use-pget-n=32"
alias p32 "pget -n 32 -c"
alias p16 "pget -n 16 -c"
alias s16 "mirror -c --use-pget-n=16"
alias p8 "pget -n 8 -c"
alias ssl "set ssl:verify-certificate false"
'';
};
home.sessionVariables = {
EDITOR = "nano";
DOTNET_CLI_TELEMETRY_OPTOUT = "1";
OPENAI_API_KEY = "\$(cat ${config.age.secrets."openai".path})";
CURSEFORGE_API_KEY = "\$(cat ${config.age.secrets."cursed".path})";
ITCHIO_API_KEY = "\$(cat ${config.age.secrets."itchy".path})";
};
home.shellAliases = {
"adb" = "adb.exe";
"caja" = "explorer.exe";
"hactoolnet" = "hactoolnet.exe";
"mpv" = "mpv.com";
"tailscale" = "tailscale.exe";
"yt-dlp" = "yt-dlp.exe";
"7zexe" = "/mnt/c/Program\\ Files/7-Zip/7z.exe";
"7z" = "7zz";
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -0,0 +1,48 @@
{
lib,
fetchFromGitHub,
gcc13Stdenv,
makeWrapper,
zlib,
glibc,
}:
gcc13Stdenv.mkDerivation {
pname = "ird_tools";
version = "v0.7";
src = fetchFromGitHub {
name = "ird_tools";
owner = "Zarh";
repo = "ird_tools";
rev = "9489afc0979715a86fbfb6b5a9a93330863505eb";
hash = "sha256-1m243bPabo2riOInblDggqTniXg1f16UqeLXJfEBrf4=";
};
nativeBuildInputs = [ makeWrapper glibc.static zlib.static zlib.dev ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
cp ird_tools $out/bin
runHook postInstall
'';
meta = {
homepage = "https://github.com/Zarh/ird_tools";
description = "DESCRIPTION PLACEHOLDER";
longDescription = "DESCRIPTION PLACEHOLDER";
# license = lib.licenses.gpl3;
license = lib.licenses.unfree;
/*
Dev feels that it should be GPLv3, but doesn't have a `LICENSE` file in
the repository "proving" the licensing. Running with it for now.
Info on this: https://github.com/Zarh/ird_tools/issues/3
I'm keeping `lib.licenses.gpl3` license comment just to make sure I
remember to change it back... If the dev adds the file.
*/
maintainers = with lib.maintainers; [ ];
mainProgram = "ird_tools";
platforms = lib.platforms.linux;
};
}

View file

@ -0,0 +1,78 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.30"; sha256 = "17k3l8xd5bsyk69bm5q4nxbpb4i0izw1kzmzi7j3p8pmm9prgrpy"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.19"; sha256 = "19pjhnx49srxp1qwknc390gapc44019wy4adz9caxpryw0ch4l1x"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "00ha2sl4gvqv68mbrsizd6ngqy0vv6vamngzjxr338k1w7a276dx"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "183xgqzlwd5lhacxdwcjl8vcq7r7xypv0hddps9k32mmmwf83d8h"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "1n4v5przbrjhzj01b6qijpdc2jbsxr66ijvd0483qxh4s0b4jppr"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0i8mhcy09lmjqhzqmwvp0n5qkizdqin3vap206b2ad28yl6963wz"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0ywz63q8vrdp25ix2j9b7h2jp5grc68hqfl64c6lqk26q9xwhp9r"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "066fwdlssbv556zd9w1x87x1j8j4kafj9rxyy0692bssdb4gcyc8"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "18v0l07q74m5xxaf6y6dkmr6and8ivya0nslffnr4djrxcbiygdr"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "1zypq8jgk9z3kn3mmkdijvc9h65iyy7gaif9p0vhnylmvvm89jzp"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0p53lyqmr5n2ym202pbgmsd9b9aa6jar7ic04dcq86h2g77r5jqk"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "1dqilsqwwymy7fq2pnvjggn5mfvizqsisla0c36w53mg6xx7vn78"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "1crk54a1wvj76s9gnh46pi7wk8ryympm9xh2jq4s4rpp329fqgic"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1qvvqf8mmzzc7a7fhx324dprnbxhknr3qxspb2xhsn3yyg44xn2d"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "009srl8vazkjnd93xr6k1m353spbki9gn1yzp4zgazgbrini6rqc"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1jmg7sxjnsmaa7ag6bgyhndlhvibswcmnrw0n6sr6crw2y0in2a3"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "3.1.32"; sha256 = "1zygp70xrk5zggs3q4a6yc6jfdwzcsjjsapqpwn6qyx35m69b72p"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.17"; sha256 = "07v7vyqm556xr1ypkazfp6gh6drgf20zkwbhkpja8bwdcr6lphbb"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.30"; sha256 = "0l3gjhmnjd5n67w83smqyhmfcwzszafjgcbq8kdwxiwwh2m6nh2i"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.19"; sha256 = "1dv4vk07a7kj53sk1nf63h51swzk9yl4j7jdvkc5w2v0z5a186hm"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.32"; sha256 = "08sar3s7j6z1q5prjmz2jrbsq5ms81mrsi1c1zbfrkplkfjpld3a"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.17"; sha256 = "1lc2jhr4ikffi5ylyf8f6ya6k0hdj0wp1l0017grrwd4m5ajj4vv"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.30"; sha256 = "0ss3108c2h7afypvliyqixv4dll60sq9iwqy90k1p132znpszrmb"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.19"; sha256 = "0jcfmaq4ckcpywwxm1ack9xa001aic8pn85ggglidxgcfdr6mpzd"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.30"; sha256 = "08k5v35mvcs712kb0vcfjd1dsas5rgwrmv8rn87mzjb2p6ajl3n3"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.19"; sha256 = "0xyc0mdd7nnmc9wjzq8nxwrqagmiqxds8qwghr2rgxw55b9slc33"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.32"; sha256 = "186gjn8sbhp4z6pq8fw4g8nqk9dwyaplwvdz2y3fbbvg36lggsh0"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.17"; sha256 = "02g5w41ivrw3n6cy3l3ixhcl8bw1fsv4bzs2m34k9h5fqmliaf3c"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.30"; sha256 = "02x38c68xan8hlr59mindcl4rcx49bbh4bibh6fw1l4rrijb38lw"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.19"; sha256 = "1srx048x6nv88s308bfn2vsg9gyqvzmgn4xlzknm9yr89c5pm96q"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.30"; sha256 = "1wqqjhhlqz4dmijcx3kg3hnwq0s0jzqsddaksskzhq8avr4ziy18"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.19"; sha256 = "1z9zfzccqn6yh9mcqrkiidjagzmnk4blrralzb8q0b7mnf1b1ww9"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "13pcn74z1swz73s72zjl07f118j35wacnzgk7kbjqn83nwgqdgvq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "16whaq82pj6fqa0vam3a0va9ly843aa1z12hza040vn6252kk9fq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "0xfhcig3gj3986rxp3dhnd8hvnj4nvyhz1fz7kpx342d3g53wb37"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0m30aykrzl48i8589qn8z89hm9p1yl71cdigv1f09fmwb7c6jfm3"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0mmc57dl8plrspdxwb7209wz29vhiwqds4nfbdfws7zg35yy70c7"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "0jgcfs3jc98jfyaaamssznckbpnaygplk8pjsp6dswpansz5bnnq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "1s81sj8lnb8szqawxh3vc8wi815ln12cyhrl3f7hwcpay57xgswx"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "12zgh8pvbdl99zs0rq5ajbl91r976i47hdrrvxl2hbsxl2ws3brs"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0s71k92daakzwish65gmn4nniy6bf2hv34c0sb6m1hv3criqxmp4"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "08gs703rz3agmisy3vsdnyv5lyc32qb8kvfljzszbyqlaf5cxhd1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "06bk39zcv27cwshjsxfg5d6wzkkzdhfk08sipdc7mr1s8pk7ihi1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1ph5kx18syinp8bpzw80bgq3njl65gwzws727xcmxnysgm7snmjp"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "0xybqg2wd240r1nm2vrbn2qbfqfnqsmxn1012zzwjn17wa2si9a1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1lwnwxscza5m7pk83fwjz5r9kms3ybag2rl07f3gqp3b203iyyxx"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net20"; version = "1.0.3"; sha256 = "1s65wgj49mikq4y16yqyff315qkgm84zvjd8ymqdx39kxizrjx3z"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net35"; version = "1.0.3"; sha256 = "1ybq6l7lf6n4w8x54k8s9c1nx1dlzijx9ysply8hsrw8388mcqdi"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net40"; version = "1.0.3"; sha256 = "1566qd1s2p7l5bjlmb05axd1zs35284ivmynjn9zgjk13c5f5mjl"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net452"; version = "1.0.3"; sha256 = "1hicvqqf0s7xxry8caxw6nhvhncr5b814a6i43q0kvh3dwafwcs5"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net462"; version = "1.0.3"; sha256 = "08bfss2p262d8zj41xqndv0qgvz9lq636k2xhl80jl23ay22lsgf"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net472"; version = "1.0.3"; sha256 = "0z7mpiljkqjw1qi5zapv7mg9pyfyzlgmil34j4wi3y9r19bsb87z"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.3"; sha256 = "18h4265rn5dy5d1igddsz1ilygcyyj4id4cn2qsr3sz7722k8zla"; })
(fetchNuGet { pname = "MinAsyncBridge"; version = "0.12.4"; sha256 = "1xqiz0p9rz8kqdhi2h9gysvpfcg88vj2w4yi9ryf6205fxzra167"; })
(fetchNuGet { pname = "MinTasksExtensionsBridge"; version = "0.3.4"; sha256 = "0h69035ahcgc6h8y2qgdwi63c57rfi66nf5rjn4gqa0m76x61y8x"; })
(fetchNuGet { pname = "MinThreadingBridge"; version = "0.11.4"; sha256 = "0x9xsdjma7jf6m5z08y7fkp9xsk52zfjh8cdkmvjn396bwwql681"; })
(fetchNuGet { pname = "Net30.LinqBridge"; version = "1.3.0"; sha256 = "1i1dfksllqi84552ipbk863m2wxgp4kvsjkybkcygp8iv0pw4yqk"; })
(fetchNuGet { pname = "Net35.Actions"; version = "1.1.0"; sha256 = "0w86r4z58amb7yabk2jwx3qz038x9iqr7iwc5qc58f2svab9lv8y"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
(fetchNuGet { pname = "SabreTools.Hashing"; version = "1.1.4"; sha256 = "14qv1yallxqgd765ib65r7nsy8h6hlfb9lpl15k0q3qwwnkhkf9f"; })
(fetchNuGet { pname = "SabreTools.Models"; version = "1.3.0"; sha256 = "16jmg6cjilwf0brra7mwv91wylhfyrv5d3iz6vnfjca35mhzqxma"; })
(fetchNuGet { pname = "SabreTools.RedumpLib"; version = "1.3.4"; sha256 = "1xp74va7893aa94gaz2v2ws1wjn3011cfpcp00gd6c5x6hpz1qjs"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
(fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
]

View file

@ -0,0 +1,38 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub
}:
buildDotnetModule {
pname = "libird";
version = "0.9.2";
# NuGet page: https://www.nuget.org/packages/LibIRD
src = fetchFromGitHub {
owner = "Deterous";
repo = "LibIRD";
rev = "82d53db68f610d9cb972efa0dacb1c85a363880a";
hash = "sha256-QPpS+zxH0fFoMGNA1AraqOseRaYJS+s67IGHKB6n2ig=";
fetchSubmodules = true;
leaveDotGit = false;
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
nugetDeps = ./deps.nix;
projectFile = "IRDKit/IRDKit.csproj";
selfContainedBuild = false;
dotnetBuildFlags = [ "--framework net8.0" ];
dotnetInstallFlags = [ "--framework net8.0" ];
meta = {
description = "Placeholder :)";
homepage = "https://github.com/Deterous/LibIRD";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ ];
mainProgram = "irdkit";
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,49 @@
{
lib,
cmake,
fetchFromGitHub,
mbedtls_2,
perl,
python3,
stdenv,
### Ninja
withNinja ? false,
ninja
}:
stdenv.mkDerivation {
pname = "ps3dec";
version = "unstable-2018-12-16";
src = fetchFromGitHub {
owner = "al3xtjames";
repo = "PS3Dec";
rev = "7d1d27f028aa86cd961a89795d0d19a9b3771446";
hash = "sha256-kvkkB7NclFfbqf3vqwFjKOFwHUz1X+KRCwGopN7YCis=";
fetchSubmodules = true;
leaveDotGit = false;
};
nativeBuildInputs = [
cmake
mbedtls_2
perl
python3
] ++ lib.optionals withNinja ninja;
installPhase = ''
mkdir -p $out/bin
mv Release/PS3Dec $out/bin/ps3dec
'';
meta = {
description = "PS3Dec r5 source mirror";
homepage = "https://github.com/al3xtjames/PS3Dec";
license = lib.licenses.unfree;
# Technically it was posted to the 3k3y forums without a license file,
# So technically it's probably "All Rights Reserved"...
# I think that's how this works?
maintainers = with lib.maintainers; [ ];
};
}

View file

@ -0,0 +1,70 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
gettext,
curl,
libjpeg,
libpng,
libseccomp,
lz4,
lzo,
nettle,
pkg-config,
tinyxml2,
zlib,
zstd,
glib
}:
stdenv.mkDerivation {
pname = "rom-properties";
version = "git";
src = fetchFromGitHub {
owner = "GerbilSoft";
repo = "rom-properties";
rev = "1df55be31d5aab88db1ba722267255389a812802";
hash = "sha256-e2K2XRPLLSXM+lWv5aFiU3PwotuUT0V8INAFc9QKmYY=";
};
nativeBuildInputs = [
cmake
nettle.dev
pkg-config
glib.dev
];
buildInputs = [
gettext
curl.dev
libjpeg.dev
libpng.dev
libseccomp.dev
lz4.dev
lzo
tinyxml2
zlib.dev
zstd.dev
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DINSTALL_APPARMOR=OFF"
];
postPatch = ''
substituteInPlace "src/librpsecure/os-secure_linux.c" \
--replace "SCMP_SYS(write)," "SCMP_SYS(write), SCMP_SYS(getdents64),"
'';
meta = {
description = "ROM Properties Page shell extension";
homepage = "https://github.com/GerbilSoft/rom-properties";
license = lib.licenses.gpl2Only;
maintainers = with lib.maintainers; [ ];
mainProgram = "rpcli";
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,102 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{ fetchNuGet }: [
(fetchNuGet { pname = "Aaru.Checksums.Native"; version = "6.0.0-alpha9"; sha256 = "0v4p28v1zsb6iq42pz1945zb7il55aylzfm6n0c3c7xniiiz2qmh"; })
(fetchNuGet { pname = "Blake3"; version = "1.1.0"; sha256 = "10bnjx524c79r821y6dgipkvbm3d7li9mdj1slkmlfjri5gfc9c1"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "6.0.30"; sha256 = "17k3l8xd5bsyk69bm5q4nxbpb4i0izw1kzmzi7j3p8pmm9prgrpy"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "7.0.19"; sha256 = "19pjhnx49srxp1qwknc390gapc44019wy4adz9caxpryw0ch4l1x"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "00ha2sl4gvqv68mbrsizd6ngqy0vv6vamngzjxr338k1w7a276dx"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "183xgqzlwd5lhacxdwcjl8vcq7r7xypv0hddps9k32mmmwf83d8h"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "1n4v5przbrjhzj01b6qijpdc2jbsxr66ijvd0483qxh4s0b4jppr"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0i8mhcy09lmjqhzqmwvp0n5qkizdqin3vap206b2ad28yl6963wz"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0ywz63q8vrdp25ix2j9b7h2jp5grc68hqfl64c6lqk26q9xwhp9r"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "066fwdlssbv556zd9w1x87x1j8j4kafj9rxyy0692bssdb4gcyc8"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "18v0l07q74m5xxaf6y6dkmr6and8ivya0nslffnr4djrxcbiygdr"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "1zypq8jgk9z3kn3mmkdijvc9h65iyy7gaif9p0vhnylmvvm89jzp"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0p53lyqmr5n2ym202pbgmsd9b9aa6jar7ic04dcq86h2g77r5jqk"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "1dqilsqwwymy7fq2pnvjggn5mfvizqsisla0c36w53mg6xx7vn78"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "1crk54a1wvj76s9gnh46pi7wk8ryympm9xh2jq4s4rpp329fqgic"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1qvvqf8mmzzc7a7fhx324dprnbxhknr3qxspb2xhsn3yyg44xn2d"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "009srl8vazkjnd93xr6k1m353spbki9gn1yzp4zgazgbrini6rqc"; })
(fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1jmg7sxjnsmaa7ag6bgyhndlhvibswcmnrw0n6sr6crw2y0in2a3"; })
(fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
(fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "8.0.0"; sha256 = "0055f69q3hbagqp8gl3nk0vfn4qyqyxsxyy7pd0g7wm3z28byzmx"; })
(fetchNuGet { pname = "Microsoft.Data.Sqlite"; version = "8.0.4"; sha256 = "1d41r78blfh3i0lh27bh4vrdd26ix6r63xa74cycjnc7pr98xaqc"; })
(fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.4"; sha256 = "03i9b45n2vnsv4wdsk6qvjzj1ga2hcli168liyrqfa87l54skckd"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "3.1.32"; sha256 = "1zygp70xrk5zggs3q4a6yc6jfdwzcsjjsapqpwn6qyx35m69b72p"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "5.0.17"; sha256 = "07v7vyqm556xr1ypkazfp6gh6drgf20zkwbhkpja8bwdcr6lphbb"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.30"; sha256 = "0l3gjhmnjd5n67w83smqyhmfcwzszafjgcbq8kdwxiwwh2m6nh2i"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "7.0.19"; sha256 = "1dv4vk07a7kj53sk1nf63h51swzk9yl4j7jdvkc5w2v0z5a186hm"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.32"; sha256 = "08sar3s7j6z1q5prjmz2jrbsq5ms81mrsi1c1zbfrkplkfjpld3a"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.17"; sha256 = "1lc2jhr4ikffi5ylyf8f6ya6k0hdj0wp1l0017grrwd4m5ajj4vv"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.30"; sha256 = "0ss3108c2h7afypvliyqixv4dll60sq9iwqy90k1p132znpszrmb"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "7.0.19"; sha256 = "0jcfmaq4ckcpywwxm1ack9xa001aic8pn85ggglidxgcfdr6mpzd"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.30"; sha256 = "08k5v35mvcs712kb0vcfjd1dsas5rgwrmv8rn87mzjb2p6ajl3n3"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "7.0.19"; sha256 = "0xyc0mdd7nnmc9wjzq8nxwrqagmiqxds8qwghr2rgxw55b9slc33"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.32"; sha256 = "186gjn8sbhp4z6pq8fw4g8nqk9dwyaplwvdz2y3fbbvg36lggsh0"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "5.0.17"; sha256 = "02g5w41ivrw3n6cy3l3ixhcl8bw1fsv4bzs2m34k9h5fqmliaf3c"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.30"; sha256 = "02x38c68xan8hlr59mindcl4rcx49bbh4bibh6fw1l4rrijb38lw"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "7.0.19"; sha256 = "1srx048x6nv88s308bfn2vsg9gyqvzmgn4xlzknm9yr89c5pm96q"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "6.0.30"; sha256 = "1wqqjhhlqz4dmijcx3kg3hnwq0s0jzqsddaksskzhq8avr4ziy18"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "7.0.19"; sha256 = "1z9zfzccqn6yh9mcqrkiidjagzmnk4blrralzb8q0b7mnf1b1ww9"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "3.1.32"; sha256 = "13pcn74z1swz73s72zjl07f118j35wacnzgk7kbjqn83nwgqdgvq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "5.0.17"; sha256 = "16whaq82pj6fqa0vam3a0va9ly843aa1z12hza040vn6252kk9fq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.30"; sha256 = "0xfhcig3gj3986rxp3dhnd8hvnj4nvyhz1fz7kpx342d3g53wb37"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "7.0.19"; sha256 = "0m30aykrzl48i8589qn8z89hm9p1yl71cdigv1f09fmwb7c6jfm3"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.32"; sha256 = "0mmc57dl8plrspdxwb7209wz29vhiwqds4nfbdfws7zg35yy70c7"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.17"; sha256 = "0jgcfs3jc98jfyaaamssznckbpnaygplk8pjsp6dswpansz5bnnq"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.30"; sha256 = "1s81sj8lnb8szqawxh3vc8wi815ln12cyhrl3f7hwcpay57xgswx"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "7.0.19"; sha256 = "12zgh8pvbdl99zs0rq5ajbl91r976i47hdrrvxl2hbsxl2ws3brs"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.30"; sha256 = "0s71k92daakzwish65gmn4nniy6bf2hv34c0sb6m1hv3criqxmp4"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "7.0.19"; sha256 = "08gs703rz3agmisy3vsdnyv5lyc32qb8kvfljzszbyqlaf5cxhd1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.32"; sha256 = "06bk39zcv27cwshjsxfg5d6wzkkzdhfk08sipdc7mr1s8pk7ihi1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "5.0.17"; sha256 = "1ph5kx18syinp8bpzw80bgq3njl65gwzws727xcmxnysgm7snmjp"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.30"; sha256 = "0xybqg2wd240r1nm2vrbn2qbfqfnqsmxn1012zzwjn17wa2si9a1"; })
(fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "7.0.19"; sha256 = "1lwnwxscza5m7pk83fwjz5r9kms3ybag2rl07f3gqp3b203iyyxx"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.3"; sha256 = "0hc4d4d4358g5192mf8faijwk0bpf9pjwcfd3h85sr67j0zhj6hl"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net20"; version = "1.0.3"; sha256 = "1s65wgj49mikq4y16yqyff315qkgm84zvjd8ymqdx39kxizrjx3z"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net35"; version = "1.0.3"; sha256 = "1ybq6l7lf6n4w8x54k8s9c1nx1dlzijx9ysply8hsrw8388mcqdi"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net40"; version = "1.0.3"; sha256 = "1566qd1s2p7l5bjlmb05axd1zs35284ivmynjn9zgjk13c5f5mjl"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net452"; version = "1.0.3"; sha256 = "1hicvqqf0s7xxry8caxw6nhvhncr5b814a6i43q0kvh3dwafwcs5"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net462"; version = "1.0.3"; sha256 = "08bfss2p262d8zj41xqndv0qgvz9lq636k2xhl80jl23ay22lsgf"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net472"; version = "1.0.3"; sha256 = "0z7mpiljkqjw1qi5zapv7mg9pyfyzlgmil34j4wi3y9r19bsb87z"; })
(fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net48"; version = "1.0.3"; sha256 = "18h4265rn5dy5d1igddsz1ilygcyyj4id4cn2qsr3sz7722k8zla"; })
(fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "8.0.0"; sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81"; })
(fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "8.0.0"; sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44"; })
(fetchNuGet { pname = "MinAsyncBridge"; version = "0.12.4"; sha256 = "1xqiz0p9rz8kqdhi2h9gysvpfcg88vj2w4yi9ryf6205fxzra167"; })
(fetchNuGet { pname = "MinTasksExtensionsBridge"; version = "0.3.4"; sha256 = "0h69035ahcgc6h8y2qgdwi63c57rfi66nf5rjn4gqa0m76x61y8x"; })
(fetchNuGet { pname = "MinThreadingBridge"; version = "0.11.4"; sha256 = "0x9xsdjma7jf6m5z08y7fkp9xsk52zfjh8cdkmvjn396bwwql681"; })
(fetchNuGet { pname = "MinValueTupleBridge"; version = "0.2.0"; sha256 = "1mibhbj5hcwrzabwk3jck8xifzwb4rfyki0viyh6wkp8ip0wsw9b"; })
(fetchNuGet { pname = "Net30.LinqBridge"; version = "1.3.0"; sha256 = "1i1dfksllqi84552ipbk863m2wxgp4kvsjkybkcygp8iv0pw4yqk"; })
(fetchNuGet { pname = "Net35.Actions"; version = "1.1.0"; sha256 = "0w86r4z58amb7yabk2jwx3qz038x9iqr7iwc5qc58f2svab9lv8y"; })
(fetchNuGet { pname = "NetLegacySupport.Numerics"; version = "1.0.1"; sha256 = "1v33swahnifjifjq0rsh9biikgi2a9vfzxxjdivajxzsg54wlc8r"; })
(fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.3"; sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7"; })
(fetchNuGet { pname = "SabreTools.ASN1"; version = "1.3.2"; sha256 = "1kdscm83z0r4j6q3rhn5ip49qadcybyfgp8aq07fi1vbx5vnzc9a"; })
(fetchNuGet { pname = "SabreTools.Hashing"; version = "1.2.0"; sha256 = "033nhcb6zvwv8j9v62q1ld4y8bj8g218wzh60dnyd71qlbpslrig"; })
(fetchNuGet { pname = "SabreTools.IO"; version = "1.4.5"; sha256 = "0drgsywcv1j55b0w40d7apq3sdynyanhif2557snjv5bvjkrgaif"; })
(fetchNuGet { pname = "SabreTools.Matching"; version = "1.3.1"; sha256 = "09b2h3hyh42l8s59ypn0ih52ryp4daxj8rdy3yzrmlcqfwd0dwmw"; })
(fetchNuGet { pname = "SabreTools.Models"; version = "1.4.5"; sha256 = "0n7c2ywnwilwd4d53zmrxxzhf5yhqf4amsbxzbi31z73w9s7bcy9"; })
(fetchNuGet { pname = "SabreTools.Serialization"; version = "1.6.0"; sha256 = "0jjfgrh9p2fglbfj0l781c4vjx4a9gca2nzq587ynplvrb5j90qz"; })
(fetchNuGet { pname = "SabreTools.Skippers"; version = "1.1.2"; sha256 = "1sx9ghq2ink3wzj7cpjr8izds92zm3y6g978h0dgassdq4w3bkb5"; })
(fetchNuGet { pname = "SharpCompress"; version = "0.37.0"; sha256 = "14qynp3qqb2d735g4f7m86knk2pzgky1c159ci6xaxvih40w61fk"; })
(fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; sha256 = "0pzgdfl707pd9fz108xaff22w7c2y27yaix6wfp36phqkdnzz43m"; })
(fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.1.6"; sha256 = "1w8zsgz2w2q0a9cw9cl1rzrpv48a04nhyq67ywan6xlgknds65a7"; })
(fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; sha256 = "0g959z7r3h43nwzm7z3jiib1xvyx146lxyv0x6fl8ll5wivpjyxq"; })
(fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; sha256 = "1vs1c7yhi0mdqrd35ji289cxkhg7dxdnn6wgjjbngvqxkdhkyxyc"; })
(fetchNuGet { pname = "System.Buffers"; version = "4.5.1"; sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3"; })
(fetchNuGet { pname = "System.IO.Hashing"; version = "8.0.0"; sha256 = "1hg5i9hiihj9x4d0mlvhfddmivzrhzz83dyh26fqw1nd8jvqccxk"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
(fetchNuGet { pname = "System.Memory"; version = "4.5.5"; sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h"; })
(fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.5.0"; sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.3"; sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln"; })
(fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "6.0.0"; sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc"; })
(fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "8.0.0"; sha256 = "1lgdd78cik4qyvp2fggaa0kzxasw6kc9a6cjqw46siagrm0qnc3y"; })
(fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.4"; sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153"; })
(fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
(fetchNuGet { pname = "ZstdSharp.Port"; version = "0.8.0"; sha256 = "169vnv9j0kmr44qv4wflsdcjfmkys32whmnl0bcjx0x978h182cx"; })
]

View file

@ -0,0 +1,41 @@
{
lib,
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub
}:
buildDotnetModule {
pname = "sabretools";
version = "0.2.0";
src = fetchFromGitHub {
owner = "SabreTools";
repo = "SabreTools";
rev = "806d0221d0f4275239feb1f47f08c7c1d2c0f911";
hash = "sha256-qEoHKQYe1IuXYmxGRgq2idRIDarqZlhPgtikw52kJQU=";
fetchSubmodules = true;
leaveDotGit = false;
};
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
nugetDeps = ./deps.nix;
# projectFile = "SabreTools.sln";
projectFile = "SabreTools/SabreTools.csproj";
dotnetBuildFlags = [ "--framework net8.0" ];
dotnetInstallFlags = [ "--framework net8.0" ];
postFixup = ''
mv $out/bin/SabreTools $out/bin/sabretools
'';
meta = {
description = "DAT management tool with advanced editing and sorting features";
homepage = "https://github.com/SabreTools/SabreTools";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ ];
mainProgram = "SabreTools";
platforms = lib.platforms.all;
};
}

148
home/pkgs_and_programs.nix Normal file
View file

@ -0,0 +1,148 @@
{
agenix,
pkgs,
system,
xil,
...
}:
let
# Especially for dotnet packages, remember to update "/flake.nix" too!
my_packages = {
irdkit = pkgs.callPackage ./packages/irdkit/package.nix {};
ird_tools = pkgs.callPackage ./packages/ird_tools/package.nix {};
ps3dec = pkgs.callPackage ./packages/ps3dec/package.nix {};
sabretools = pkgs.callPackage ./packages/sabretools/package.nix {};
rom-properties = pkgs.callPackage ./packages/rom-properties/package.nix {};
};
in
{
programs = {
bat = {
enable = true;
};
direnv = {
enable = true;
enableBashIntegration = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
git = {
enable = true;
userName = "Whovian9369";
userEmail = "Whovian9369@gmail.com";
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
jq = {
enable = true;
};
nix-index = {
enable = false;
};
ripgrep = {
enable = true;
};
zsh = {
enable = true;
# Honestly unsure if I should be using `programs.zsh.envExtra` or
# `programs.zsh.localVariables` here.
localVariables = {
DISABLE_MAGIC_FUNCTIONS = true;
};
# enableAutosuggestions = true;
# enableCompletion = true;
oh-my-zsh = {
enable = true;
plugins = [
"git"
"sudo"
];
theme = "bira";
};
};
};
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
pkgs._7zz
pkgs.bat
pkgs.binwalk
pkgs.cdecrypt
pkgs.colorized-logs
pkgs.croc
pkgs.dhex
pkgs.fd
pkgs.file
pkgs.gdrive3
pkgs.git
pkgs.hactool
pkgs.instaloader
pkgs.internetarchive
pkgs.lynx
pkgs.megatools
pkgs.ncdu
pkgs.nixfmt-classic
pkgs.progress
pkgs.pyrosimple
pkgs.python3
pkgs.quickbms
pkgs.rclone
pkgs.screen
pkgs.sshfs
pkgs.unrar-wrapper
pkgs.wget
pkgs.xxd
pkgs.yq
my_packages.irdkit
my_packages.ird_tools
my_packages.ps3dec
my_packages.sabretools
# my_packages.rom-properties
agenix.packages.${system}.default
xil.packages.${system}.xil
];
# Disabled Packages
/*
pkgs.binutils
# Just use "nix shell nixpkgs#binutils -c strings -- INPUT"
pkgs.mpv
# Not needed on WSL
pkgs.p7zip
# Replaced in favour of nixpkgs#_7zz
pkgs.terminator
# Not needed on WSL, even though I'd like it on WSL sometimes.
pkgs.yt-dlp
# Not needed on WSL
*/
/*
# It is sometimes useful to fine-tune packages, for example, by applying
# overrides. You can do that directly here, just don't forget the
# parentheses.
# Maybe you want to install Nerd Fonts with a limited number of fonts?
(pkgs.nerdfonts.override {
fonts = [
"FantasqueSansMono"
];
})
*/
}

14
home/variables.nix Normal file
View file

@ -0,0 +1,14 @@
{
agenix,
config,
...
}:
{
home.sessionVariables = {
EDITOR = "nano";
DOTNET_CLI_TELEMETRY_OPTOUT = "1";
OPENAI_API_KEY = "\$(cat ${config.age.secrets."openai".path})";
CURSEFORGE_API_KEY = "\$(cat ${config.age.secrets."cursed".path})";
ITCHIO_API_KEY = "\$(cat ${config.age.secrets."itchy".path})";
};
}

View file

@ -10,19 +10,9 @@
imports = [
./packages.nix
./users.nix
./wsl.nix
];
wsl = {
enable = true;
defaultUser = "whovian";
startMenuLaunchers = false;
wslConf = {
automount = {
root = "/mnt";
};
};
};
networking.hostName = "nixos-wsl";
# Enable nix flakes
@ -41,7 +31,9 @@
https://github.com/nix-community/home-manager/issues/3521#issuecomment-1367197995
[Issue #3521]
*/
environment.pathsToLink = [ "/share/zsh" ];
environment.pathsToLink = [
"/share/zsh"
];
system.stateVersion = "22.05";
}

12
system/nixos-wsl/wsl.nix Normal file
View file

@ -0,0 +1,12 @@
{
wsl = {
enable = true;
defaultUser = "whovian";
startMenuLaunchers = false;
wslConf = {
automount = {
root = "/mnt";
};
};
};
}