(T)im's N(ix) Flake, Multi-Host Configurations for all of my machines! 74k1.sh/
nixos nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(niri): add blur

74k1 59bfa3ef d811466d

+68 -15
+2 -1
flake.nix
··· 125 125 inputs.nixpkgs.follows = "nixpkgs"; 126 126 }; 127 127 niri = { 128 - url = "github:sodiboo/niri-flake"; 128 + # url = "github:sodiboo/niri-flake"; 129 + url = "github:sodiboo/niri-flake/very-refactor"; 129 130 inputs.nixpkgs.follows = "nixpkgs"; 130 131 }; 131 132 stylix = {
+15
modules/home-manager/wayland/niri/blur.kdl
··· 1 + layer-rule { 2 + match namespace="^waybar$" 3 + background-effect { 4 + blur true 5 + xray false 6 + } 7 + } 8 + 9 + window-rule { 10 + // match app-id="^ghostty$" 11 + background-effect { 12 + blur true 13 + xray false 14 + } 15 + }
+51 -14
modules/home-manager/wayland/niri/default.nix
··· 48 48 in 49 49 { 50 50 enable = true; 51 - package = pkgs.niri; 51 + # package = pkgs.niri; 52 + package = inputs.niri.packages.${pkgs.stdenv.hostPlatform.system}.niri-unstable.overrideAttrs (oldAttrs: let 53 + src = pkgs.fetchFromGitHub { 54 + owner = "niri-wm"; 55 + repo = "niri"; 56 + rev = "4a7e443b6c816e4f673f6e25cc0a5aa37697d667"; 57 + hash = "sha256-ZiGGjRL2H67GcL6BvZV99khW++aHpJ2NA4n71qZiJ9A="; 58 + }; 59 + in { 60 + inherit src; 61 + cargoDeps = pkgs.rustPlatform.fetchCargoVendor { 62 + inherit src; 63 + hash = "sha256-Fv3uClwuuAAGTQ7ujuAQW7xCoYFCw4q9QC08Z7Q7Hdk="; 64 + }; 65 + }); 52 66 # config = /* kdl */ { 53 67 # }; 54 68 settings = { 69 + includes = lib.mkAfter [ 70 + (./blur.kdl) 71 + ]; 55 72 environment = { 56 73 # CLUTTER_BACKEND = "wayland"; 57 74 DISPLAY = ":0"; ··· 79 96 # Multimedia 80 97 "XF86AudioPlay".action = spawn "${pkgs.playerctl}/bin/playerctl" "play-pause"; 81 98 "XF86AudioPause".action = spawn "${pkgs.playerctl}/bin/playerctl" "play-pause"; 82 - "XF86AudioNext".action = spawn "${pkgs.tix.duvolbr}/bin/duvolbr" "next_track"; 83 - "XF86AudioPrev".action = spawn "${pkgs.tix.duvolbr}/bin/duvolbr" "prev_track"; 99 + # "XF86AudioNext".action = spawn "${pkgs.tix.duvolbr}/bin/duvolbr" "next_track"; 100 + # "XF86AudioPrev".action = spawn "${pkgs.tix.duvolbr}/bin/duvolbr" "prev_track"; 101 + "XF86AudioNext".action = spawn "${pkgs.playerctl}/bin/playerctl" "next"; 102 + "XF86AudioPrev".action = spawn "${pkgs.playerctl}/bin/playerctl" "previous"; 84 103 85 104 "XF86AudioMute".action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; 86 105 87 106 "XF86AudioRaiseVolume".action = spawn "wpctl" "set-volume" "-l" "1" "@DEFAULT_AUDIO_SINK@" "5%+"; 88 107 "XF86AudioLowerVolume".action = spawn "wpctl" "set-volume" "-l" "1" "@DEFAULT_AUDIO_SINK@" "5%-"; 89 108 90 - "XF86MonBrightnessUp".action = spawn "${pkgs.brillo}/bin/brillo" "-q" "-u" "300000" "-A" "5"; 91 - "XF86MonBrightnessDown".action = spawn "${pkgs.brillo}/bin/brillo" "-q" "-u" "300000" "-U" "5"; 109 + # "XF86MonBrightnessUp".action = spawn "${pkgs.brillo}/bin/brillo" "-q" "-u" "300000" "-A" "5"; 110 + # "XF86MonBrightnessDown".action = spawn "${pkgs.brillo}/bin/brillo" "-q" "-u" "300000" "-U" "5"; 92 111 93 112 # Bindings 94 113 "Mod+Return" = { ··· 144 163 repeat = false; 145 164 action = close-window; 146 165 }; 166 + 147 167 "Mod+S".action = switch-preset-column-width; 148 168 "Mod+F".action = maximize-column; 149 169 "Mod+Shift+F".action = fullscreen-window; ··· 160 180 "Mod+Tab".action = switch-focus-between-floating-and-tiling; 161 181 "Mod+Alt+Space".action = toggle-window-floating; 162 182 183 + # Screensharing "Dynamic" 184 + "Mod+P" = { 185 + repeat = false; 186 + action = spawn "sh" "-c" "${lib.getExe config.programs.niri.package} msg action set-dynamic-cast-window --id $(${lib.getExe config.programs.niri.package} msg --json pick-window | ${lib.getExe pkgs.jq} .id)"; 187 + # action = spawn "sh" "-c" "${niri} msg action set-dynamic-cast-window --id $(${niri} msg --json list-windows | ${jq} '.[] | select(.is_active) | .id' | head -1)"; 188 + }; 189 + "Mod+Shift+P" = { 190 + repeat = false; 191 + action = spawn "sh" "-c" "${lib.getExe config.programs.niri.package} msg action clear-dynamic-cast-target"; 192 + }; 193 + "Mod+Ctrl+P" = { 194 + repeat = false; 195 + action = spawn "sh" "-c" "${lib.getExe config.programs.niri.package} msg action set-dynamic-cast-monitor"; 196 + }; 197 + 163 198 # workspace 164 199 "Mod+H".action = focus-column-or-monitor-left; 165 200 "Mod+J".action = focus-window-or-workspace-down; ··· 375 410 matches = [ { app-id = "app.drey.PaperPlane"; } ]; 376 411 block-out-from = "screencast"; 377 412 } 413 + 378 414 { 379 415 matches = [ 380 416 { app-id = "^(zen|zen-.*|firefox|chromium-browser|edge|chrome-.*)$"; } ··· 397 433 { 398 434 matches = [ 399 435 { 400 - app-id = "firefox$"; 401 - title = "^Picture-in-Picture$"; 436 + app-id = "^firefox$"; 437 + title = "^Picture-in-Picture.*$"; 402 438 } 403 439 { 404 - app-id = "zen-.*$"; 405 - title = "^Picture-in-Picture$"; 440 + app-id = "^zen-.*$"; 441 + title = "^Picture-in-Picture.*$"; 406 442 } 407 443 { 408 - app-id = "zen-.*$"; 409 - title = ".*Bitwarden Password Manager.*"; 444 + app-id = "^zen-.*$"; 445 + title = "^Extension.*(Bitwarden).*"; 410 446 } 411 447 { title = "^Picture in picture$"; } 412 448 { title = "^Discord Popout$"; } ··· 520 556 scroll-method = "two-finger"; 521 557 tap = true; 522 558 tap-button-map = "left-right-middle"; 523 - # accel-profile = "adaptive"; 524 - accel-profile = "flat"; 525 - # scroll-factor = 0.2; 559 + accel-profile = "adaptive"; 560 + accel-speed = 0.3; # from -1 to 1 561 + # accel-profile = "flat"; 562 + scroll-factor = 0.4; # from 0 to 1 526 563 }; 527 564 }; 528 565 };