Keybindings
General bindings:
riverctl map normal Super+Shift Q exit
riverctl map normal Super Page_Up focus-output next
riverctl map normal Super Page_Down focus-output previous
riverctl map normal Super B \
spawn "echo all toggle-visibility >>$sandbar_pipe"
riverctl map normal Super+Shift B \
spawn "echo all toggle-location >>$sandbar_pipe"
Extended keys
Configure function keys:
for mode (normal locked) {
riverctl map $mode None XF86MonBrightnessUp \
spawn "brightness_toggle up"
riverctl map $mode None XF86MonBrightnessDown \
spawn "brightness_toggle down"
riverctl map $mode None XF86AudioPlay spawn "dtas-ctl play_pause"
riverctl map $mode None XF86AudioNext spawn "dtas-ctl skip"
riverctl map $mode None XF86AudioMute spawn "amixer sset Master toggle"
riverctl map -repeat $mode None XF86AudioRaiseVolume \
spawn "amixer sset Master 5%+"
riverctl map -repeat $mode None XF86AudioLowerVolume \
spawn "amixer sset Master 5%-"
}
Note
Media and function keys operate independently of the screen lock state.
Passthrough mode for testing configuration
A really great idea from the example river init file giving a quick toggle to make keys a no-op for testing nested compositors:
riverctl declare-mode passthrough
riverctl map normal Super F11 enter-mode passthrough
riverctl map passthrough Super F11 enter-mode normal
Tag management
Direct key access for manipulation of tags one through nine:
for tag ({1..9}) {
tag_id=$(tag_mask $tag)
riverctl map normal Super $tag set-focused-tags $tag_id
riverctl map normal Super+Shift $tag set-view-tags $tag_id
riverctl map normal Super+Control $tag toggle-focused-tags $tag_id
riverctl map normal Super+Shift+Control $tag toggle-view-tags $tag_id
}
Show all, which you can treat it like a weak Apple’s Exposé:
riverctl map normal Super 0 set-focused-tags $ALL_TAGS