62 lines
1.3 KiB
Nix
62 lines
1.3 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
steam-with-pkgs = pkgs.steam.override {
|
|
extraPkgs =
|
|
pkgs: with pkgs; [
|
|
xorg.libXcursor
|
|
xorg.libXi
|
|
xorg.libXinerama
|
|
xorg.libXScrnSaver
|
|
libpng
|
|
libpulseaudio
|
|
libvorbis
|
|
stdenv.cc.cc.lib
|
|
libkrb5
|
|
keyutils
|
|
gamescope
|
|
mangohud
|
|
];
|
|
};
|
|
|
|
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"
|
|
];
|
|
steam = lib.concatStringsSep " " [
|
|
"steam"
|
|
"steam://open/bigpicture"
|
|
];
|
|
in
|
|
pkgs.writeTextDir "share/wayland-sessions/steam-sesson.desktop" # ini
|
|
|
|
''
|
|
[Desktop Entry]
|
|
Name=Steam Session
|
|
Exec=${gamescope} -- ${steam}
|
|
Type=Application
|
|
'';
|
|
in
|
|
{
|
|
home.packages = [
|
|
steam-with-pkgs
|
|
steam-session
|
|
pkgs.gamescope
|
|
pkgs.mangohud
|
|
pkgs.protontricks
|
|
];
|
|
}
|