Compare commits

..

2 Commits

Author SHA1 Message Date
ca3242c568
yarn: disable vr 2025-11-16 19:30:38 -05:00
ff84a3bb94
yarn: deploy-rs 2025-11-16 19:30:08 -05:00
4 changed files with 97 additions and 19 deletions

View File

@ -33,11 +33,23 @@
services.kmscon.enable = true;
# Gamescope configuration for Steam Deck-like experience
programs = {
gamescope = {
enable = true;
capSysNice = true;
};
steam = {
enable = true;
gamescopeSession.enable = true;
};
};
services.greetd = {
enable = true;
settings = {
default_session = {
command = "${lib.getExe pkgs.tuigreet} --time --cmd niri-session";
command = "${lib.getExe pkgs.tuigreet} --sessions --time";
user = username;
};
terminal.vt = lib.mkForce 2;

View File

@ -12,7 +12,7 @@
./common.nix
./impermanence.nix
./no-rgb.nix
./vr.nix
# ./vr.nix
inputs.nixos-hardware.nixosModules.common-cpu-amd-pstate
inputs.nixos-hardware.nixosModules.common-cpu-amd-zenpower

View File

@ -71,6 +71,7 @@
lanzaboote,
nixos-hardware,
home-manager,
deploy-rs,
...
}@inputs:
let
@ -84,23 +85,6 @@
{
formatter.${system} = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
deploy-yarn = {
nodes.yarn = {
hostname = "desktop";
profiles.system = {
user = "root";
path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos (
self.nixosConfigurations.yarn.config.system.build.toplevel
);
sshUser = "primary";
sshOpts = [
"-p"
"22"
];
};
};
};
nixosConfigurations = nixpkgs.lib.foldl' (
config: hostname:
config
@ -133,5 +117,14 @@
};
}
) { } hostnames;
# Deploy-rs configuration for yarn host only
deploy.nodes.yarn = {
hostname = "desktop";
profiles.system = {
user = "root";
path = deploy-rs.lib.${system}.activate.nixos self.nixosConfigurations.yarn;
};
};
};
}

View File

@ -16,8 +16,81 @@
# https://github.com/NixOS/nixpkgs/pull/339370#issuecomment-2731336341
bs-manager
# Steam session scripts
(writeShellScriptBin "steam-session" ''
#!/usr/bin/env bash
set -xeuo pipefail
gamescopeArgs=(
--adaptive-sync # VRR support
--hdr-enabled
--mangoapp # performance overlay
--rt
--steam
)
steamArgs=(
-pipewire-dmabuf
-tenfoot
)
mangoConfig=(
cpu_temp
gpu_temp
ram
vram
)
mangoVars=(
MANGOHUD=1
MANGOHUD_CONFIG="$(IFS=,; echo "''${mangoConfig[*]}")"
)
export "''${mangoVars[@]}"
exec gamescope "''${gamescopeArgs[@]}" -- steam "''${steamArgs[@]}"
'')
(writeShellScriptBin "steam-session-greetd" ''
#!/usr/bin/env bash
set -xeuo pipefail
# Set environment variables for Steam gaming session
export STEAM_RUNTIME=1
export SDL_VIDEODRIVER=wayland
export QT_QPA_PLATFORM=wayland
export GDK_BACKEND=wayland
export XDG_CURRENT_DESKTOP=Steam
export XDG_SESSION_TYPE=wayland
# Kill any existing compositor
pkill niri || true
# Start Steam in Big Picture mode with gamescope
exec steam-session
'')
];
# Create desktop entry for Steam session
xdg.dataFile."wayland-sessions/steam-session.desktop".text = ''
[Desktop Entry]
Name=Steam Session
Comment=Steam Deck-like gaming session with gamescope
Exec=${config.home.homeDirectory}/.nix-profile/bin/steam-session-greetd
Type=Application
DesktopNames=steam
'';
# Create desktop entry for Niri session
xdg.dataFile."wayland-sessions/niri-session.desktop".text = ''
[Desktop Entry]
Name=Niri Session
Comment=Niri Wayland compositor
Exec=${config.programs.niri.package}/bin/niri-session
Type=Application
DesktopNames=niri
'';
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [