From 24d31f68810843f6c44dc2d98f7b438e54b61c57 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Sun, 7 Sep 2025 14:12:17 +0100 Subject: [PATCH] Add steam on jupiter Signed-off-by: Nikolaos Karaolidis --- .../user/gui/gaming/gamescope/default.nix | 1 + .../user/gui/gaming/performance/default.nix | 30 ---------- hosts/himalia/users/nick/default.nix | 1 - hosts/jupiter/default.nix | 5 ++ .../configs/console/podman/attic/default.nix | 2 +- .../users/tv/configs/gui/steam/default.nix | 23 +++++++ hosts/jupiter/users/tv/default.nix | 60 +++++++++++++++++++ hosts/jupiter/users/tv/uid | 1 + 8 files changed, 91 insertions(+), 32 deletions(-) delete mode 100644 hosts/common/configs/user/gui/gaming/performance/default.nix create mode 100644 hosts/jupiter/users/tv/configs/gui/steam/default.nix create mode 100644 hosts/jupiter/users/tv/default.nix create mode 100644 hosts/jupiter/users/tv/uid diff --git a/hosts/common/configs/user/gui/gaming/gamescope/default.nix b/hosts/common/configs/user/gui/gaming/gamescope/default.nix index 3994b4b..ca69040 100644 --- a/hosts/common/configs/user/gui/gaming/gamescope/default.nix +++ b/hosts/common/configs/user/gui/gaming/gamescope/default.nix @@ -3,6 +3,7 @@ { programs.gamescope = { enable = true; + capSysNice = true; args = [ "--rt" "-f" diff --git a/hosts/common/configs/user/gui/gaming/performance/default.nix b/hosts/common/configs/user/gui/gaming/performance/default.nix deleted file mode 100644 index 04bc359..0000000 --- a/hosts/common/configs/user/gui/gaming/performance/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ user, home }: -{ - config, - lib, - pkgs, - ... -}: -# https://bonkmaykr.xyz/content/discovery_lin.htm -{ - boot.kernel.sysctl."vm.max_map_count" = 1048576; - - security.pam.loginLimits = [ - { - domain = user; - item = "nofile"; - type = "soft"; - value = 200000; - } - { - domain = user; - item = "nofile"; - type = "hard"; - value = 200000; - } - ]; - - home-manager.users.${user}.wayland.windowManager.hyprland.settings.env = [ - "__GL_SHADER_DISK_CACHE_SKIP_CLEANUP,1" - ]; -} diff --git a/hosts/himalia/users/nick/default.nix b/hosts/himalia/users/nick/default.nix index 6487475..b86084f 100644 --- a/hosts/himalia/users/nick/default.nix +++ b/hosts/himalia/users/nick/default.nix @@ -64,7 +64,6 @@ in (import ../../../common/configs/user/gui/firefox { inherit user home; }) (import ../../../common/configs/user/gui/gaming/gamemode { inherit user home; }) (import ../../../common/configs/user/gui/gaming/gamescope { inherit user home; }) - (import ../../../common/configs/user/gui/gaming/performance { inherit user home; }) (import ../../../common/configs/user/gui/gaming/steam { inherit user home; }) (import ../../../common/configs/user/gui/gaming/prismlauncher { inherit user home; }) (import ../../../common/configs/user/gui/gaming/proton { inherit user home; }) diff --git a/hosts/jupiter/default.nix b/hosts/jupiter/default.nix index a292d39..759b447 100644 --- a/hosts/jupiter/default.nix +++ b/hosts/jupiter/default.nix @@ -13,11 +13,13 @@ ../common/configs/system + ../common/configs/system/bluetooth ../common/configs/system/boot ../common/configs/system/brightnessctl ../common/configs/system/btrbk ../common/configs/system/btrfs ../common/configs/system/documentation + ../common/configs/system/getty ../common/configs/system/git ../common/configs/system/impermanence ../common/configs/system/lanzaboote @@ -25,8 +27,10 @@ ../common/configs/system/networkmanager ../common/configs/system/nix ../common/configs/system/nix-cleanup + ../common/configs/system/nix-ld ../common/configs/system/nixpkgs ../common/configs/system/ntp + ../common/configs/system/pipewire ../common/configs/system/podman ../common/configs/system/power ../common/configs/system/smartmontools @@ -45,6 +49,7 @@ ./users/storm ./users/nick + ./users/tv ]; networking.hostName = "jupiter"; diff --git a/hosts/jupiter/users/storm/configs/console/podman/attic/default.nix b/hosts/jupiter/users/storm/configs/console/podman/attic/default.nix index 9ae88bd..b6d0da0 100644 --- a/hosts/jupiter/users/storm/configs/console/podman/attic/default.nix +++ b/hosts/jupiter/users/storm/configs/console/podman/attic/default.nix @@ -57,7 +57,7 @@ in garbage-collection = { interval = "12 hours"; - default-retention-period = "1 month"; + default-retention-period = "6 months"; }; jwt.signing.token-rs256-secret-base64 = hmConfig.sops.placeholder."attic/rs256"; diff --git a/hosts/jupiter/users/tv/configs/gui/steam/default.nix b/hosts/jupiter/users/tv/configs/gui/steam/default.nix new file mode 100644 index 0000000..1713fa4 --- /dev/null +++ b/hosts/jupiter/users/tv/configs/gui/steam/default.nix @@ -0,0 +1,23 @@ +{ user, home }: +{ lib, ... }: +{ + programs.steam.gamescopeSession = { + enable = true; + args = [ + "-O" + "HDMI-A-1" + "-W" + "3840" + "-H" + "2160" + "--hdr-enabled" + "--adaptive-sync" + ]; + }; + + home-manager.users.${user}.programs.zsh.loginExtra = lib.mkAfter '' + if [[ "$(tty)" = "/dev/tty1" ]]; then + exec steam-gamescope + fi + ''; +} diff --git a/hosts/jupiter/users/tv/default.nix b/hosts/jupiter/users/tv/default.nix new file mode 100644 index 0000000..21a35dd --- /dev/null +++ b/hosts/jupiter/users/tv/default.nix @@ -0,0 +1,60 @@ +{ + config, + lib, + inputs, + ... +}: +let + # FIXME: https://github.com/NixOS/nixpkgs/issues/24570 + # FIXME: https://github.com/NixOS/nixpkgs/issues/305643 + user = "tv"; + home = "/home/tv"; +in +{ + imports = [ + (import ../../../common/configs/user { inherit user home; }) + + (import ../../../common/configs/user/console/brightnessctl { inherit user home; }) + (import ../../../common/configs/user/console/home-manager { inherit user home; }) + (import ../../../common/configs/user/console/sops { inherit user home; }) + (import ../../../common/configs/user/console/xdg { inherit user home; }) + (import ../../../common/configs/user/console/zsh { inherit user home; }) + + (import ../../../common/configs/user/gui/gaming/gamemode { inherit user home; }) + (import ../../../common/configs/user/gui/gaming/gamescope { inherit user home; }) + (import ../../../common/configs/user/gui/gaming/steam { inherit user home; }) + + (import ./configs/gui/steam { inherit user home; }) + ]; + + # mkpasswd -s + sops.secrets."${user}-password" = { + sopsFile = "${inputs.secrets}/domains/personal/secrets.yaml"; + key = "password"; + neededForUsers = true; + }; + + users.users.${user} = { + inherit home; + isNormalUser = true; + email = "nick@karaolidis.com"; + fullName = "Nikolaos Karaolidis (TV)"; + description = "Nikolaos Karaolidis (TV)"; + hashedPasswordFile = config.sops.secrets."${user}-password".path; + extraGroups = [ + "wheel" + "networkmanager" + "storage" + ]; + linger = true; + uid = lib.strings.toInt (builtins.readFile ./uid); + openssh.authorizedKeys.keyFiles = [ "${inputs.secrets}/domains/personal/id_ed25519.pub" ]; + }; + + services.getty.autologinUser = user; + + home-manager.users.${user}.home = { + username = user; + homeDirectory = home; + }; +} diff --git a/hosts/jupiter/users/tv/uid b/hosts/jupiter/users/tv/uid new file mode 100644 index 0000000..dd11724 --- /dev/null +++ b/hosts/jupiter/users/tv/uid @@ -0,0 +1 @@ +1001