added gaming scopes
This commit is contained in:
+13
-5
@@ -1,8 +1,16 @@
|
|||||||
{myConfig, ...}: {
|
{
|
||||||
imports = [
|
myConfig,
|
||||||
../modules/terminal.nix
|
lib,
|
||||||
../modules/desktop.nix
|
...
|
||||||
];
|
}: {
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
../modules/terminal.nix
|
||||||
|
../modules/desktop.nix
|
||||||
|
]
|
||||||
|
++ lib.optionals (myConfig.linux.gaming == true) [
|
||||||
|
../modules/gaming.nix
|
||||||
|
];
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
# In your ~/.config/home-manager/home.nix (or a file imported by it)
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
# Home Manager modules usually get config and pkgs as arguments
|
||||||
|
let
|
||||||
|
# Define the custom Steam launcher script within Home Manager's scope.
|
||||||
|
# pkgs here refers to the pkgs available to your Home Manager environment.
|
||||||
|
steamGamescopeWrapper = pkgs.writeScriptBin "steam-gamescope-launcher" ''
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -xeuo pipefail
|
||||||
|
|
||||||
|
gamescopeArgs=(
|
||||||
|
--adaptive-sync
|
||||||
|
--hdr-enabled
|
||||||
|
--mangoapp
|
||||||
|
--rt
|
||||||
|
--steam
|
||||||
|
)
|
||||||
|
steamArgs=(
|
||||||
|
-pipewire-dmabuf
|
||||||
|
-tenfoot
|
||||||
|
)
|
||||||
|
mangoConfig=(
|
||||||
|
cpu_temp
|
||||||
|
gpu_temp
|
||||||
|
ram
|
||||||
|
vram
|
||||||
|
)
|
||||||
|
mangoVars=(
|
||||||
|
MANGOHUD=1
|
||||||
|
MANGOHUD_CONFIG="$(IFS=,; echo "$${mangoConfig[*]}")"
|
||||||
|
)
|
||||||
|
|
||||||
|
export PATH="${pkgs.gamescope}/bin:${pkgs.mangohud}/bin:$PATH"
|
||||||
|
|
||||||
|
export "$${mangoVars[@]}"
|
||||||
|
exec ${pkgs.gamescope}/bin/gamescope "$${gamescopeArgs[@]}" -- ${pkgs.steam}/bin/steam "$${steamArgs[@]}"
|
||||||
|
'';
|
||||||
|
in {
|
||||||
|
# You don't need 'programs.xdg.enable = true;' explicitly here in Home Manager;
|
||||||
|
# xdg.desktopEntries will be available directly once Home Manager is active.
|
||||||
|
|
||||||
|
# Home Manager usually manages user-level packages under `home.packages`.
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
protonup-qt
|
||||||
|
mangohud
|
||||||
|
goverlay
|
||||||
|
steamGamescopeWrapper # Add your wrapper script to your user's PATH
|
||||||
|
];
|
||||||
|
|
||||||
|
# Define the desktop entry within Home Manager's xdg.desktopEntries
|
||||||
|
xdg.desktopEntries.steam = {
|
||||||
|
name = "Steam (Gamescope)";
|
||||||
|
comment = "Launch Steam via Gamescope with MangoHud";
|
||||||
|
exec = "${steamGamescopeWrapper}";
|
||||||
|
icon = "steam";
|
||||||
|
terminal = false;
|
||||||
|
type = "Application";
|
||||||
|
categories = ["Game" "Application"];
|
||||||
|
startupNotify = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# If you previously had services.getty.autologinUser, that remains in configuration.nix.
|
||||||
|
# Likewise for hardware.xone.enable and boot.kernelPackages.
|
||||||
|
|
||||||
|
# Note: programs.steam.enable, programs.gamescope.enable, hardware.xone.enable
|
||||||
|
# usually remain in configuration.nix (system-wide), as they install the programs
|
||||||
|
# and drivers for the whole system.
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user