diff --git a/home/programs/group/gaming-apps.nix b/home/programs/group/gaming-apps.nix new file mode 100644 index 0000000..0f13a00 --- /dev/null +++ b/home/programs/group/gaming-apps.nix @@ -0,0 +1,45 @@ +{ + pkgs, + pkgs-stable, + ... +}: { + home.packages = (with pkgs-stable; [ + + # ───────────────────────────────────────────────────────────── + # Game launchers + # ───────────────────────────────────────────────────────────── + + lutris # Universal launcher for Wine, emulators, and native games + #prismlauncher # Minecraft launcher with Fabric/Forge/Quilt support + + # ───────────────────────────────────────────────────────────── + # Performance & overlays + # ───────────────────────────────────────────────────────────── + + mangohud # FPS and hardware monitoring overlay + goverlay # GUI for MangoHud and vkBasalt + gamescope # Micro-compositor for better fullscreen, scaling and frame limiting + gamemode # Requests performance optimizations while gaming + + # ───────────────────────────────────────────────────────────── + # Proton & Wine + # ───────────────────────────────────────────────────────────── + + protonup-qt # Install and update GE-Proton, Wine-GE, Luxtorpeda, etc. + winetricks # Install Windows runtimes into Wine prefixes + protontricks # Winetricks for Steam Proton prefixes + + # ───────────────────────────────────────────────────────────── + # Vulkan layers + # ───────────────────────────────────────────────────────────── + + vkbasalt # Vulkan post-processing (CAS sharpening, FXAA, etc.) + ]) + + ++ (with pkgs; [ + wineWow64Packages.staging # Wine (32/64-bit) with staging patches + + steam-run # Run generic Linux binaries inside Steam's runtime + appimage-run # Execute AppImages on NixOS + ]); +} diff --git a/home/programs/steam/default.nix b/home/programs/steam/default.nix index 06fe77b..8ec58d3 100644 --- a/home/programs/steam/default.nix +++ b/home/programs/steam/default.nix @@ -1,27 +1,8 @@ { - pkgs, ... }: { - home.packages = with pkgs; [ - steam - protonup-ng - ]; - - xdg.desktopEntries = { - Steam = { - name = "Steam"; - exec = "${pkgs.steam}/bin/steam"; - icon = "steam"; - type = "Application"; - categories = [ - "Game" - "Network" - ]; - terminal = false; - }; - }; - home.sessionVariables = { + # Better Steam scaling on HiDPI displays STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; }; } diff --git a/home/programs/steam/system.nix b/home/programs/steam/system.nix index 6e0ab4a..e2da8b8 100644 --- a/home/programs/steam/system.nix +++ b/home/programs/steam/system.nix @@ -1,13 +1,27 @@ -{ ... }: { - # Steam runtime tweaks (user-session level, not NixOS system config) +{ + pkgs, + ... +}: { - home.sessionVariables = { - # Improves scaling consistency on HiDPI / Wayland setups - STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; - - # Optional Proton-related behavior toggles (safe defaults) - PROTON_ENABLE_NVAPI = "1"; - PROTON_NO_ESYNC = "0"; - PROTON_NO_FSYNC = "0"; + hardware.graphics = { + enable = true; + enable32Bit = true; }; + + programs.steam = { + enable = true; + gamescopeSession.enable = true; + + remotePlay.openFirewall = true; + localNetworkGameTransfers.openFirewall = true; + + extraCompatPackages = with pkgs; [ + proton-ge-bin + ]; + }; + + programs.gamescope.enable = true; + programs.gamemode.enable = true; + + hardware.steam-hardware.enable = true; } diff --git a/hosts/home-pc/home.nix b/hosts/home-pc/home.nix index 0f68e87..8a7e836 100644 --- a/hosts/home-pc/home.nix +++ b/hosts/home-pc/home.nix @@ -17,6 +17,7 @@ ../../home/programs/group/basic-apps.nix ../../home/programs/group/dev.nix ../../home/programs/group/misc.nix + ../../home/programs/group/gaming-apps.nix # System (Desktop environment like stuff) ../../home/system/hyprland