diff options
Diffstat (limited to 'modules/root/software.nix')
-rw-r--r-- | modules/root/software.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/modules/root/software.nix b/modules/root/software.nix new file mode 100644 index 0000000..c991456 --- /dev/null +++ b/modules/root/software.nix @@ -0,0 +1,90 @@ +{ pkgs, lib, config, ... }: { + options = { + software = { + desktop = { + enable = lib.mkEnableOption "enables desktop apps"; + extra.enable = lib.mkEnableOption "enables extra desktop apps"; + }; + dev = { + enable = lib.mkEnableOption "enables development utilities"; + extra.enable = lib.mkEnableOption "enables extra development utilities"; + }; + utils = { + enable = lib.mkEnableOption "enables general utilities"; + }; + }; + }; + + config = { + environment.systemPackages = with pkgs; pkgs.lib.optionals config.software.desktop.enable [ + # Desktop + alacritty + arandr + dmenu + firefox + mpv + pavucontrol + pcmanfm + redshift + sxiv + zathura + ] ++ pkgs.lib.optionals config.software.desktop.extra.enable [ + # Desktop Extra + geeqie + gimp + inkscape + qbittorrent + qdirstat + ungoogled-chromium + ] ++ pkgs.lib.optionals config.software.dev.enable [ + # Development + dash # TODO should be default /bin/sh + entr + gcc + git + gnumake + jq + lm_sensors + nmap + openssl + python3 + sassc + sslscan + wget + ] ++ pkgs.lib.optionals config.software.dev.extra.enable [ + # Development Extra + android-tools + cargo + hugo + #python-pip # TODO figure this one out + uhubctl + wireguard-tools + ] ++ pkgs.lib.optionals config.software.utils.enable [ + # Utilities + ddcutil # TODO + fastfetch + htop + light + neovim + p7zip + powertop + pv + rsync + screen + scrot + smartmontools + stress + testdisk + tmux + xxHash + ]; + + # More desktop + programs.dconf.enable = lib.mkIf config.software.desktop.enable true; # For home-manager to configure gtk TODO this should be there instead + + # More utilities + programs.zsh.enable = lib.mkIf config.software.utils.enable true; + users.defaultUserShell = lib.mkIf config.software.utils.enable pkgs.zsh; + services.openssh.enable = lib.mkIf config.software.utils.enable true; + }; +} |