From 914b02bac231f59bcca77f12ca490c23e129bbaf Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:34:42 +0100 Subject: [PATCH 1/9] feat(skadi): install scx. --- hosts/skadi/configuration.nix | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hosts/skadi/configuration.nix b/hosts/skadi/configuration.nix index 992c4e1..fb69942 100644 --- a/hosts/skadi/configuration.nix +++ b/hosts/skadi/configuration.nix @@ -23,11 +23,11 @@ # Use the xanmod kernel boot.kernelPackages = pkgs.linuxPackages_cachyos-lto; - # services.scx = { - # enable = true; - # scheduler = "scx_lavd"; - # extraArgs = ["--performance" "--no-core-compaction"]; - # }; + services.scx = { + enable = true; + scheduler = "scx_lavd"; + extraArgs = ["--performance" "--no-core-compaction"]; + }; # Get nicer hostname networking.hostName = "skadi"; # Define your hostname. From 342c29d8fb93c718cb82aab20c46e662a10ee47a Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:34:53 +0100 Subject: [PATCH 2/9] feat(skadi): setup low latency audio --- hosts/skadi/configuration.nix | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/hosts/skadi/configuration.nix b/hosts/skadi/configuration.nix index fb69942..c61f95e 100644 --- a/hosts/skadi/configuration.nix +++ b/hosts/skadi/configuration.nix @@ -140,6 +140,40 @@ enable = true; support32Bit = true; }; + extraConfig = { + pipewire."99-silent.bell.conf" = { + "context.properties" = { + "modules.x11.bell" = false; + }; + }; + pipewire."92-low-latency" = { + "context.properties" = { + "default.clock.rate" = 48000; + "default.clock.quantum" = 64; + "default.clock.min-quantum" = 64; + "default.clock.max-quantum" = 64; + }; + }; + pipewire-pulse."92-low-latency" = { + "context.properties" = [ + { + name = "libpipewire-module-protocol-pulse"; + args = {}; + } + ]; + "pulse.properties" = { + "pulse.min.req" = "64/48000"; + "pulse.default.req" = "64/48000"; + "pulse.max.req" = "64/48000"; + "pulse.min.quantum" = "64/48000"; + "pulse.max.quantum" = "64/48000"; + }; + "stream.properties" = { + "node.latency" = "64/48000"; + "resample.quality" = 1; + }; + }; + }; }; # Fix not saving my state From 2f32de8fdf05401cac92885369f8ab3ce905bdbe Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:35:02 +0100 Subject: [PATCH 3/9] feat(skadi): remove niri. --- hosts/skadi/configuration.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/hosts/skadi/configuration.nix b/hosts/skadi/configuration.nix index c61f95e..1e07b3e 100644 --- a/hosts/skadi/configuration.nix +++ b/hosts/skadi/configuration.nix @@ -179,8 +179,6 @@ # Fix not saving my state hardware.alsa.enablePersistence = true; - programs.niri.enable = true; - # Enable appimages programs.appimage = { enable = true; @@ -293,7 +291,6 @@ lm_sensors libva-utils alsa-utils - xwayland-satellite ]; # Enable nixd to see nixpkgs path From 5ab4635c92de282521a13e95faef1790c74e29b7 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:35:15 +0100 Subject: [PATCH 4/9] feat(skadi): remove easy effects. --- hosts/skadi/home.nix | 3 --- 1 file changed, 3 deletions(-) diff --git a/hosts/skadi/home.nix b/hosts/skadi/home.nix index 61e4bf3..c3fabaa 100644 --- a/hosts/skadi/home.nix +++ b/hosts/skadi/home.nix @@ -27,9 +27,6 @@ # Let Home Manager install and manage itself. programs.home-manager.enable = true; - # Easyeffects - services.easyeffects.enable = true; - # Fix missing icons gtk = { enable = true; From 836243bfab1cc63fed1d9435334e3e83e72a16af Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:35:32 +0100 Subject: [PATCH 5/9] feat(hyprland): better vrr and tearing settings. --- modules/linux/home-manager/hyprland.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/modules/linux/home-manager/hyprland.nix b/modules/linux/home-manager/hyprland.nix index 0bc3dca..d101efd 100644 --- a/modules/linux/home-manager/hyprland.nix +++ b/modules/linux/home-manager/hyprland.nix @@ -155,7 +155,7 @@ in { cursor = { # Breaks mouse in fullscreen - # no_break_fs_vrr = 1; + no_break_fs_vrr = 1; no_hardware_cursors = 1; # use_cpu_buffer = 0; }; @@ -202,7 +202,7 @@ in { }; misc = { - vrr = 2; + vrr = 3; }; input = { @@ -330,6 +330,15 @@ in { "idle_inhibit fullscreen, match:class ^(*)$" "idle_inhibit fullscreen, match:title ^(*)$" "idle_inhibit fullscreen, match:fullscreen 1" + + # Set game type for gamescope windows + "match:class ^(gamescope)$, content game" + + # Set game type for steam_app games + "match:class ^(steam_app_.*), content game" + + # Enable tearing for games + "immediate yes, match:content 3" ]; }; }; From ee127e9bd9b6567595c7e6b2c74f2ebf980198f1 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:35:49 +0100 Subject: [PATCH 6/9] feat(pipewire): setup rnnoise plugin. --- modules/linux/home-manager/pipewire.nix | 47 +++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/modules/linux/home-manager/pipewire.nix b/modules/linux/home-manager/pipewire.nix index b8a7176..a846efd 100644 --- a/modules/linux/home-manager/pipewire.nix +++ b/modules/linux/home-manager/pipewire.nix @@ -1,15 +1,56 @@ { config, + pkgs, lib, ... -}: { +}: let + inherit (pkgs) rnnoise-plugin; +in { options = { crony.pipewire.enable = lib.mkEnableOption "Setup some config files for my pipewire/wireplumber setup."; }; config = lib.mkIf config.crony.pipewire.enable { - home.file = { - ".config/pipewire" = {source = ./configs/pipewire;}; + xdg.configFile."pipewire/pipewire.conf.d/99-rnnoise.conf" = { + text = builtins.toJSON { + "context.modules" = [ + { + name = "libpipewire-module-filter-chain"; + args = { + "node.description" = "Noise Canceling source"; + "media.name" = "Noise Canceling source"; + + "filter.graph" = { + nodes = [ + { + type = "ladspa"; + name = "rnnoise"; + plugin = "${rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so"; + label = "noise_suppressor_mono"; + control = { + "VAD Threshold (%)" = 80.0; + "VAD Grace Period (ms)" = 200; + "Retroactive VAD Grace (ms)" = 0; + }; + } + ]; + }; + + "capture.props" = { + "node.name" = "capture.rnnoise_source"; + "node.passive" = true; + "audio.rate" = 48000; + }; + + "playback.props" = { + "node.name" = "rnnoise_source"; + "media.class" = "Audio/Source"; + "audio.rate" = 48000; + }; + }; + } + ]; + }; }; }; } From d6c675d63e6aba5d47ee81e2cf315699707354d0 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:36:08 +0100 Subject: [PATCH 7/9] feat(gamescope): disable capsys. --- modules/linux/nixos/gaming.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/linux/nixos/gaming.nix b/modules/linux/nixos/gaming.nix index b06bfb5..d2829c2 100644 --- a/modules/linux/nixos/gaming.nix +++ b/modules/linux/nixos/gaming.nix @@ -19,7 +19,7 @@ # Enable gamescope programs.gamescope = { enable = true; - capSysNice = true; + # capSysNice = true; package = pkgs.gamescope_git; }; # Install gamemode From 44942e2ef7bc8884988d006f50985a813b6a4587 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:36:26 +0100 Subject: [PATCH 8/9] feat(gamemode): disable pinning cores, crashes some games. --- modules/linux/nixos/gaming.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/linux/nixos/gaming.nix b/modules/linux/nixos/gaming.nix index d2829c2..252cf6e 100644 --- a/modules/linux/nixos/gaming.nix +++ b/modules/linux/nixos/gaming.nix @@ -31,6 +31,9 @@ softrealtime = "auto"; renice = 10; }; + cpu = { + pin_cores = "no"; + }; custom = { start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'"; end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'"; From e1eb7acbd83e1e4a2f77c411cd631c134b10dced Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Tue, 25 Nov 2025 11:36:35 +0100 Subject: [PATCH 9/9] chore: update flake.lock --- flake.lock | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/flake.lock b/flake.lock index e8b802b..f27b283 100644 --- a/flake.lock +++ b/flake.lock @@ -263,11 +263,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1763802616, - "narHash": "sha256-NAM5+fVkVZVG9jKJIASrim7vWnvTBuiQE6jNGrBZ/+o=", + "lastModified": 1763889031, + "narHash": "sha256-bwPx3lhUTzpZ4q1REJiXpBlnPZPh4/vUkvvE0Pe0H0Y=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "11685793fdec8620af31ededc13d4fbb9880b3cf", + "rev": "16c77c439f89eacc4d665741114b763513869ef1", "type": "github" }, "original": { @@ -781,11 +781,11 @@ ] }, "locked": { - "lastModified": 1763748372, - "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=", + "lastModified": 1763869804, + "narHash": "sha256-2lw+MnkrnygEyUl+3qZjnlCCJF/kJ57GUtYkAQPfLDA=", "owner": "nix-community", "repo": "home-manager", - "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1", + "rev": "04c27d743d069cad58f9707ee8e165c471b1c7cd", "type": "github" }, "original": { @@ -1314,11 +1314,11 @@ ] }, "locked": { - "lastModified": 1763769887, - "narHash": "sha256-Viyww4Atra7fD4IuhUwFGBtkyIgzuG3lLXu9gdGdEaU=", + "lastModified": 1763856300, + "narHash": "sha256-OXe/ZZqYoDmjqy19fuJzE9oR6XQH8IEGYjkDGGdQB5M=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "34efe16d64996dca36f9bae9fb954a867f9d2680", + "rev": "3e067256eaa258df675cafaed2bcef55b41ecb60", "type": "github" }, "original": { @@ -1330,11 +1330,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1763766790, - "narHash": "sha256-GLflfd2+d4KEwvwapZGvjVuYUFAsbpDxEkgmOni89JM=", + "lastModified": 1763846764, + "narHash": "sha256-MTdbS6zBlxLJCMtPU394xUHk+wnK8aqVj4egblAiGGo=", "owner": "neovim", "repo": "neovim", - "rev": "1c12073db6c64eb365748f153f96be9b0fe61070", + "rev": "4bbdffe8298e8bf6e0590684092a25f5effc0f14", "type": "github" }, "original": { @@ -1412,11 +1412,11 @@ ] }, "locked": { - "lastModified": 1763265660, - "narHash": "sha256-Ad9Rd3ZAidrH01xP73S3CjPiyXo7ywZs3uCESjPwUdc=", + "lastModified": 1763870992, + "narHash": "sha256-NPyc76Wxmv/vAsXJ8F+/8fXECHYcv2YGSqdiSHp/F/A=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "469ef53571ea80890c9497952787920c79c1ee6e", + "rev": "d7423982c7a26586aa237d130b14c8b302c7a367", "type": "github" }, "original": { @@ -1551,11 +1551,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1763421233, - "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=", + "lastModified": 1763678758, + "narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=", "owner": "nixos", "repo": "nixpkgs", - "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648", + "rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b", "type": "github" }, "original": { @@ -1832,11 +1832,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1763767967, - "narHash": "sha256-BMiqCHUxp2zoAjWCpvj5Scf0J+yTiXpkBlFuRo2nFIg=", + "lastModified": 1763845141, + "narHash": "sha256-o8TKdZluj/yC8qPIVNe2g4qopyFmQglH52+lvQx82kE=", "owner": "danth", "repo": "stylix", - "rev": "cd11c057b054609b8463c20e6065de424b30b89d", + "rev": "adc650610085adbe130b9860d5bdb869f96050af", "type": "github" }, "original": { @@ -2183,11 +2183,11 @@ ] }, "locked": { - "lastModified": 1763780714, - "narHash": "sha256-n2T7r5HkxofkT3mIbb2bNkzacBdhP/bVeph/yGNnBek=", + "lastModified": 1763875162, + "narHash": "sha256-D47ODwc9dzggJkEpnXWVT7//OscV95oRgDYPZKLZBy8=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "ef951ed2d976bcd1f57a09f358fdda9fa9425018", + "rev": "485ae582204e904b59cb8f8f6492ae8c6991f8c5", "type": "github" }, "original": {