diff options
| -rw-r--r-- | modules/nixos/default.nix | 1 | ||||
| -rw-r--r-- | modules/nixos/defaults/default.nix | 3 | ||||
| -rw-r--r-- | modules/nixos/defaults/desktop-programs.nix | 26 | ||||
| -rw-r--r-- | modules/nixos/defaults/fonts.nix (renamed from modules/nixos/desktop/fonts.nix) | 13 | ||||
| -rw-r--r-- | modules/nixos/desktop/audio.nix | 26 | ||||
| -rw-r--r-- | modules/nixos/desktop/budgie/default.nix | 70 | ||||
| -rw-r--r-- | modules/nixos/desktop/default.nix | 32 | ||||
| -rw-r--r-- | modules/nixos/desktop/gnome/default.nix | 56 | ||||
| -rw-r--r-- | modules/nixos/desktop/plasma/default.nix | 43 | ||||
| -rw-r--r-- | modules/nixos/desktop/programs.nix | 17 | ||||
| -rw-r--r-- | modules/nixos/mixins/budgie.nix | 71 | ||||
| -rw-r--r-- | modules/nixos/mixins/default.nix | 5 | ||||
| -rw-r--r-- | modules/nixos/mixins/gnome.nix | 57 | ||||
| -rw-r--r-- | modules/nixos/mixins/niri.nix (renamed from modules/nixos/desktop/niri/default.nix) | 12 | ||||
| -rw-r--r-- | modules/nixos/mixins/pipewire.nix | 18 | ||||
| -rw-r--r-- | modules/nixos/mixins/plasma.nix | 44 | ||||
| -rw-r--r-- | systems/glados/default.nix | 12 |
17 files changed, 235 insertions, 271 deletions
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 0b7ead6..8022a7c 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -4,7 +4,6 @@ imports = [ ../shared ./defaults - ./desktop ./mixins ./profiles ./services diff --git a/modules/nixos/defaults/default.nix b/modules/nixos/defaults/default.nix index 2e16af8..85dfbe6 100644 --- a/modules/nixos/defaults/default.nix +++ b/modules/nixos/defaults/default.nix @@ -1,6 +1,9 @@ { lib, ... }: + { imports = [ + ./desktop-programs.nix + ./fonts.nix ./nix.nix ./programs.nix ./security.nix diff --git a/modules/nixos/defaults/desktop-programs.nix b/modules/nixos/defaults/desktop-programs.nix new file mode 100644 index 0000000..3c8499d --- /dev/null +++ b/modules/nixos/defaults/desktop-programs.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = lib.mkMerge [ + { + services.xserver = { + excludePackages = [ pkgs.xterm ]; + }; + } + + (lib.mkIf config.services.xserver.enable { + environment.systemPackages = [ + pkgs.wl-clipboard + ]; + + programs = { + chromium.enable = lib.mkDefault true; + }; + }) + ]; +} diff --git a/modules/nixos/desktop/fonts.nix b/modules/nixos/defaults/fonts.nix index de3f5b4..5aa644e 100644 --- a/modules/nixos/desktop/fonts.nix +++ b/modules/nixos/defaults/fonts.nix @@ -4,18 +4,9 @@ pkgs, ... }: -let - cfg = config.desktop.fonts; -in -{ - options.desktop.fonts = { - enable = lib.mkEnableOption "desktop fonts" // { - default = config.desktop.enable; - defaultText = lib.literalExpression "config.desktop.enable"; - }; - }; - config = lib.mkIf cfg.enable { +{ + config = lib.mkIf config.services.xserver.enable { fonts = { enableDefaultPackages = true; diff --git a/modules/nixos/desktop/audio.nix b/modules/nixos/desktop/audio.nix deleted file mode 100644 index cf819e6..0000000 --- a/modules/nixos/desktop/audio.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ config, lib, ... }: -let - cfg = config.desktop.audio; -in -{ - options.desktop.audio = { - enable = lib.mkEnableOption "desktop audio configuration" // { - default = config.desktop.enable; - defaultText = lib.literalExpression "config.desktop.enable"; - }; - }; - - config = lib.mkIf cfg.enable { - security.rtkit.enable = true; - - services = { - pipewire = lib.mkDefault { - enable = true; - wireplumber.enable = true; - alsa.enable = true; - jack.enable = true; - pulse.enable = true; - }; - }; - }; -} diff --git a/modules/nixos/desktop/budgie/default.nix b/modules/nixos/desktop/budgie/default.nix deleted file mode 100644 index ac02b33..0000000 --- a/modules/nixos/desktop/budgie/default.nix +++ /dev/null @@ -1,70 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.desktop.budgie; -in -{ - options.desktop.budgie.enable = lib.mkEnableOption "Budgie desktop"; - - # TODO: Improve this module - config = lib.mkIf cfg.enable { - environment = { - budgie.excludePackages = with pkgs; [ - qogir-theme - qogir-icon-theme - - # I don't like MATE's apps. Fedora doesn't use them either :/ - mate.atril - mate.pluma - mate.engrampa - mate.mate-calc - mate.mate-terminal - mate.mate-system-monitor - vlc - ]; - - systemPackages = [ - pkgs.materia-theme - pkgs.papirus-icon-theme - - # Replacements for mate stuff - pkgs.celluloid - pkgs.cinnamon.nemo-fileroller - pkgs.evince - pkgs.gedit - pkgs.gnome-console - pkgs.gnome.gnome-calculator - pkgs.gnome.gnome-system-monitor - ]; - }; - - services.xserver = { - # fedora uses these by default - displayManager.lightdm.greeters.slick = { - theme = { - name = "Materia-dark"; - package = pkgs.materia-theme; - }; - iconTheme = { - name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; - }; - }; - - desktopManager.budgie = { - enable = true; - # make sure we actually use the above themes - extraGSettingsOverrides = '' - [org.gnome.desktop.interface:Budgie] - color-scheme='prefer-dark' - gtk-theme='Materia-dark' - icon-theme='Papirus-Dark' - ''; - }; - }; - }; -} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix deleted file mode 100644 index c7029cb..0000000 --- a/modules/nixos/desktop/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.desktop; -in -{ - options.desktop = { - enable = lib.mkEnableOption "desktop settings"; - }; - - imports = [ - ./audio.nix - ./fonts.nix - ./programs.nix - - ./budgie - ./gnome - ./niri - ./plasma - ]; - - config = lib.mkIf cfg.enable { - services.xserver = { - enable = true; - excludePackages = [ pkgs.xterm ]; - }; - }; -} diff --git a/modules/nixos/desktop/gnome/default.nix b/modules/nixos/desktop/gnome/default.nix deleted file mode 100644 index 13d25fa..0000000 --- a/modules/nixos/desktop/gnome/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -let - cfg = config.desktop.gnome; -in -{ - options.desktop.gnome.enable = lib.mkEnableOption "GNOME desktop"; - - config = lib.mkIf cfg.enable { - environment = { - gnome.excludePackages = with pkgs; [ - gnome-tour - totem # Replaced with celluloid - seahorse # Replaced with key-rack - ]; - - sessionVariables = { - NIXOS_OZONE_WL = "1"; - # For qadwaitadecorations - QT_WAYLAND_DECORATION = "adwaita"; - }; - - systemPackages = [ - # Make GTK3 apps look good - pkgs.adw-gtk3 - # Media player - pkgs.celluloid - # Checksum verifier - pkgs.collision - # Audio player - pkgs.decibels - # Screen recorder - pkgs.kooha - # Secret manager - pkgs.key-rack - # Fix Qt app client decorations - pkgs.qadwaitadecorations - pkgs.qadwaitadecorations-qt6 - # Task manager - pkgs.resources - # Emoji picker - pkgs.smile - pkgs.video-trimmer - ]; - }; - - services.xserver = { - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; - }; - }; -} diff --git a/modules/nixos/desktop/plasma/default.nix b/modules/nixos/desktop/plasma/default.nix deleted file mode 100644 index 6160afa..0000000 --- a/modules/nixos/desktop/plasma/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ - config, - lib, - pkgs, - inputs', - ... -}: -let - cfg = config.desktop.plasma; -in -{ - options.desktop.plasma.enable = lib.mkEnableOption "Plasma desktop"; - - config = lib.mkIf cfg.enable { - environment = { - plasma6.excludePackages = with pkgs.kdePackages; [ - discover - khelpcenter - konsole - plasma-browser-integration - ]; - - sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; - - systemPackages = [ - inputs'.krunner-nix.packages.default # thank you leah - pkgs.ghostty - pkgs.haruna # mpv frontend - ]; - }; - - services = { - displayManager.sddm = { - enable = true; - wayland.enable = true; - }; - - desktopManager.plasma6.enable = true; - }; - }; -} diff --git a/modules/nixos/desktop/programs.nix b/modules/nixos/desktop/programs.nix deleted file mode 100644 index 0bbf889..0000000 --- a/modules/nixos/desktop/programs.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -{ - config = lib.mkIf config.desktop.enable { - environment.systemPackages = [ - pkgs.wl-clipboard - ]; - - programs = { - chromium.enable = lib.mkDefault true; - }; - }; -} diff --git a/modules/nixos/mixins/budgie.nix b/modules/nixos/mixins/budgie.nix new file mode 100644 index 0000000..254143e --- /dev/null +++ b/modules/nixos/mixins/budgie.nix @@ -0,0 +1,71 @@ +{ + config, + lib, + pkgs, + ... +}: + +# TODO: Improve this +{ + config = lib.mkMerge [ + { + environment = { + budgie.excludePackages = with pkgs; [ + qogir-theme + qogir-icon-theme + + # I don't like MATE's apps. Fedora doesn't use them either :/ + mate.atril + mate.pluma + mate.engrampa + mate.mate-calc + mate.mate-terminal + mate.mate-system-monitor + vlc + ]; + }; + + services.xserver.desktopManager.budgie = { + # Make sure we actually use the themes below + extraGSettingsOverrides = '' + [org.gnome.desktop.interface:Budgie] + color-scheme='prefer-dark' + gtk-theme='Materia-dark' + icon-theme='Papirus-Dark' + ''; + }; + } + + (lib.mkIf config.services.xserver.desktopManager.budgie.enable { + environment.systemPackages = with pkgs; [ + materia-theme + papirus-icon-theme + + # Replacements for MATE apps + celluloid + cinnamon.nemo-fileroller + evince + gedit + gnome-console + gnome.gnome-calculator + gnome.gnome-system-monitor + ]; + + services.xserver.displayManager.lightdm = { + enable = lib.mkDefault true; + + # Fedora uses these by default + greeters.slick = { + theme = { + name = "Materia-dark"; + package = pkgs.materia-theme; + }; + iconTheme = { + name = "Papirus-Dark"; + package = pkgs.papirus-icon-theme; + }; + }; + }; + }) + ]; +} diff --git a/modules/nixos/mixins/default.nix b/modules/nixos/mixins/default.nix index 701c4db..8a3653b 100644 --- a/modules/nixos/mixins/default.nix +++ b/modules/nixos/mixins/default.nix @@ -1,13 +1,18 @@ { imports = [ ./acme.nix + ./budgie.nix ./comin.nix ./forgejo.nix + ./gnome.nix ./hercules.nix ./kanidm.nix ./lanzaboote.nix ./nginx.nix + ./niri.nix ./nvidia.nix + ./pipewire.nix + ./plasma.nix ./promtail.nix ./resolved.nix ./tailscale.nix diff --git a/modules/nixos/mixins/gnome.nix b/modules/nixos/mixins/gnome.nix new file mode 100644 index 0000000..c60fbf8 --- /dev/null +++ b/modules/nixos/mixins/gnome.nix @@ -0,0 +1,57 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = lib.mkMerge [ + { + environment = { + gnome.excludePackages = with pkgs; [ + gnome-tour + totem # Replaced with celluloid + seahorse # Replaced with key-rack + ]; + }; + } + + (lib.mkIf config.services.xserver.desktopManager.gnome.enable { + environment = { + sessionVariables = { + NIXOS_OZONE_WL = "1"; + # For qadwaitadecorations + QT_WAYLAND_DECORATION = "adwaita"; + }; + + systemPackages = [ + # Make GTK3 apps look good + pkgs.adw-gtk3 + # Media player + pkgs.celluloid + # Checksum verifier + pkgs.collision + # Audio player + pkgs.decibels + # Screen recorder + pkgs.kooha + # Secret manager + pkgs.key-rack + # Fix Qt app client decorations + pkgs.qadwaitadecorations + pkgs.qadwaitadecorations-qt6 + # Task manager + pkgs.resources + # Emoji picker + pkgs.smile + pkgs.video-trimmer + ]; + }; + + services.xserver.displayManager.gdm = { + enable = lib.mkDefault true; + }; + }) + ]; +} diff --git a/modules/nixos/desktop/niri/default.nix b/modules/nixos/mixins/niri.nix index 93505ee..151c185 100644 --- a/modules/nixos/desktop/niri/default.nix +++ b/modules/nixos/mixins/niri.nix @@ -4,15 +4,9 @@ pkgs, ... }: -let - cfg = config.desktop.niri; -in -{ - options.desktop.niri = { - enable = lib.mkEnableOption "Niri desktop settings"; - }; - config = lib.mkIf cfg.enable { +{ + config = lib.mkIf config.programs.niri.enable { environment = { sessionVariables = { NIXOS_OZONE_WL = "1"; # Niri doesn't have native XWayland support @@ -41,7 +35,7 @@ in }; services.greetd = { - enable = true; + enable = lib.mkDefault true; settings = { default_session.command = toString [ (lib.getExe pkgs.greetd.tuigreet) diff --git a/modules/nixos/mixins/pipewire.nix b/modules/nixos/mixins/pipewire.nix new file mode 100644 index 0000000..838e49f --- /dev/null +++ b/modules/nixos/mixins/pipewire.nix @@ -0,0 +1,18 @@ +{ config, lib, ... }: + +{ + config = lib.mkMerge [ + { + services.pipewire = lib.mkDefault { + wireplumber.enable = true; + alsa.enable = true; + jack.enable = true; + pulse.enable = true; + }; + } + + (lib.mkIf config.services.pipewire.enable { + security.rtkit.enable = true; + }) + ]; +} diff --git a/modules/nixos/mixins/plasma.nix b/modules/nixos/mixins/plasma.nix new file mode 100644 index 0000000..a43d718 --- /dev/null +++ b/modules/nixos/mixins/plasma.nix @@ -0,0 +1,44 @@ +{ + config, + lib, + pkgs, + inputs', + ... +}: + +{ + config = lib.mkMerge [ + { + environment = { + plasma6.excludePackages = with pkgs.kdePackages; [ + discover + khelpcenter + konsole + plasma-browser-integration + ]; + }; + + services.displayManager.sddm = { + wayland.enable = true; + }; + } + + (lib.mkIf config.services.desktopManager.plasma6.enable { + environment = { + sessionVariables = { + NIXOS_OZONE_WL = "1"; + }; + + systemPackages = [ + inputs'.krunner-nix.packages.default # Thank you Leah + pkgs.ghostty + pkgs.haruna # MPV frontend + ]; + }; + + services.displayManager.sddm = { + enable = lib.mkDefault true; + }; + }) + ]; +} diff --git a/systems/glados/default.nix b/systems/glados/default.nix index 42cdeb8..4911a87 100644 --- a/systems/glados/default.nix +++ b/systems/glados/default.nix @@ -14,11 +14,6 @@ profiles.personal.enable = true; - desktop = { - enable = true; - gnome.enable = true; - }; - boot = { kernelParams = [ "amd_pstate=active" @@ -63,7 +58,12 @@ flatpak.enable = true; fstrim.enable = true; fwupd.enable = true; - xserver.videoDrivers = [ "nvidia" ]; + + xserver = { + desktopManager.gnome.enable = true; + + videoDrivers = [ "nvidia" ]; + }; }; swapDevices = [ |
