CrOS/home/drag/common/optional/gaming/default.nix
TheWanderingCrow 7808e5b739 rename
2025-08-25 15:30:30 -04:00

43 lines
1 KiB
Nix

# This module just provides a customized .desktop file with gamescope args dynamically created based on the
# host's monitors configuration
{
pkgs,
config,
lib,
...
}: let
monitor = lib.head (lib.filter (m: m.primary) config.monitors);
steam-session = let
gamescope = lib.concatStringsSep " " [
(lib.getExe pkgs.gamescope)
"--output-width ${toString monitor.width}"
"--output-height ${toString monitor.height}"
"--framerate-limit ${toString monitor.refreshRate}"
"--prefer-output ${monitor.name}"
"--adaptive-sync"
"--expose-wayland"
"--steam"
"--hdr-enabled"
];
steam = lib.concatStringsSep " " [
"steam"
#"steam://open/bigpicture"
];
in
pkgs.writeTextDir "share/applications/steam-session.desktop" ''
[Desktop Entry]
Name=Steam Session
Exec=${gamescope} -- ${steam}
Icon=steam
Type=Application
'';
in {
home.packages = [
steam-session
#pkgs.vintagestory
pkgs.mudlet
pkgs.r2modman
pkgs.prismlauncher
];
}