From bf90c14bc5fda1aaa38648299b338ab3b24edfa9 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Tue, 14 Apr 2026 00:37:40 +0200 Subject: [PATCH 1/3] profile/gaming: add gamescope --- machines/playman/profiles.nix | 5 +- profiles/gaming/default.nix | 107 ++++++++++++++++++++++++---------- 2 files changed, 79 insertions(+), 33 deletions(-) diff --git a/machines/playman/profiles.nix b/machines/playman/profiles.nix index 9b7d573..603eb7b 100644 --- a/machines/playman/profiles.nix +++ b/machines/playman/profiles.nix @@ -3,7 +3,10 @@ _: { my.profiles = { clean.enable = true; development.enable = true; - gaming.enable = true; + gaming = { + enable = true; + gamescope.enable = true; + }; nix.enable = true; sync.enable = true; update.enable = true; diff --git a/profiles/gaming/default.nix b/profiles/gaming/default.nix index 51d70ec..664f297 100644 --- a/profiles/gaming/default.nix +++ b/profiles/gaming/default.nix @@ -10,40 +10,83 @@ in { options.my.profiles.gaming = with lib; { enable = mkEnableOption "gaming profile"; - }; - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - blobby - discord - gamemode - luanti - moonlight-qt # steam-link stream - openttd - prismlauncher # replace minecraft - SDL - SDL2 - steam - superTuxKart - wine - winetricks - ]; - - programs.steam = { - enable = true; - # fix gamemode: https://github.com/NixOS/nixpkgs/issues/389142 - package = pkgs.steam.override { - extraPkgs = - pkgs: with pkgs; [ - gamemode - ]; + gamescope = { + enable = mkEnableOption "gamescope profile"; + username = mkOption { + type = types.str; + default = "felix"; + description = "Username for gamescope autologin"; }; }; - - hardware = { - graphics.enable32Bit = true; - graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; - }; - services.pulseaudio.support32Bit = true; }; + + config = lib.mkIf cfg.enable ( + + lib.mkMerge [ + { + environment.systemPackages = with pkgs; [ + blobby + discord + gamemode + luanti + mangohud + moonlight-qt # steam-link stream + openttd + prismlauncher # replace minecraft + SDL + SDL2 + steam + superTuxKart + wine + winetricks + ]; + + programs.steam = { + enable = true; + # remotePlay.openFirewall = cfg.gamescope.enable; + # fix gamemode: https://github.com/NixOS/nixpkgs/issues/389142 + package = pkgs.steam.override { + extraPkgs = + pkgs: with pkgs; [ + gamemode + ]; + }; + }; + + hardware = { + graphics.enable32Bit = true; + graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ]; + }; + + services.pulseaudio.support32Bit = true; + } + + (lib.mkIf cfg.gamescope.enable { + programs = { + gamescope = { + enable = true; + capSysNice = true; + }; + steam.gamescopeSession.enable = true; + }; + + services = { + xserver.enable = false; + + getty.autologinUser = cfg.gamescope.username; + + greetd = { + enable = true; + settings = { + default_session = { + command = "${lib.getExe pkgs.gamescope} -W 1920 -H 1080 -f -e --xwayland-count 2 --hdr-enabled --hdr-itm-enabled -- ${lib.getExe config.programs.steam.package} -pipewire-dmabuf -gamepadui -steamos3 > /dev/null 2>&1"; + user = cfg.gamescope.username; + }; + }; + }; + }; + }) + ] + ); } From 16cc7e4dfae6d7ec4f2963b6a56d893b1bc8cc36 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Tue, 14 Apr 2026 00:37:54 +0200 Subject: [PATCH 2/3] flake: bump nixos-hardware --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 7a52254..06124b5 100644 --- a/flake.lock +++ b/flake.lock @@ -222,11 +222,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1775232991, - "narHash": "sha256-QkmL6kwmQXBN24FVOZSfFkNpUgu8jHfdYPoA2H8sA7k=", + "lastModified": 1776114880, + "narHash": "sha256-Az1+aJxg7MsH+u19hmW7KEIAeZh7PUgtpX7EM3QQkDM=", "owner": "Stunkymonkey", "repo": "nixos-hardware", - "rev": "d6ee262f8d4db0815b08c76714becc09af11f962", + "rev": "10da53a55f4fb47139ec002f3c7081d85c259e18", "type": "github" }, "original": { From 583ea7d3a72a8232220f6ac74531029f6160f853 Mon Sep 17 00:00:00 2001 From: Felix Buehler Date: Sun, 19 Apr 2026 14:50:52 +0200 Subject: [PATCH 3/3] service/initrd-ssh: improve login logic --- modules/services/initrd-ssh/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/services/initrd-ssh/default.nix b/modules/services/initrd-ssh/default.nix index e295462..7c90de6 100644 --- a/modules/services/initrd-ssh/default.nix +++ b/modules/services/initrd-ssh/default.nix @@ -35,7 +35,7 @@ in }; postCommands = lib.optionalString (cfg.mode == "grub2") '' - echo 'cryptsetup-askpass || echo "Unlock was successful; exiting SSH session" && exit 1' >> /root/.profile + echo 'cryptsetup-askpass && { echo "Unlock was successful; exiting SSH session"; exit 0; }' >> /root/.profile ''; }; @@ -49,7 +49,7 @@ in unitConfig.DefaultDependencies = "no"; serviceConfig.Type = "oneshot"; script = '' - echo 'systemctl default || echo "Unlock was successful; exiting SSH session" && exit 1' >> /var/empty/.profile + echo 'systemctl default && { echo "Unlock was successful; exiting SSH session"; exit 0; }' >> /var/empty/.profile ''; }; };