diff --git a/configurations/nixos/endurance/default.nix b/configurations/nixos/endurance/default.nix index 38e8a48..66e5fb8 100644 --- a/configurations/nixos/endurance/default.nix +++ b/configurations/nixos/endurance/default.nix @@ -13,10 +13,13 @@ ./hardware.nix ./disko.nix ./metrics.nix - ./musnix.nix ]; bosun = { + profiles = { + graphical.enable = true; + }; + #quirks = ["avahi" "docker" "nix-ld"]; key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPjqieS4GkYAa1WRYZpxjgYsj7VGZ9U+rTFCkX8M0umD"; }; diff --git a/configurations/nixos/endurance/musnix.nix b/configurations/nixos/endurance/musnix.nix deleted file mode 100644 index 04bbeb3..0000000 --- a/configurations/nixos/endurance/musnix.nix +++ /dev/null @@ -1,12 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.musnix.nixosModules.default - ]; - - musnix = { - enable = true; - rtcqs.enable = true; - }; - - users.users.toph.extraGroups = ["audio"]; -} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 55be4b3..0500b32 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,6 +1,7 @@ { imports = [ ./services + ./profiles ./system.nix ./users.nix ]; diff --git a/modules/nixos/profiles/default.nix b/modules/nixos/profiles/default.nix new file mode 100644 index 0000000..7957890 --- /dev/null +++ b/modules/nixos/profiles/default.nix @@ -0,0 +1,5 @@ +{...}: { + imports = [ + ./graphical + ]; +} diff --git a/modules/nixos/profiles/graphical/audio.nix b/modules/nixos/profiles/graphical/audio.nix new file mode 100644 index 0000000..bcaa82b --- /dev/null +++ b/modules/nixos/profiles/graphical/audio.nix @@ -0,0 +1,27 @@ +{ + inputs, + lib, + ... +}: let + inherit (lib) mkForce mkDefault; +in { + imports = [ + inputs.musnix.nixosModules.default + ]; + + config = { + musnix = { + enable = mkDefault true; + rtcqs.enable = true; + }; + + users.users.toph.extraGroups = ["audio"]; + + pipewire = { + enable = mkForce true; + alsa.enable = true; + jack.enable = true; + pulse.enable = true; + }; + }; +} diff --git a/modules/nixos/profiles/graphical/default.nix b/modules/nixos/profiles/graphical/default.nix new file mode 100644 index 0000000..73028d7 --- /dev/null +++ b/modules/nixos/profiles/graphical/default.nix @@ -0,0 +1,12 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf; +in { + imports = mkIf config.bosun.profiles.graphical.enabled [ + ./wm.nix + ./audio.nix + ]; +} diff --git a/modules/nixos/profiles/graphical/wm.nix b/modules/nixos/profiles/graphical/wm.nix new file mode 100644 index 0000000..def060a --- /dev/null +++ b/modules/nixos/profiles/graphical/wm.nix @@ -0,0 +1,50 @@ +{ + inputs, + pkgs, + ... +}: { + imports = [ + inputs.niri.nixosModules.default + ]; + + config = { + environment.systemPackages = with pkgs; [ + wayland-utils + wl-clipboard + libsForQt5.qtstyleplugin-kvantum + xwayland-satellite + nautilus + ]; + + programs.niri = { + enable = true; + package = pkgs.niri; # TODO: Use input niri pkgs/overlay! + }; + + services = { + xserver.enable = true; + + displayManager = { + defaultSession = "niri"; + + sddm = { + enable = true; + wayland.enable = true; + }; + }; + + xdg.portal = { + enable = true; + xdgOpenUsePortal = true; + config.common.default = "gtk"; + + extraPortals = with pkgs; [ + xdg-desktop-portal-gnome + xdg-desktop-portal-gtk + ]; + }; + + security.polkit.enable = true; + }; + }; +} diff --git a/modules/nixos/wm/default.nix b/modules/nixos/wm/default.nix deleted file mode 100644 index c832e54..0000000 --- a/modules/nixos/wm/default.nix +++ /dev/null @@ -1,64 +0,0 @@ -{ - inputs, - pkgs, - config, - lib, - ... -}: -with lib; let - cfg = config.elements.wm; -in { - options.elements = { - wm = { - enable = mkEnableOption "Enable window manager configuration"; - }; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - # kdePackages.discover - # kdePackages.kclock - # kdePackages.kcharselect - # kdePackages.kolourpaint - # kdePackages.ksystemlog - wayland-utils - wl-clipboard - libsForQt5.qtstyleplugin-kvantum - xwayland-satellite - nautilus # xdg-gnome needs this but we don't use gnome??? - ]; - - programs.niri = { - enable = true; - package = pkgs.niri; - }; - - # niri-flake.cache.enable = false; - - services.xserver = { - enable = true; - }; - - # TODO: Switch this to Niri! - services.desktopManager.plasma6.enable = true; - services.displayManager = { - defaultSession = "niri"; - - sddm = { - enable = true; - wayland.enable = true; - }; - }; - - xdg.portal = with pkgs; { - enable = true; - xdgOpenUsePortal = true; - - extraPortals = [xdg-desktop-portal-gnome xdg-desktop-portal-gtk]; - #E configPackages = [pkgs.xdg-desktop-portal-gtk]; - config.common.default = "gtk"; - }; - - security.polkit.enable = true; - }; -}