From c3237a9f3b904dd03e92fba701b53d0365c00633 Mon Sep 17 00:00:00 2001 From: elwrcl Date: Thu, 16 Apr 2026 11:12:08 +0300 Subject: [PATCH] add: gamescope steam and fonts --- flake.nix | 17 +++++++++-- machine.nix | 8 +++++- nixos/gaming/steam/default.nix | 49 +++++++++++++++++++++++++++++--- nixos/system/default.nix | 52 +++++++++++++++++++++++++++++++++- nixos/users/default.nix | 3 +- 5 files changed, 119 insertions(+), 10 deletions(-) diff --git a/flake.nix b/flake.nix index fe7adf6..fe38acf 100644 --- a/flake.nix +++ b/flake.nix @@ -26,7 +26,15 @@ }; }; - outputs = inputs@{ self, nixpkgs, chaotic, home-manager, nix-cachyos-kernel, ... }: + outputs = + inputs@{ + self, + nixpkgs, + chaotic, + home-manager, + nix-cachyos-kernel, + ... + }: let system = "x86_64-linux"; @@ -61,7 +69,12 @@ chaotic.nixosModules.default home-manager.nixosModules.home-manager { - nixpkgs.overlays = [ chaoticOverlay cachyosKernelOverlay gtkPortalOverlay ]; + nixpkgs.overlays = [ + chaoticOverlay + cachyosKernelOverlay + copetchOverlay + gtkPortalOverlay + ]; nixpkgs.config.allowUnfree = true; } { diff --git a/machine.nix b/machine.nix index 6e12752..c10d08a 100644 --- a/machine.nix +++ b/machine.nix @@ -1,4 +1,10 @@ -{ config, pkgs, inputs, system, zen-browser, ... }: +{ + pkgs, + inputs, + system, + zen-browser, + ... +}: let packages = import ./packages.nix { inherit pkgs; }; in diff --git a/nixos/gaming/steam/default.nix b/nixos/gaming/steam/default.nix index 578f281..9344256 100644 --- a/nixos/gaming/steam/default.nix +++ b/nixos/gaming/steam/default.nix @@ -1,11 +1,33 @@ -{ pkgs, ... }: +{ + config, + pkgs, + ... +}: { programs.steam = { enable = true; + remotePlay.openFirewall = true; + dedicatedServer.openFirewall = true; + extest.enable = true; + protontricks.enable = true; extraCompatPackages = with pkgs; [ proton-ge-bin ]; + + gamescopeSession = { + enable = true; + env = { + STEAM_ALREADY_GAMESCOPED = "1"; + SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "0"; + WINE_MOUSE_WARP_OVERRIDE = "force"; + }; + args = [ + "--fullscreen" + "--force-grab-cursor" + ]; + }; + package = pkgs.steam.override { extraEnv = { STEAM_USE_PORTAL = "1"; @@ -47,11 +69,30 @@ pkgsi686Linux.libpulseaudio ]; }; - gamescopeSession.enable = true; + }; + + programs.gamescope = { + enable = true; + capSysNice = true; }; programs.bash.enable = true; hardware.graphics.enable = true; - environment.systemPackages = with pkgs; [ - protontricks + hardware.steam-hardware.enable = true; + environment.systemPackages = [ + (pkgs.lib.hiPrio ( + pkgs.writeShellScriptBin "steam" '' + REAL_STEAM="${config.programs.steam.package}/bin/steam" + + if [ -n "$STEAM_ALREADY_GAMESCOPED" ] || [ -n "$GAMESCOPE_WAYLAND_DISPLAY" ]; then + exec "$REAL_STEAM" "$@" + fi + + if [ "$STEAM_USE_GAMESCOPE" = "1" ] && command -v steam-gamescope >/dev/null 2>&1; then + exec steam-gamescope "$@" + fi + + exec "$REAL_STEAM" "$@" + '' + )) ]; } diff --git a/nixos/system/default.nix b/nixos/system/default.nix index bbcb812..a0e552c 100644 --- a/nixos/system/default.nix +++ b/nixos/system/default.nix @@ -1,4 +1,4 @@ -{ ... }: +{ pkgs, ... }: { imports = [ @@ -6,4 +6,54 @@ ./nix ./power.nix ]; + + fonts = { + packages = with pkgs; [ + noto-fonts + noto-fonts-cjk-sans + noto-fonts-cjk-serif + noto-fonts-color-emoji + ipaexfont + nerd-fonts.jetbrains-mono + ]; + + fontconfig = { + enable = true; + antialias = true; + + hinting = { + enable = true; + style = "slight"; + autohint = false; + }; + + subpixel = { + rgba = "rgb"; + lcdfilter = "default"; + }; + + defaultFonts = { + serif = [ + "JetBrainsMono Nerd Font" + "Noto Serif CJK JP" + "Noto Serif" + "IPAexMincho" + ]; + sansSerif = [ + "JetBrainsMono Nerd Font" + "Noto Sans CJK JP" + "Noto Sans" + "IPAexGothic" + ]; + monospace = [ + "JetBrainsMono Nerd Font Mono" + "JetBrainsMono Nerd Font" + "Noto Sans Mono CJK JP" + "Noto Sans CJK JP" + "IPAexGothic" + ]; + emoji = [ "Noto Color Emoji" ]; + }; + }; + }; } diff --git a/nixos/users/default.nix b/nixos/users/default.nix index d4db55a..02db40f 100644 --- a/nixos/users/default.nix +++ b/nixos/users/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { users.users.elars = { @@ -30,5 +30,4 @@ autosuggestions.enable = true; syntaxHighlighting.enable = true; }; - programs.firefox.enable = true; }