nix: options refactor

This commit is contained in:
Primrose 2024-05-26 12:33:17 +02:00
parent fa5bbfb199
commit f329c3af7c
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
6 changed files with 143 additions and 139 deletions

View file

@ -9,6 +9,12 @@ let
inherit (pkgs) unstable myPkgs;
in
{
options.extra = {
utilities.enable = lib.mkOption { default = false; };
workflow.enable = lib.mkOption { default = false; };
university.enable = lib.mkOption { default = false; };
};
imports = [
./fish
./direnv
@ -27,66 +33,71 @@ in
./cmus
];
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "leana";
homeDirectory = lib.mkDefault "/home/leana";
stateVersion = "23.11";
config = {
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "leana";
homeDirectory = lib.mkDefault "/home/leana";
stateVersion = "23.11";
};
programs = {
ripgrep.enable = true;
gpg.enable = true;
};
home.packages = lib.mkMerge [
[
# shell and script dependencies
pkgs.figlet
pkgs.gnused
pkgs.stow
pkgs.fd
pkgs.vivid
pkgs.rsync
# nix
unstable.nixfmt-rfc-style
# utils
pkgs.tree
pkgs.tldr
pkgs.parallel
pkgs.findutils # xargs and more
pkgs.du-dust
]
(lib.mkIf pkgs.stdenv.isDarwin [
# coreutils
pkgs.uutils-coreutils-noprefix
])
(lib.mkIf config.extra.utilities.enable [
pkgs.jq
pkgs.hyperfine
pkgs.watchexec
pkgs.onefetch
pkgs.ghostscript
pkgs.tokei
pkgs.gnumake
pkgs.just
pkgs.nurl
pkgs.tea
pkgs.agenix
])
(lib.mkIf config.extra.workflow.enable [
pkgs.act
pkgs.forgejo-actions-runner
])
(lib.mkIf config.extra.university.enable [
pkgs.rars
myPkgs.logisim-evolution
myPkgs.necrolib
myPkgs.why3
])
];
};
programs = {
ripgrep.enable = true;
gpg.enable = true;
};
home.packages = lib.mkMerge [
[
# shell and script dependencies
pkgs.figlet
pkgs.gnused
pkgs.stow
pkgs.fd
pkgs.vivid
pkgs.rsync
# nix
unstable.nixfmt-rfc-style
# utils
pkgs.tree
pkgs.tldr
pkgs.parallel
pkgs.findutils # xargs and more
pkgs.du-dust
]
(lib.mkIf pkgs.stdenv.isDarwin [
# coreutils
pkgs.uutils-coreutils-noprefix
])
(lib.mkIf config.extraUtils.enable [
pkgs.jq
pkgs.hyperfine
pkgs.watchexec
pkgs.tea
pkgs.tokei
pkgs.gnumake
pkgs.just
pkgs.sd
pkgs.ghostscript
pkgs.act
pkgs.forgejo-actions-runner
pkgs.nurl
pkgs.onefetch
pkgs.agenix
])
(lib.mkIf config.universityTools.enable [
pkgs.rars
myPkgs.logisim-evolution
myPkgs.necrolib
myPkgs.why3
])
];
}