From dcead3e38ec36e114c12dd5fc1db0a04ab3549ce Mon Sep 17 00:00:00 2001 From: ChUrl Date: Wed, 10 Aug 2022 22:24:20 +0200 Subject: [PATCH] add gnome module --- modules/gnome.nix | 92 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 modules/gnome.nix diff --git a/modules/gnome.nix b/modules/gnome.nix new file mode 100644 index 00000000..26bbca04 --- /dev/null +++ b/modules/gnome.nix @@ -0,0 +1,92 @@ +{ config, nixosConfig, lib, mylib, pkgs, ... }: + +with lib; +with mylib.modules; + +let + cfg = config.modules.gnome; +in { + + options.modules.gnome = { + enable = mkEnableOpt "Gnome Desktop"; + extensions = mkBoolOpt false "Enable Gnome shell-extensions"; + + # TODO: Add other themes, whitesur for example + theme = { + papirusIcons = mkBoolOpt false "Enable the Papirus icon theme"; + numixCursor = mkBoolOpt false "Enable the Numix cursor theme"; + }; + }; + + config = mkIf cfg.enable { + assertions = [ + { + assertion = nixosConfig.services.xserver.desktopManager.gnome.enable; + message = "Can't enable Gnome module when Gnome is not enabled!"; + } + ]; + + gtk = mkMerge [ + { enable = true; } + + (optionalAttrs cfg.papirusIcons { + iconTheme.package = pkgs.papirus-icon-theme; + iconTheme.name = "Papirus"; + }) + ]; + + home.pointerCursor = mkMerge [ + { + pointerCursor.gtk.enable = true; + pointerCursor.x11.enable = true; + } + + (optionalAttrs cfg.numixCursor { + pointerCursor.package = pkgs.numix-cursor-theme; + pointerCursor.name = "Numix-Cursor"; + }) + ]; + + home.packages = with pkgs; builtins.concatLists [ + [ + # gnome.gnome-session # Allow to start gnome from tty (sadly this is not usable, many things don't work) + gnome.gnome-boxes # VM + gnome.sushi # Gnome files previews + gnome.gnome-logs # systemd log viewer + gnome.gnome-tweaks # conflicts with nixos/hm gnome settings file sometimes, watch out what settings to change + gnome.gnome-nettool + gnome.simple-scan + gnome.gnome-sound-recorder + gnome.file-roller # archive manager + # gnome-usage # Alternative system performance monitor (gnome.gnome-system-monitor is the preinstalled one) + # gnome-secrets # Alternative keepass database viewer + gnome-firmware + ] + + (optionals cfg.extensions [ + gnomeExtensions.appindicator + gnomeExtensions.blur-my-shell + gnomeExtensions.sound-output-device-chooser + gnomeExtensions.vitals + gnomeExtensions.no-overview + # gnomeExtensions.switch-workspace + gnomeExtensions.maximize-to-empty-workspace + gnomeExtensions.pip-on-top + gnomeExtensions.custom-hot-corners-extended + # gnomeExtensions.dock-from-dash + gnomeExtensions.gamemode + # gnomeExtensions.gsconnect # kde connect alternative + # gnomeExtensions.quake-mode # dropdown for any application + # gnomeExtensions.systemd-manager # to quickly start nextcloud + gnomeExtensions.extensions-sync + gnomeExtensions.tweaks-in-system-menu + # gnomeExtensions.compiz-windows-effect # WobBlY wiNdoWS + gnomeExtensions.panel-scroll + gnomeExtensions.rounded-window-corners + # gnomeExtensions.easyeffects-preset-selector # Throws error com.sth could not be found, dbus problem? + gnomeExtensions.launch-new-instance + gnomeExtensions.auto-activities + ]) + ]; + }; +}