diff options
Diffstat (limited to 'home/wayland')
| -rw-r--r-- | home/wayland/niri/binds.nix | 70 | ||||
| -rw-r--r-- | home/wayland/niri/niri.nix | 3 |
2 files changed, 46 insertions, 27 deletions
diff --git a/home/wayland/niri/binds.nix b/home/wayland/niri/binds.nix index e65a595..0277e50 100644 --- a/home/wayland/niri/binds.nix +++ b/home/wayland/niri/binds.nix @@ -1,40 +1,57 @@ { config, pkgs, ... }: + +let + # helpers + actions = config.lib.niri.actions; + spawn = actions.spawn; + + # common action factories + set-volume = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@"; + playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; +in { - programs.niri.settings.binds = with config.lib.niri.actions; - let - set-volume = spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@"; - playerctl = spawn "${pkgs.playerctl}/bin/playerctl"; - in - { + programs.niri.settings.binds = with actions; { + + # Overview / help "Mod+O" = { action = toggle-overview; repeat = false; }; "Mod+Slash".action = show-hotkey-overlay; + + # Audio XF86AudioRaiseVolume.action = set-volume "2%+"; XF86AudioLowerVolume.action = set-volume "2%-"; XF86AudioMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; XF86AudioMicMute.action = spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; + + # Media keys XF86AudioPlay.action = playerctl "play-pause"; XF86AudioStop.action = playerctl "pause"; XF86AudioPrev.action = playerctl "previous"; XF86AudioNext.action = playerctl "next"; + + # Column sizing "Mod+Minus".action = set-column-width "-10%"; "Mod+Equal".action = set-column-width "+10%"; - # // Finer height adjustments when in column with other windows. + # Finer height adjustments when in column with other windows. "Mod+Shift+Minus".action = set-window-height "-10%"; "Mod+Shift+Equal".action = set-window-height "+10%"; + + # Misc # "Mod+Shift+V".action = switch-focus-between-floating-and-tiling; "Mod+Shift+P".action = power-off-monitors; - "Mod+W".action = toggle-column-tabbed-display; + "Mod+W".action = toggle-column-tabbed-display; + # Screenshot (selection -> copy + save) "Mod+S".action = spawn "sh" "-c" '' filename="/media/ss/$(date +%Y-%m-%d_%H-%M-%S).png" grim -g "$(slurp)" - | tee "$filename" | wl-copy ''; + # Screenshot (selection -> save -> edit with satty -> copy edited) "Mod+Shift+S".action = spawn "sh" "-c" '' filename="/media/ss/$(date +%Y-%m-%d_%H-%M-%S).png" @@ -42,25 +59,29 @@ edited="/media/ss/$(date +%Y-%m-%d_%H-%M-%S)-edited.png" satty --filename "$filename" --output-filename "$edited" - wl-copy < "$edited" + ''; + + "Mod+Shift+D".action = spawn "sh" "-c" + '' + cliphist list | fuzzel --dmenu | cliphist decode | wl-copy ''; # --- System / General --- "Mod+Return".action = spawn "foot"; "Mod+D".action = spawn "fuzzel"; - "Mod+BracketLeft".action = consume-or-expel-window-left; - "Mod+BracketRight".action = consume-or-expel-window-right; - - "Mod+R".action = switch-preset-column-width; - "Mod+Shift+R".action = reset-window-height; - "Mod+F".action = maximize-column; - "Mod+Shift+F".action = fullscreen-window; - "Mod+C".action = center-column; - - "Mod+Comma".action = consume-window-into-column; - "Mod+Period".action = expel-window-from-column; - # The 'quit' action without arguments performs the action with confirmation. - "Mod+Shift+E".action = quit; + "Mod+BracketLeft".action = consume-or-expel-window-left; + "Mod+BracketRight".action = consume-or-expel-window-right; + + "Mod+R".action = switch-preset-column-width; + "Mod+Shift+R".action = reset-window-height; + "Mod+F".action = maximize-column; + "Mod+Shift+F".action = fullscreen-window; + "Mod+C".action = center-column; + + "Mod+Comma".action = consume-window-into-column; + "Mod+Period".action = expel-window-from-column; + + "Mod+Shift+E".action = quit; # --- Window Navigation (Focus) --- "Mod+H".action = focus-column-left; @@ -76,8 +97,6 @@ # --- Window State --- "Mod+Shift+Q".action = close-window; - # "Mod+F".action = maximize-column; - # "Mod+V".action = toggle-window-floating; # Renamed from toggle-floating to match docs}; "Mod+1".action = focus-workspace 1; "Mod+2".action = focus-workspace 2; @@ -86,12 +105,11 @@ "Mod+5".action = focus-workspace 5; "Mod+6".action = focus-workspace 6; - # The wonky format used here is to work-around https://github.com/sodiboo/niri-flake/issues/944 "Mod+Ctrl+1".action.move-column-to-workspace = [ 1 ]; "Mod+Ctrl+2".action.move-column-to-workspace = [ 2 ]; "Mod+Ctrl+3".action.move-column-to-workspace = [ 3 ]; "Mod+Ctrl+4".action.move-column-to-workspace = [ 4 ]; "Mod+Ctrl+5".action.move-column-to-workspace = [ 5 ]; "Mod+Ctrl+6".action.move-column-to-workspace = [ 6 ]; - }; + }; } diff --git a/home/wayland/niri/niri.nix b/home/wayland/niri/niri.nix index 9a3d85e..7d0537a 100644 --- a/home/wayland/niri/niri.nix +++ b/home/wayland/niri/niri.nix @@ -68,7 +68,8 @@ }; spawn-at-startup = [ { command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; } - { command = [ "swaybg" "--image" "/media/pics/wallpapers/kita6.png" ]; } + { command = [ "awww-daemon" ]; } + { command = [ "wl-paste --watch cliphist store" ]; } ]; }; } |
