command: support repeating keyboard mappings

Repeating mappings are created using the -repeat option to the map
command:

    % riverctl map normal $mod+Mod1 K -repeat move up 10

- repeating is only supported for key press (not -release) mappings
- unlike -release, -repeat does not create distinct mappings: mapping a
  key with -repeat will replace an existing bare mapping and vice-versa

Resolves #306
This commit is contained in:
Keith Hubbard
2021-08-15 08:49:11 -04:00
committed by GitHub
parent 6e51a8fcdd
commit 2bdf9e20a5
9 changed files with 92 additions and 22 deletions

View File

@ -51,7 +51,8 @@ function __riverctl_completion ()
"focus-output"|"focus-view"|"send-to-output"|"swap") OPTS="next previous" ;;
"move"|"snap") OPTS="up down left right" ;;
"resize") OPTS="horizontal vertical" ;;
"map"|"unmap") OPTS="-release" ;;
"map") OPTS="-release -repeat" ;;
"unmap") OPTS="-release" ;;
"attach-mode") OPTS="top bottom" ;;
"focus-follows-cursor") OPTS="disabled normal" ;;
"set-cursor-warp") OPTS="disabled on-output-change" ;;

View File

@ -90,7 +90,7 @@ complete -c riverctl -x -n '__fish_seen_subcommand_from resize' -a
complete -c riverctl -x -n '__fish_seen_subcommand_from snap' -a 'up down left right'
complete -c riverctl -x -n '__fish_seen_subcommand_from send-to-output' -a 'next previous'
complete -c riverctl -x -n '__fish_seen_subcommand_from swap' -a 'next previous'
complete -c riverctl -x -n '__fish_seen_subcommand_from map' -a '-release'
complete -c riverctl -x -n '__fish_seen_subcommand_from map' -a '-release -repeat'
complete -c riverctl -x -n '__fish_seen_subcommand_from unmap' -a '-release'
complete -c riverctl -x -n '__fish_seen_subcommand_from attach-mode' -a 'top bottom'
complete -c riverctl -x -n '__fish_seen_subcommand_from focus-follows-cursor' -a 'disabled normal'

View File

@ -133,7 +133,7 @@ _riverctl()
snap) _alternative 'arguments:args:(up down left right)' ;;
send-to-output) _alternative 'arguments:args:(next previous)' ;;
swap) _alternative 'arguments:args:(next previous)' ;;
map) _alternative 'arguments:optional:(-release)' ;;
map) _alternative 'arguments:optional:(-release -repeat)' ;;
unmap) _alternative 'arguments:optional:(-release)' ;;
attach-mode) _alternative 'arguments:args:(top bottom)' ;;
focus-follows-cursor) _alternative 'arguments:args:(disabled normal)' ;;