diff --git a/completions/bash/riverctl b/completions/bash/riverctl index 84e9a89..f6abf88 100644 --- a/completions/bash/riverctl +++ b/completions/bash/riverctl @@ -1,6 +1,6 @@ function __riverctl_completion () { - local rule_actions="float no-float ssd csd tag output position dimensions fullscreen no-fullscreen" + local rule_actions="float no-float ssd csd tags output position dimensions fullscreen no-fullscreen" if [ "${COMP_CWORD}" -eq 1 ] then OPTS=" \ @@ -10,6 +10,7 @@ function __riverctl_completion () keyboard-group-remove \ keyboard-layout \ keyboard-layout-file \ + close \ exit \ focus-output \ focus-view \ @@ -46,7 +47,8 @@ function __riverctl_completion () unmap \ unmap-pointer \ unmap-switch \ - attach-mode \ + default-attach-mode \ + output-attach-mode \ background-color \ border-color-focused \ border-color-unfocused \ @@ -61,16 +63,16 @@ function __riverctl_completion () elif [ "${COMP_CWORD}" -eq 2 ] then case "${COMP_WORDS[1]}" in - "focus-output"|"send-to-output") OPTS="next previous" ;; + "focus-output"|"send-to-output") OPTS="next previous up right down left" ;; "focus-view"|"swap") OPTS="next previous up down left right" ;; "input") OPTS="$(riverctl list-inputs | sed '/configured:/d')" ;; "move"|"snap") OPTS="up down left right" ;; "resize") OPTS="horizontal vertical" ;; "rule-add"|"rule-del") OPTS="-app-id -title $rule_actions" ;; - "list-rules") OPTS="float ssd tag output position dimensions fullscreen" ;; + "list-rules") OPTS="float ssd tags output position dimensions fullscreen" ;; "map") OPTS="-release -repeat -layout" ;; "unmap") OPTS="-release" ;; - "attach-mode") OPTS="top bottom" ;; + "default-attach-mode"|"output-attach-mode") OPTS="top bottom above below after" ;; "focus-follows-cursor") OPTS="disabled normal always" ;; "set-cursor-warp") OPTS="disabled on-output-change on-focus-change" ;; "hide-cursor") OPTS="timeout when-typing" ;; diff --git a/completions/fish/riverctl.fish b/completions/fish/riverctl.fish index 9a577be..5d8d804 100644 --- a/completions/fish/riverctl.fish +++ b/completions/fish/riverctl.fish @@ -60,7 +60,8 @@ complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'rule-add' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'rule-del' -d 'Delete a rule added with rule-add' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'list-rules' -d 'Print rules in a given list' # Configuration -complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'attach-mode' -d 'Configure where new views should attach to the view stack' +complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'default-attach-mode' -d 'Set the attach mode to be used by all outputs by default' +complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'output-attach-mode' -d 'Set the attach mode of the currently focused output' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'background-color' -d 'Set the background color' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'border-color-focused' -d 'Set the border color of focused views' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'border-color-unfocused' -d 'Set the border color of unfocused views' @@ -80,19 +81,20 @@ complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'keyboard-layout' complete -c riverctl -n '__fish_riverctl_complete_arg 1' -a 'keyboard-layout-file' -d 'Set the keyboard layout from a file.' # Subcommands -complete -c riverctl -n '__fish_seen_subcommand_from focus-output send-to-output' -n '__fish_riverctl_complete_arg 2' -a 'next previous' +complete -c riverctl -n '__fish_seen_subcommand_from focus-output send-to-output' -n '__fish_riverctl_complete_arg 2' -a 'next previous up right down left' complete -c riverctl -n '__fish_seen_subcommand_from focus-view swap' -n '__fish_riverctl_complete_arg 2' -a 'next previous up down left right' complete -c riverctl -n '__fish_seen_subcommand_from move snap' -n '__fish_riverctl_complete_arg 2' -a 'up down left right' complete -c riverctl -n '__fish_seen_subcommand_from resize' -n '__fish_riverctl_complete_arg 2' -a 'horizontal vertical' complete -c riverctl -n '__fish_seen_subcommand_from map' -o 'release' -o 'repeat' -o 'layout' complete -c riverctl -n '__fish_seen_subcommand_from unmap' -n '__fish_riverctl_complete_arg 2' -o 'release' -complete -c riverctl -n '__fish_seen_subcommand_from attach-mode' -n '__fish_riverctl_complete_arg 2' -a 'top bottom' +complete -c riverctl -n '__fish_seen_subcommand_from default-attach-mode' -n '__fish_riverctl_complete_arg 2' -a 'top bottom above below after' +complete -c riverctl -n '__fish_seen_subcommand_from output-attach-mode' -n '__fish_riverctl_complete_arg 2' -a 'top bottom above below after' complete -c riverctl -n '__fish_seen_subcommand_from focus-follows-cursor' -n '__fish_riverctl_complete_arg 2' -a 'disabled normal always' complete -c riverctl -n '__fish_seen_subcommand_from set-cursor-warp' -n '__fish_riverctl_complete_arg 2' -a 'disabled on-output-change on-focus-change' -complete -c riverctl -n '__fish_seen_subcommand_from list-rules' -n '__fish_riverctl_complete_arg 2' -a 'float ssd tag output position dimensions fullscreen' +complete -c riverctl -n '__fish_seen_subcommand_from list-rules' -n '__fish_riverctl_complete_arg 2' -a 'float ssd tags output position dimensions fullscreen' # Options and subcommands for 'rule-add' and 'rule-del' -set -l rule_actions float no-float ssd csd tag output position dimensions fullscreen no-fullscreen +set -l rule_actions float no-float ssd csd tags output position dimensions fullscreen no-fullscreen complete -c riverctl -n '__fish_seen_subcommand_from rule-add rule-del' -n "not __fish_seen_subcommand_from $rule_actions" -n 'not __fish_seen_argument -o app-id' -o 'app-id' -r complete -c riverctl -n '__fish_seen_subcommand_from rule-add rule-del' -n "not __fish_seen_subcommand_from $rule_actions" -n 'not __fish_seen_argument -o title' -o 'title' -r complete -c riverctl -n '__fish_seen_subcommand_from rule-add rule-del' -n "not __fish_seen_subcommand_from $rule_actions" -n 'test (math (count (commandline -opc)) % 2) -eq 0' -a "$rule_actions" diff --git a/completions/zsh/_riverctl b/completions/zsh/_riverctl index 5ce46cb..a4c17fa 100644 --- a/completions/zsh/_riverctl +++ b/completions/zsh/_riverctl @@ -99,8 +99,9 @@ _riverctl() commands) _alternative 'common-commands:common:_riverctl_commands' ;; args) case "$line[1]" in - focus-output) _alternative 'arguments:args:(next previous)' ;; + focus-output) _alternative 'arguments:args:(next previous up right down left)' ;; focus-view) _alternative 'arguments:args:(next previous up down left right)' ;; + keyboard-layout) _arguments '*::optional:(-rules -model -variant -options)' ;; input) _arguments '1: :->name' '2: :->commands' ':: :->args' @@ -152,10 +153,24 @@ _riverctl() move) _alternative 'arguments:args:(up down left right)' ;; resize) _alternative 'arguments:args:(horizontal vertical)' ;; snap) _alternative 'arguments:args:(up down left right)' ;; - send-to-output) _alternative 'arguments:args:(next previous)' ;; + send-to-output) _arguments \ + '1::optional:(-current-tag)' \ + '::args:(next previous up right down left)' + ;; swap) _alternative 'arguments:args:(next previous up down left right)' ;; map) _alternative 'arguments:optional:(-release -repeat -layout)' ;; unmap) _alternative 'arguments:optional:(-release)' ;; + map-switch | unmap-switch) + _arguments '1: :' '2:args:(lid tablet)' '3:args:->args' + case "$state" in + args) + case "$line[2]" in + lid) _alternative 'arguments:args:(close open)' ;; + tablet) _alternative 'arguments:args:(on off)' ;; + esac + ;; + esac + ;; default-attach-mode) _alternative 'arguments:args:(top bottom above below after)' ;; output-attach-mode) _alternative 'arguments:args:(top bottom above below after)' ;; focus-follows-cursor) _alternative 'arguments:args:(disabled normal always)' ;; @@ -189,9 +204,9 @@ _riverctl() # In case of a new rule added in river, we just need # to add it to the third option between '()', # i.e (float no-float ) - _arguments '1: :(-app-id -title)' '2: : ' ':: :(float no-float ssd csd tag output position dimensions fullscreen no-fullscreen)' + _arguments '1: :(-app-id -title)' '2: : ' ':: :(float no-float ssd csd tags output position dimensions fullscreen no-fullscreen)' ;; - list-rules) _alternative 'arguments:args:(float ssd tag output position dimensions fullscreen)' ;; + list-rules) _alternative 'arguments:args:(float ssd tags output position dimensions fullscreen)' ;; *) return 0 ;; esac ;;