mirror of
https://github.com/swaywm/sway.git
synced 2026-04-28 06:46:26 -04:00
The new get_bindings IPC interface (IPC_GET_BINDINGS) allows swaymsg (and other IPC clients) to interrogate sway's input bindings for all configured binding modes. The output of get_bindings is a JSON object mapping each configured binding mode (e.g. "default", "resize", etc.) to an array of binding objects. The binding JSON objects are of the same form as those in IPC_EVENT_BINDING. N.B. a big chunk of code from ipc_event_binding() is moved to a new ipc_json_describe_binding() function which services both the new IPC_GET_BINDINGS as well as the existing IPC_EVENT_BINDING commands. Signed-off-by: Peter Grayson <pete@jpgrayson.net>
62 lines
893 B
Text
62 lines
893 B
Text
# swaymsg(1) completion
|
|
|
|
_swaymsg()
|
|
{
|
|
local cur prev
|
|
_get_comp_words_by_ref cur prev
|
|
|
|
types=(
|
|
'get_workspaces'
|
|
'get_seats'
|
|
'get_inputs'
|
|
'get_outputs'
|
|
'get_tree'
|
|
'get_marks'
|
|
'get_bar_config'
|
|
'get_version'
|
|
'get_binding_modes'
|
|
'get_bindings'
|
|
'get_config'
|
|
'send_tick'
|
|
)
|
|
|
|
short=(
|
|
-h
|
|
-p
|
|
-q
|
|
-r
|
|
-s
|
|
-t
|
|
-v
|
|
)
|
|
|
|
long=(
|
|
--help
|
|
--pretty
|
|
--quiet
|
|
--raw
|
|
--socket
|
|
--type
|
|
--verbose
|
|
)
|
|
|
|
case $prev in
|
|
-s|--socket)
|
|
_filedir
|
|
return
|
|
;;
|
|
-t|--type)
|
|
COMPREPLY=($(compgen -W "${types[*]}" -- "$cur"))
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ $cur == --* ]]; then
|
|
COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
|
|
else
|
|
COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
|
|
COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
|
|
fi
|
|
|
|
} &&
|
|
complete -F _swaymsg swaymsg
|