diff options
Diffstat (limited to 'modules/nixos/mixins')
| -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 | 47 | ||||
| -rw-r--r-- | modules/nixos/mixins/pipewire.nix | 18 | ||||
| -rw-r--r-- | modules/nixos/mixins/plasma.nix | 44 |
6 files changed, 242 insertions, 0 deletions
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/mixins/niri.nix b/modules/nixos/mixins/niri.nix new file mode 100644 index 0000000..151c185 --- /dev/null +++ b/modules/nixos/mixins/niri.nix @@ -0,0 +1,47 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + config = lib.mkIf config.programs.niri.enable { + environment = { + sessionVariables = { + NIXOS_OZONE_WL = "1"; # Niri doesn't have native XWayland support + }; + + systemPackages = with pkgs; [ + # Terminal + alacritty + # Media player + celluloid + # PDF viewer + evince + # Application runner + fuzzel + # Image viewer + loupe + # Notification daemon + mako + # Polkit agent + pantheon.pantheon-agent-polkit + # Screen locker + swaylock + # Trash manager + trashy + ]; + }; + + services.greetd = { + enable = lib.mkDefault true; + settings = { + default_session.command = toString [ + (lib.getExe pkgs.greetd.tuigreet) + "--time" + ]; + }; + }; + }; +} 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; + }; + }) + ]; +} |
