diff options
author | Tim Keller <tjkeller.xyz> | 2025-01-05 16:19:45 -0600 |
---|---|---|
committer | Tim Keller <tjkeller.xyz> | 2025-01-05 16:19:45 -0600 |
commit | 1835aa04051f2f0c41017423f2bcba6c549f26b0 (patch) | |
tree | b5f26e29032e9084b27eeb0688c7a3a9bb0df57f /modules/root/software/desktop.nix | |
parent | d0faef2f53e2e5195b2acc7cc7bba898bd7cd05b (diff) | |
download | nixos-1835aa04051f2f0c41017423f2bcba6c549f26b0.tar.xz nixos-1835aa04051f2f0c41017423f2bcba6c549f26b0.zip |
overhual
Diffstat (limited to 'modules/root/software/desktop.nix')
-rw-r--r-- | modules/root/software/desktop.nix | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/modules/root/software/desktop.nix b/modules/root/software/desktop.nix new file mode 100644 index 0000000..eb0a5ff --- /dev/null +++ b/modules/root/software/desktop.nix @@ -0,0 +1,76 @@ +{ pkgs, lib, config, ... }: { + options = { + software.desktop = { + enable = lib.mkEnableOption "enables desktop apps"; + chromium = { + enable = lib.mkEnableOption "enables selected chromium browser package"; + package = lib.mkOption { + type = lib.types.package; + default = pkgs.ungoogled-chromium; + description = "chromium package to install"; + }; + }; + cad.enable = lib.mkEnableOption "enables cad and 3d printing apps"; + crypto.enable = lib.mkEnableOption "enables crypto wallet apps"; + firefox.enable = lib.mkEnableOption "enables firefox"; + graphics.enable = lib.mkEnableOption "enables graphic design apps"; + office.enable = lib.mkEnableOption "enables office apps"; + utilities.enable = lib.mkEnableOption "enables miscellaneous utility apps"; + }; + }; + + config = lib.mkIf config.software.desktop.enable { + environment.systemPackages = with pkgs; [ + # Default + alacritty + arandr + dmenu + jellyfin-mpv-shim + libnotify + mpv + pavucontrol + pcmanfm + redshift + sxiv + wpa_supplicant_gui + zathura + ] ++ pkgs.lib.optionals config.software.desktop.chromium.enable [ + # Chrome + config.software.desktop.chromium.package + ] ++ pkgs.lib.optionals config.software.desktop.cad.enable [ + # CAD + blender + freecad + prusa-slicer + ] ++ pkgs.lib.optionals config.software.desktop.crypto.enable [ + # Crypto Wallets + bisq2 + electrum + monero-gui + ] ++ pkgs.lib.optionals config.software.desktop.graphics.enable [ + # Graphics + blender + geeqie + gimp + inkscape + ] ++ pkgs.lib.optionals config.software.desktop.office.enable [ + # Office + thunderbird + ] ++ pkgs.lib.optionals config.software.desktop.utilities.enable [ + # Misc Utilities + qbittorrent + qdirstat + remmina + ]; + + programs.localsend.enable = config.software.desktop.utilities.enable; # Installs & opens firewall + programs.firefox.enable = config.software.desktop.firefox.enable; + + # GVfs allows for mounting drives in a graphical file manager + services.gvfs.enable = true; + + # For home-manager to configure gtk + # TODO this should be there instead + programs.dconf.enable = config.software.desktop.enable; + }; +} |