summaryrefslogtreecommitdiff
path: root/modules/root/software.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/root/software.nix')
-rw-r--r--modules/root/software.nix90
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;
+ };
+}