diff --git a/flake.nix b/flake.nix index 8546603..8569f0e 100644 --- a/flake.nix +++ b/flake.nix @@ -103,12 +103,14 @@ common_modules = [ { nixpkgs.pkgs = pkgs; } ./system/configuration.nix - { login-manager.greetd.enable = desktop == "sway"; } + { + login-manager.greetd.enable = desktop == "sway"; + my.gnome.enable = desktop == "gnome"; + my.kde.enable = desktop == "kde"; + } { home-manager.extraSpecialArgs = specialArgs; } - ] - ++ lib.optional (desktop == "gnome") ./system/gnome.nix - ++ lib.optional (desktop == "kde") ./system/kde.nix; + ]; in { checks."${system}" = { diff --git a/system/configuration.nix b/system/configuration.nix index 55f5997..69badf0 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -30,6 +30,8 @@ ./network.nix ./sops.nix ./greetd.nix + ./gnome.nix + ./kde.nix ./home-manager.nix ../settings ]; diff --git a/system/gnome.nix b/system/gnome.nix index f56f938..6b82916 100644 --- a/system/gnome.nix +++ b/system/gnome.nix @@ -1,47 +1,53 @@ -{ pkgs, lib, ... }: { - services.xserver = { - enable = true; - desktopManager.gnome = { + config, + pkgs, + lib, + ... +}: +{ + options.my.gnome.enable = lib.mkEnableOption { }; + + config = lib.mkIf config.my.gnome.enable { + services.xserver = { enable = true; - # Enable VRR (Variable Refresh Rate) - extraGSettingsOverridePackages = with pkgs; [ gnome.mutter ]; - extraGSettingsOverrides = '' - [org.gnome.mutter] - experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer'] - ''; + displayManager.gdm.enable = true; + desktopManager.gnome = { + enable = true; + # Enable VRR (Variable Refresh Rate) + extraGSettingsOverridePackages = with pkgs; [ mutter ]; + extraGSettingsOverrides = '' + [org.gnome.mutter] + experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer'] + ''; + }; }; - displayManager.gdm.enable = true; - }; - # Workaround for https://github.com/NixOS/nixpkgs/issues/103746 - systemd.services."getty@tty1".enable = false; - systemd.services."autovt@tty1".enable = false; + # Workaround for https://github.com/NixOS/nixpkgs/issues/103746 + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; - services.displayManager.autoLogin = { - enable = true; - user = "lelgenio"; - }; + services.displayManager.autoLogin = { + enable = true; + user = "lelgenio"; + }; - programs.kdeconnect = { - enable = true; - package = pkgs.gnomeExtensions.gsconnect; - }; + programs.kdeconnect = { + enable = true; + package = pkgs.gnomeExtensions.gsconnect; + }; - hardware.opentabletdriver.enable = lib.mkForce false; + hardware.opentabletdriver.enable = lib.mkForce false; - programs.gpaste.enable = true; + programs.gpaste.enable = true; - # services.xserver.displayManager.autologin.user = "lelgenio"; - environment.systemPackages = - with pkgs; - with gnome; - [ + environment.systemPackages = with pkgs; [ gnome-tweaks dconf-editor - chrome-gnome-shell + gnome-browser-connector gnomeExtensions.quick-settings-audio-devices-hider + gnomeExtensions.user-themes gnome-pass-search-provider ]; + }; } diff --git a/system/kde.nix b/system/kde.nix index c5ef277..27533ec 100644 --- a/system/kde.nix +++ b/system/kde.nix @@ -1,15 +1,19 @@ -{ config, pkgs, ... }: { - # Enable the X11 windowing system. - services.xserver.enable = true; - # Enable the KDE Desktop Environment. - services.xserver.displayManager.sddm.enable = true; - services.xserver.desktopManager.plasma5.enable = true; - # services.xserver.displayManager.autologin.user = "lelgenio"; - programs.dconf.enable = true; - # environment.systemPackages = with pkgs; - # with gnome; [ - # gnome-tweaks - # dconf-editor - # ]; + config, + pkgs, + lib, + ... +}: +{ + options.my.kde.enable = lib.mkEnableOption { }; + + config = lib.mkIf config.my.kde.enable { + # Enable the X11 windowing system. + services.xserver.enable = true; + # Enable the KDE Desktop Environment. + services.xserver.displayManager.sddm.enable = true; + services.xserver.desktopManager.plasma5.enable = true; + # services.xserver.displayManager.autologin.user = "lelgenio"; + programs.dconf.enable = true; + }; } diff --git a/user/dummy.nix b/user/dummy.nix index 91e66cc..7a0aac4 100644 --- a/user/dummy.nix +++ b/user/dummy.nix @@ -5,5 +5,7 @@ android.enable = lib.mkEnableOption { }; media-packages.enable = lib.mkEnableOption { }; containers.enable = lib.mkEnableOption { }; + gnome.enable = lib.mkEnableOption { }; + kde.enable = lib.mkEnableOption { }; }; } diff --git a/user/gnome.nix b/user/gnome.nix index 9a3562b..fa5f2fa 100644 --- a/user/gnome.nix +++ b/user/gnome.nix @@ -43,7 +43,7 @@ lib.mkIf (config.my.desktop == "gnome") { qt6Packages.qtstyleplugin-kvantum ]; - services.gpg-agent.pinentry.package = pkgs.pinentry-gnome; + services.gpg-agent.pinentry.package = lib.mkForce pkgs.pinentry-gnome3; xdg.defaultApplications = { enable = lib.mkForce false;