nixos_config/home/pkgs_and_programs.nix
Whovian9369 7eb2d5264c Switch from unrar-wrapper to unrar.
Unfree or not, I prefer this version.
2024-10-28 01:47:23 -04:00

206 lines
5.2 KiB
Nix

{
lib,
aaru,
agenix,
osConfig,
ninfs,
pkgs,
rom-properties,
system,
xil,
...
}:
let
# Especially for dotnet packages, remember to update "/flake.nix" too!
my_packages = {
binaryobjectscanner = pkgs.callPackage ./packages/binaryobjectscanner/package.nix {};
hactoolnet = pkgs.callPackage ./packages/hactoolnet/package.nix {};
hactoolnet-bin = pkgs.callPackage ./packages/hactoolnet/bin.nix {};
ird_tools = pkgs.callPackage ./packages/ird_tools/package.nix {};
irdkit = pkgs.callPackage ./packages/irdkit/package.nix {};
nxtik = pkgs.callPackage ./packages/nxtik/package.nix {};
ps3dec = pkgs.callPackage ./packages/ps3dec/package.nix {};
sabretools = pkgs.callPackage ./packages/sabretools/package.nix {};
new_rclone = pkgs.rclone.overrideAttrs (oldAttrs: rec {
patches = [ ./packages/new_rclone/patches/rclone_8ffe3e462cbf5688c37c54009db09d8dcb486860.diff ];
}
);
nix-init_packagenix = pkgs.nix-init.overrideAttrs (oldAttrs: rec {
patches = [ ./packages/nix-init/default_to_package.diff ];
}
);
unnix_script = pkgs.writeShellApplication {
name = "unnix";
/* runtimeInputs = [ sed ]; */
text = '' sed -r 's@/nix/store/[0-9a-z]{32}-@/<nix store path>/@g' '';
# Quick command to remove Nix Store paths from output. Original source:
# https://trofi.github.io/posts/247-NixOS-22.05-release.html
};
};
in
{
programs = {
bat = {
enable = true;
};
direnv = {
enable = true;
nix-direnv.enable = true;
enableZshIntegration = true;
enableBashIntegration = true;
enableFishIntegration = false;
enableNushellIntegration = false;
# loadInNixShell = true;
};
git = {
enable = true;
userName = "Whovian9369";
userEmail = "Whovian9369@gmail.com";
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
jq = {
enable = true;
};
nix-index = {
enable = true;
enableZshIntegration = true;
enableBashIntegration = false;
enableFishIntegration = 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.ctrtool
pkgs.dhex
pkgs.fd
pkgs.file
pkgs.fq
pkgs.gdrive3
pkgs.git
pkgs.hactool
pkgs.internetarchive
pkgs.lynx
pkgs.megatools
pkgs.ncdu
pkgs.ndstool
pkgs.nixfmt-rfc-style
pkgs.progress
pkgs.pyrosimple
pkgs.python3
pkgs.quickbms
pkgs.sshfs
pkgs.unrar
pkgs.wget
pkgs.wsl-open
pkgs.xxd
pkgs.yq
my_packages.binaryobjectscanner
my_packages.ird_tools
my_packages.irdkit
my_packages.new_rclone
my_packages.nix-init_packagenix # Yay for patched apps :)
my_packages.nxtik
my_packages.ps3dec
my_packages.sabretools
my_packages.unnix_script # It's a one-line bash script
aaru.packages.${system}.git
agenix.packages.${system}.default
ninfs.packages.${system}.ninfs
rom-properties.packages.${system}.default
# xil.packages.${system}.xil
] ++ lib.optionals (!osConfig.wsl.enable or false) [
pkgs.mpv
pkgs.terminator
pkgs.yt-dlp
my_packages.hactoolnet
];
/*
# Disabled Packages
pkgs.binutils
# Just use "nix shell nixpkgs#binutils -c strings -- INPUT"
pkgs.nixfmt-classic
# nixfmt was renamed to nixfmt-classic.
# The nixfmt attribute may be used for the new RFC 166-style formatter in the future, which is currently available as nixfmt-rfc-style
pkgs.python3Packages.nsz
# Eh, don't want it in my current config.
pkgs.p7zip
# Replaced in favour of nixpkgs#_7zz
pkgs.rclone
# Replaced with my_packages.new_rclone which is a patched build.
pkgs.screen
# Replaced with system-set "programs.screen.enable"
my_packages.hactoolnet-bin
# Not needed on WSL as I currently use the Windows version.
# Not needed otherwise as I currently use the self-built version.
# Not included in WSL, but included otherwise:
pkgs.mpv
# Not needed on WSL
pkgs.terminator
# Not needed on WSL, even though I'd like it on WSL sometimes.
pkgs.yt-dlp
# Not needed on WSL
my_packages.hactoolnet
# Not needed on WSL as I currently use the Windows version.
*/
/*
# 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"
];
})
*/
}