diff --git a/home/linux/gui/base/games.nix b/home/linux/gui/base/games.nix deleted file mode 100644 index b9a17377..00000000 --- a/home/linux/gui/base/games.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - pkgs, - nix-gaming, - ... -}: -{ - home.packages = with pkgs; [ - # nix-gaming.packages.${pkgs.system}.osu-laser-bin - gamescope # SteamOS session compositing window manager - prismlauncher # A free, open source launcher for Minecraft - winetricks # A script to install DLLs needed to work around problems in Wine - ]; -} diff --git a/hosts/idols-ai/default.nix b/hosts/idols-ai/default.nix index 2b593eb6..2d296efa 100644 --- a/hosts/idols-ai/default.nix +++ b/hosts/idols-ai/default.nix @@ -19,7 +19,7 @@ in ./hardware-configuration.nix ./nvidia.nix ./ai - ./game + ./gaming.nix ./preservation.nix ./secureboot.nix diff --git a/hosts/idols-ai/game/default.nix b/hosts/idols-ai/game/default.nix deleted file mode 100644 index 049dda93..00000000 --- a/hosts/idols-ai/game/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ mylib, ... }: -{ - imports = mylib.scanPaths ./.; -} diff --git a/hosts/idols-ai/game/gamemode.nix b/hosts/idols-ai/game/gamemode.nix deleted file mode 100644 index 8beab1ee..00000000 --- a/hosts/idols-ai/game/gamemode.nix +++ /dev/null @@ -1,62 +0,0 @@ -# https://github.com/fufexan/dotfiles/blob/483680e121b73db8ed24173ac9adbcc718cbbc6e/system/programs/gamemode.nix -{ - config, - pkgs, - nix-gaming, - lib, - ... -}: -let - programs = lib.makeBinPath [ - config.programs.hyprland.package - pkgs.coreutils - pkgs.power-profiles-daemon - ]; - - startscript = pkgs.writeShellScript "gamemode-start" '' - export PATH=$PATH:${programs} - export HYPRLAND_INSTANCE_SIGNATURE=$(ls -1 /tmp/hypr | tail -1) - hyprctl --batch 'keyword decoration:blur 0 ; keyword animations:enabled 0 ; keyword misc:vfr 0' - powerprofilesctl set performance - ''; - - endscript = pkgs.writeShellScript "gamemode-end" '' - export PATH=$PATH:${programs} - export HYPRLAND_INSTANCE_SIGNATURE=$(ls -1 /tmp/hypr | tail -1) - hyprctl --batch 'keyword decoration:blur 1 ; keyword animations:enabled 1 ; keyword misc:vfr 1' - powerprofilesctl set power-saver - ''; -in -{ - # Optimise Linux system performance on demand - # https://github.com/FeralInteractive/GameMode - # https://wiki.archlinux.org/title/Gamemode - # - # Usage: - # 1. For games/launchers which integrate GameMode support: - # https://github.com/FeralInteractive/GameMode#apps-with-gamemode-integration - # simply running the game will automatically activate GameMode. - # 2. For others, launching the game through gamemoderun: `gamemoderun ./game` - # 3. For steam: `gamemoderun steam-runtime` - programs.gamemode = { - enable = pkgs.stdenv.isx86_64; - settings = { - general = { - softrealtime = "auto"; - renice = 15; - }; - custom = { - start = startscript.outPath; - end = endscript.outPath; - }; - }; - }; - - # see https://github.com/fufexan/nix-gaming/#pipewire-low-latency - services.pipewire.lowLatency.enable = true; - programs.steam.platformOptimizations.enable = true; - imports = with nix-gaming.nixosModules; [ - pipewireLowLatency - platformOptimizations - ]; -} diff --git a/hosts/idols-ai/game/steam.nix b/hosts/idols-ai/game/steam.nix deleted file mode 100644 index a247ab36..00000000 --- a/hosts/idols-ai/game/steam.nix +++ /dev/null @@ -1,58 +0,0 @@ -# https://github.com/fufexan/dotfiles/blob/483680e/system/programs/steam.nix -{ pkgs, ... }: -{ - # https://wiki.archlinux.org/title/steam - # Games installed by Steam works fine on NixOS, no other configuration needed. - programs.steam = { - # Some location that should be persistent: - # ~/.local/share/Steam - The default Steam install location - # ~/.local/share/Steam/steamapps/common - The default Game install location - # ~/.steam/root - A symlink to ~/.local/share/Steam - # ~/.steam - Some Symlinks & user info - enable = pkgs.stdenv.isx86_64; - # https://github.com/ValveSoftware/gamescope - # enables features such as resolution upscaling and stretched aspect ratios (such as 4:3) - gamescopeSession.enable = true; - - # fix gamescope inside steam - package = pkgs.steam.override { - extraPkgs = - pkgs: with pkgs; [ - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver - libpng - libpulseaudio - libvorbis - stdenv.cc.cc.lib - libkrb5 - keyutils - - # fix CJK fonts - source-sans - source-serif - source-han-sans - source-han-serif - - # audio - pipewire - - # other common - udev - alsa-lib - vulkan-loader - xorg.libX11 - xorg.libXcursor - xorg.libXi - xorg.libXrandr # To use the x11 feature - libxkbcommon - wayland # To use the wayland feature - ]; - }; - }; - - fonts.packages = with pkgs; [ - wqy_zenhei # Need by steam for Chinese - ]; -} diff --git a/hosts/idols-ai/gaming.nix b/hosts/idols-ai/gaming.nix new file mode 100644 index 00000000..97945c30 --- /dev/null +++ b/hosts/idols-ai/gaming.nix @@ -0,0 +1,58 @@ +{ pkgs, nix-gaming, ... }: +{ + # https://wiki.archlinux.org/title/steam + # Games installed by Steam works fine on NixOS, no other configuration needed. + programs.steam = { + # Some location that should be persistent: + # ~/.local/share/Steam - The default Steam install location + # ~/.local/share/Steam/steamapps/common - The default Game install location + # ~/.steam/root - A symlink to ~/.local/share/Steam + # ~/.steam - Some Symlinks & user info + enable = pkgs.stdenv.isx86_64; + # https://github.com/ValveSoftware/gamescope + # Run a GameScope driven Steam session from your display-manager + # fix resolution upscaling and stretched aspect ratios + gamescopeSession.enable = true; + # https://github.com/Winetricks/winetricks + # Whether to enable protontricks, a simple wrapper for running Winetricks commands for Proton-enabled games. + protontricks.enable = true; + # Whether to enable Load the extest library into Steam, to translate X11 input events to uinput events (e.g. for using Steam Input on Wayland) . + extest.enable = true; + fontPackages = [ + pkgs.wqy_zenhei # Need by steam for Chinese + ]; + }; + + # see https://github.com/fufexan/nix-gaming/#pipewire-low-latency + services.pipewire.lowLatency.enable = true; + programs.steam.platformOptimizations.enable = true; + imports = with nix-gaming.nixosModules; [ + pipewireLowLatency + platformOptimizations + ]; + + # ========================================================================== + # Other Optimizations + # Usage: + # Lutris - enable advanced options, go to the System options -> Command prefix, add: `mangohud` + # Steam - add this as a launch option: `mangohud %command%` / `gamemoderun %command%` + # ========================================================================== + + environment.systemPackages = with pkgs; [ + # https://github.com/flightlessmango/MangoHud + # a simple overlay program for monitoring FPS, temperature, CPU and GPU load, and more. + mangohud + # a GUI game launcher for Steam/GoG/Epic + lutris + ]; + + # Optimise Linux system performance on demand + # https://github.com/FeralInteractive/GameMode + # https://wiki.archlinux.org/title/Gamemode + # + # Usage: + # 1. For games/launchers which integrate GameMode support: + # https://github.com/FeralInteractive/GameMode#apps-with-gamemode-integration + # simply running the game will automatically activate GameMode. + programs.gamemode.enable = pkgs.stdenv.isx86_64; +}