yarn: add session for steam

This commit is contained in:
Simon Gardling 2025-11-16 23:24:41 -05:00
parent 6d3736c6db
commit 916adf37ee
Signed by: titaniumtown
GPG Key ID: 9AB28AC10ECE533D
3 changed files with 35 additions and 21 deletions

View File

@ -49,13 +49,44 @@
enable = true;
settings = {
default_session = {
command = "${lib.getExe pkgs.tuigreet} --sessions --time";
command = "${lib.getExe pkgs.tuigreet} --sessions /etc/xdg/wayland-sessions/ --time";
user = username;
};
terminal.vt = lib.mkForce 2;
};
};
# Create steam session script
environment.etc."steam-session-greetd".source = pkgs.writeShellScript "steam-session-greetd" ''
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
export MANGOHUD=1
exec ${pkgs.gamescope}/bin/gamescope --adaptive-sync --hdr-enabled --mangoapp --rt --steam -- ${pkgs.steam}/bin/steam -pipewire-dmabuf -tenfoot
'';
# Create system-wide session files
environment.etc."xdg/wayland-sessions/steam-session.desktop".text = ''
[Desktop Entry]
Name=Steam Session
Comment=Steam Deck-like gaming session with gamescope
Exec=/etc/steam-session-greetd
Type=Application
DesktopNames=steam
'';
environment.etc."xdg/wayland-sessions/niri-session.desktop".text = ''
[Desktop Entry]
Name=Niri Session
Comment=Niri Wayland compositor
Exec=${pkgs.niri}/bin/niri-session
Type=Application
DesktopNames=niri
'';
system.activationScripts = {
# FIX: https://github.com/NixOS/nix/issues/2982
"profile-channel-dummy".text = ''

View File

@ -21,5 +21,8 @@
environment.systemPackages = with pkgs; [
steamtinkerlaunch
mangohud
goverlay
yad
];
}

View File

@ -71,26 +71,6 @@
'')
];
# 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; [