{ pkgs, config, ... }: { programs.niri = { enable = true; package = pkgs.niri; settings = { input.mod-key = "SUPER"; binds = with config.lib.niri.actions; { "Mod+1".action = spawn "kitty"; "Mod+2".action = show-hotkey-overlay; "Mod+F11".action = fullscreen-window; "Mod+F".action = spawn "librewolf"; "Mod+D".action = spawn "vesktop"; "Mod+Space".action = spawn "sh -c 'wofi --show drun, run'"; "Print".action = screenshot; "Mod+Alt+L".action = spawn "hyprlock"; "Mod+x".action = close-window; "Mod+Tab".action = toggle-window-floating; "Mod+h".action = focus-column-or-monitor-left; "Mod+j".action = focus-window-or-monitor-down; "Mod+k".action = focus-window-or-monitor-up; "Mod+l".action = focus-column-or-monitor-right; "Mod+Shift+h".action = consume-or-expel-window-left; # no idea if this should be swap-window-left instead "Mod+Shift+j".action = move-window-down-or-to-workspace-down; "Mod+Shift+k".action = move-window-up-or-to-workspace-up; "Mod+Shift+l".action = consume-or-expel-window-right; # see above comment "Mod+WheelScrollUp".action = focus-workspace-up; "Mod+WheelScrollDown".action = focus-workspace-down; # not sure if these mouse scroll keybinds are in the right direction "Mod+Up".action = focus-workspace-up; "Mod+Down".action = focus-workspace-down; # not sure how to do the "send window to workspace" keybinds from the hyprland config }; }; }; }