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