diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix deleted file mode 100644 index 1aba2e6..0000000 --- a/modules/home/desktop/default.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - lib, - osConfig, - pkgs, - ... -}: -let - cfg = config.desktop; - upstreamCfg = osConfig.desktop; - inherit (lib) mkMerge mkIf mkEnableOption; -in -{ - config = mkIf upstreamCfg.enable (mkMerge [ - (lib.mkIf (osConfig.hardware.gpu == "nvidia") { - }) - (lib.mkIf osConfig.desktop.enableSpotifyd { - services.spotifyd.enable = true; - services.spotifyd.settings.global = { - device_name = "${osConfig.system.hostname}"; - device_type = "computer"; - zeroconf_port = 5353; - }; - }) - (lib.mkIf osConfig.desktop.enableSteam { - home.persistence."/persist/home/${config.snowfallorg.user.name}".directories = [ - ".local/share/Steam" - ]; - }) - (lib.mkIf osConfig.desktop.enableSunshine { - home.persistence."/persist/home/${config.snowfallorg.user.name}".directories = [ - ".config/sunshine" - ]; - }) - ]); -} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 36c28ca..9deaf5c 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -5,9 +5,14 @@ ... }: let - inherit (lib) mkEnableOption mkIf singleton; + inherit (lib) + mkEnableOption + mkIf + singleton + optional + ; inherit (lib.pantheon) mkStrOption; - inherit (pkgs) wl-clipboard-rs; + inherit (pkgs) font-awesome wl-clipboard-rs; cfg = config.desktop; in { @@ -16,49 +21,16 @@ in enableWaylandUtilities = mkEnableOption ""; mainMonitor = { id = mkStrOption; - scale = lib.pantheon.mkStrOption; - resolution = lib.pantheon.mkStrOption; - refresh-rate = lib.pantheon.mkStrOption; + scale = mkStrOption; + resolution = mkStrOption; + refresh-rate = mkStrOption; }; - enableSpotifyd = lib.mkEnableOption ""; - enableSteam = lib.mkEnableOption ""; - enableVR = lib.mkEnableOption ""; - enableSunshine = lib.mkEnableOption ""; }; - config = lib.mkMerge [ - { - fonts.packages = with pkgs; [ - font-awesome - ]; - } - (mkIf cfg.enableWaylandUtilities { - home-manager.sharedModules = singleton { home.packages = [ wl-clipboard-rs ]; }; - }) - (lib.mkIf config.desktop.enableSteam { - programs.steam = { - enable = true; - gamescopeSession.enable = true; - }; - }) - (lib.mkIf config.desktop.enableVR { - programs.alvr = { - enable = true; - openFirewall = true; - }; - environment.systemPackages = [ pkgs.android-tools ]; - }) - (lib.mkIf config.desktop.enableSunshine { - services.sunshine = { - enable = true; - capSysAdmin = true; - openFirewall = true; - settings = { - sunshine_name = config.system.hostname; - origin_web_ui_allowed = "wan"; - }; - applications = { }; - }; - }) - ]; + config = mkIf cfg.enable { + fonts.packages = singleton font-awesome; + home-manager.sharedModules = optional cfg.enableWaylandUtilities { + home.packages = [ wl-clipboard-rs ]; + }; + }; } diff --git a/modules/nixos/desktop/services/default.nix b/modules/nixos/desktop/services/default.nix new file mode 100644 index 0000000..b9018d6 --- /dev/null +++ b/modules/nixos/desktop/services/default.nix @@ -0,0 +1,52 @@ +{ config, lib, ... }: +let + inherit (lib) + mkMerge + singleton + mkEnableOption + mkIf + ; + cfg = config.desktop.services; +in +{ + options.desktop.services = { + spotifyd.enable = mkEnableOption ""; + sunshine.enable = mkEnableOption ""; + steam.enable = mkEnableOption ""; + }; + + config = mkMerge [ + (mkIf cfg.sunshine.enable { + services.sunshine = { + enable = true; + capSysAdmin = true; + openFirewall = true; + settings = { + sunshine_name = config.system.hostname; + origin_web_ui_allowed = "wan"; + }; + applications = { }; + }; + home-manager.sharedModules = singleton { persistDirs = singleton ".config/sunshine"; }; + }) + (mkIf cfg.spotifyd.enable { + networking.firewall.allowedTCPPorts = [ 5353 ]; + networking.firewall.allowedUDPPorts = [ 5353 ]; + home-manager.sharedModules = singleton { + services.spotifyd.enable = true; + services.spotifyd.settings.global = { + device_name = "${config.system.hostname}"; + device_type = "computer"; + zeroconf_port = 5353; + }; + }; + }) + (mkIf cfg.steam.enable { + programs.steam = { + enable = true; + gamescopeSession.enable = true; + }; + home-manager.sharedModules = singleton { persistDirs = singleton ".local/share/Steam"; }; + }) + ]; +} diff --git a/modules/nixos/hardware/networking.nix b/modules/nixos/hardware/networking.nix index 89ea093..372bebe 100644 --- a/modules/nixos/hardware/networking.nix +++ b/modules/nixos/hardware/networking.nix @@ -1,30 +1,24 @@ { config, lib, ... }: { - config = lib.mkMerge [ - { - networking = { - enableIPv6 = false; - useDHCP = lib.mkDefault true; - hostName = config.system.hostname; - networkmanager.enable = true; - }; + config = { + networking = { + enableIPv6 = false; + useDHCP = lib.mkDefault true; + hostName = config.system.hostname; + networkmanager.enable = true; + }; - services.openssh = { - enable = true; - settings = { - PrintMotd = true; - }; + services.openssh = { + enable = true; + settings = { + PrintMotd = true; }; + }; - services.tailscale = { - enable = true; - authKeyFile = config.sops.secrets."keys/tailscale".path; - }; - environment.persistence."/persist".directories = [ "/var/lib/tailscale" ]; - } - (lib.mkIf config.desktop.enableSpotifyd { - networking.firewall.allowedTCPPorts = [ 5353 ]; - networking.firewall.allowedUDPPorts = [ 5353 ]; - }) - ]; + services.tailscale = { + enable = true; + authKeyFile = config.sops.secrets."keys/tailscale".path; + }; + environment.persistence."/persist".directories = [ "/var/lib/tailscale" ]; + }; } diff --git a/systems/x86_64-linux/desktop.nix b/systems/x86_64-linux/desktop.nix index b653213..4c9b096 100644 --- a/systems/x86_64-linux/desktop.nix +++ b/systems/x86_64-linux/desktop.nix @@ -9,9 +9,5 @@ status-bar.waybar.enable = true; terminal.ghostty.enable = true; window-manager.hyprland.enable = true; - enableSpotifyd = true; - enableSteam = true; - enableVR = true; - enableSunshine = true; }; } diff --git a/systems/x86_64-linux/nemesis/default.nix b/systems/x86_64-linux/nemesis/default.nix index 13076d2..4c30d18 100644 --- a/systems/x86_64-linux/nemesis/default.nix +++ b/systems/x86_64-linux/nemesis/default.nix @@ -1,4 +1,3 @@ -{ pkgs, ... }: { imports = [ ../common.nix @@ -21,11 +20,18 @@ usb.automount = true; }; - desktop.mainMonitor = { - id = "desc:OOO AN-270W04K"; - scale = "2"; - resolution = "3840x2160"; - refresh-rate = "60"; + desktop = { + services = { + steam.enable = true; + sunshine.enable = true; + spotifyd.enable = true; + }; + mainMonitor = { + id = "desc:OOO AN-270W04K"; + scale = "2"; + resolution = "3840x2160"; + refresh-rate = "60"; + }; }; services = {