river: Improve floating mode mappings

Simplify the system of mappings in floating:

- HJKL for moving a floating window around.
- C-HJKL for quickly snapping to screen edges (as before)
- Mod-HJKL for resizing the floating window.
- Mod-Shift-HJKL for changing the tag's setting:
  - HL to change size ratio of main/side pane
  - JK to change amount of windows in main pane
This commit is contained in:
Marty Oehme 2024-09-16 20:29:55 +02:00
parent 1cc47ac7df
commit 19bafa910e
Signed by: Marty
GPG key ID: EDBF2ED917B2EF6A

View file

@ -132,8 +132,6 @@ riverctl map normal $mod+Shift M spawn 'for i in $(wlopm | wc -l); do riverctl s
riverctl map normal $mod+Shift F10 spawn "riverctl send-layout-cmd $layout '--tags all --output all view-padding 0'"
riverctl map normal $mod F10 spawn "riverctl send-layout-cmd $layout '--tags all --output all view-padding 6'"
# toggle float
riverctl map normal $mod+Shift v toggle-float
# Mod + Left Mouse Button to move views
riverctl map-pointer normal $mod BTN_LEFT move-view
# Mod + Right Mouse Button to resize views
@ -143,22 +141,30 @@ riverctl map-pointer normal $mod BTN_RIGHT resize-view
riverctl declare-mode interact_float
riverctl map normal $modemod R enter-mode interact_float
riverctl map interact_float $modemod R enter-mode normal
# resize views on screen
riverctl map interact_float $mod H resize horizontal -100
riverctl map interact_float $mod J resize vertical 100
riverctl map interact_float $mod K resize vertical -100
riverctl map interact_float $mod L resize horizontal 100
riverctl map interact_float None Escape enter-mode normal
# toggle float
riverctl map interact_float $mod+Shift v toggle-float
# move views around screen
riverctl map interact_float $mod+Shift H move left 100
riverctl map interact_float $mod+Shift J move down 100
riverctl map interact_float $mod+Shift K move up 100
riverctl map interact_float $mod+Shift L move right 100
riverctl map -repeat interact_float None H move left 100
riverctl map -repeat interact_float None J move down 100
riverctl map -repeat interact_float None K move up 100
riverctl map -repeat interact_float None L move right 100
# resize views on screen
riverctl map -repeat interact_float $mod H resize horizontal -100
riverctl map -repeat interact_float $mod J resize vertical 100
riverctl map -repeat interact_float $mod K resize vertical -100
riverctl map -repeat interact_float $mod L resize horizontal 100
# decrease/increase the main ratio of layout
riverctl map interact_float None H send-layout-cmd $layout "main-ratio -0.05"
riverctl map interact_float None L send-layout-cmd $layout "main-ratio +0.05"
riverctl map interact_float $mod+Shift H send-layout-cmd $layout "main-ratio -0.05"
riverctl map interact_float $mod+Shift L send-layout-cmd $layout "main-ratio +0.05"
# increment/decrement the main layout
riverctl map interact_float None J send-layout-cmd $layout "main-count +1"
riverctl map interact_float None K send-layout-cmd $layout "main-count -1"
riverctl map interact_float $mod+Shift J send-layout-cmd $layout "main-count +1"
riverctl map interact_float $mod+Shift K send-layout-cmd $layout "main-count -1"
# snap views to screen edges
riverctl map interact_float $mod+Control H snap left
riverctl map interact_float $mod+Control J snap down
riverctl map interact_float $mod+Control K snap up
riverctl map interact_float $mod+Control L snap right
### End resize and moving mode
## Passthrough mode which disables all other mappings and only retains the single
@ -224,9 +230,9 @@ done
# The scratchpad will live on an unused tag. Which tags are used depends on your
# config, but rivers default uses the first 9 tags.
scratch_tag=$((1 << 20))
# Toggle the scratchpad with Super+P
# Toggle showing the scratchpad
riverctl map normal $mod grave toggle-focused-tags ${scratch_tag}
# Send windows to the scratchpad with Super+Shift+P
# Send windows to the scratchpad
riverctl map normal $mod+Shift grave set-view-tags ${scratch_tag}
# Set spawn tagmask to ensure new windows don't have the scratchpad tag unless
# explicitly set.