diff --git a/dots/hyprland.nix b/dots/hyprland.nix index 74ee63b..1cc8ff1 100755 --- a/dots/hyprland.nix +++ b/dots/hyprland.nix @@ -33,7 +33,8 @@ in (lib.mkIf (systemName == "laptop") [ "eDP-1,1920x1080@59.99700,0x0,1" ]) (lib.mkIf (systemName == "pc") [ "HDMI-A-2,1920x1080@60,0x0,1" - "DP-1,2560x1440@144,1920x0,1" + "DP-1,2560x1440@144,1920x0,1,bitdepth,10,cm,hdr" + #"HDMI-A-1,3840x2160@60,4480x0,1,bitdepth,10,cm,hdr" ]) ]; # Autostart necessary processes (like notifications daemons, status bars, etc.) diff --git a/system/nixOSPkgs.nix b/system/nixOSPkgs.nix index 6ca7ad1..032bf2d 100755 --- a/system/nixOSPkgs.nix +++ b/system/nixOSPkgs.nix @@ -205,5 +205,10 @@ in kdePackages.kwallet kdePackages.kwalletmanager kdePackages.kwallet-pam # For PAM integration if needed + # + (pkgs.writeShellScriptBin "steam-run-url" '' + FIFO="/run/user/$(id --user)/steam-run-url.fifo" + echo "$1" > "$FIFO" + '') ]; } diff --git a/system/services.nix b/system/services.nix index 68d998b..8e9759b 100755 --- a/system/services.nix +++ b/system/services.nix @@ -87,24 +87,62 @@ enable = true; package = pkgs.emacs-pgtk; # replace with emacs-gtk, or a version provided by the community overlay if desired. }; + + systemd.user.services.steam-run-url-service = { + description = "Service to launch Steam URLs via FIFO"; + wantedBy = [ "default.target" ]; + serviceConfig = { + ExecStart = let + script = pkgs.writeShellScript "steam-run-url-service.sh" '' + #!/usr/bin/env bash + FIFO="/run/user/$(id --user)/steam-run-url.fifo" + if [ ! -p "$FIFO" ]; then + mkfifo "$FIFO" + fi + while true; do + if read line <"$FIFO"; then + steam_env=(); + if [ "$XDG_SESSION_DESKTOP" = "sway" ] || [ "$XDG_SESSION_DESKTOP" = "Hyprland" ] || [ "$DESKTOP_SESSION" = "sway" ] || [ "$DESKTOP_SESSION" = "Hyprland" ]; then + steam_env+=("QT_QPA_PLATFORM=wayland"); + fi + steam "$line" + fi + done + ''; + in "${script}"; + Restart = "always"; + }; + path = [ pkgs.steam ]; + }; + + services.sunshine = lib.mkIf (systemName == "pc") { enable = true; settings = { sunshine_name = "nixos"; port = 47989; - output_name = 1; + output_name = 0; }; applications = { apps = [ { name = "Steam"; + env = { + PATH = "$(PATH):/run/current-system/sw/bin"; + }; output = "steam.txt"; - detached = [ "${pkgs.util-linux}/bin/setsid ${pkgs.steam}/bin/steam steam://open/gamepadui" ]; + detached = [ "setsid /run/current-system/sw/bin/steam steam://open/bigpicture" ]; + prep-cmd = [ + { + "do" = ""; + "undo" = "setsid /run/current-system/sw/bin/steam steam://close/bigpicture"; + } + ]; image-path = "steam.png"; } ]; }; - capSysAdmin = true; + capSysAdmin = false; openFirewall = true; };