My NixOS configuration (mirror)
at main 63 lines 1.8 kB view raw
1{ 2 config, 3 inputs, 4 lib, 5 pkgs, 6 ... 7}: { 8 options.modules.programs.niri.enable = lib.mkEnableOption "niri support"; 9 10 config = let 11 stashPkg = inputs.stash.packages.x86_64-linux.stash; 12 in 13 lib.mkIf config.modules.programs.niri.enable { 14 environment.systemPackages = with pkgs; [ 15 swww # needs to be installed at the system level 16 polkit_gnome 17 stashPkg 18 ]; 19 20 systemd.packages = [stashPkg]; 21 22 programs.niri = { 23 enable = true; 24 package = pkgs.niri; 25 }; 26 27 # shoutout @CodedNil on gh for the fix 28 # waiting on https://github.com/YaLTeR/niri/pull/1923 for a real fix 29 services.keyd = { 30 enable = true; 31 keyboards.default = { 32 ids = ["*"]; 33 settings.global = { 34 overload_tap_timeout = 200; #ms 35 }; 36 settings.main = { 37 compose = "layer(meta)"; 38 leftmeta = "overload(meta, macro(leftmeta+z))"; 39 }; 40 }; 41 }; 42 43 # turns out i've been using this the whole time! 44 # i believe niri uses this automatically, but it doesn't hurt to set it 45 services.gnome.gnome-keyring.enable = true; 46 47 systemd = { 48 user.services.polkit-gnome-authentication-agent-1 = { 49 description = "polkit-gnome-authentication-agent-1"; 50 wantedBy = ["graphical-session.target"]; 51 wants = ["graphical-session.target"]; 52 after = ["graphical-session.target"]; 53 serviceConfig = { 54 Type = "simple"; 55 ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; 56 Restart = "on-failure"; 57 RestartSec = 1; 58 TimeoutStopSec = 10; 59 }; 60 }; 61 }; 62 }; 63}