mirror of
https://github.com/swaywm/sway.git
synced 2024-11-22 07:51:28 +00:00
Merge pull request #2387 from 1ace/feature/bash-completion
bash completion
This commit is contained in:
commit
878d1ddd07
46
completions/bash/sway
Normal file
46
completions/bash/sway
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
# sway(1) completion
|
||||||
|
|
||||||
|
_sway()
|
||||||
|
{
|
||||||
|
local cur prev
|
||||||
|
_get_comp_words_by_ref cur prev
|
||||||
|
|
||||||
|
short=(
|
||||||
|
-h
|
||||||
|
-c
|
||||||
|
-C
|
||||||
|
-d
|
||||||
|
-v
|
||||||
|
-V
|
||||||
|
)
|
||||||
|
|
||||||
|
long=(
|
||||||
|
--help
|
||||||
|
--config
|
||||||
|
--validate
|
||||||
|
--debug
|
||||||
|
--version
|
||||||
|
--verbose
|
||||||
|
--get-socketpath
|
||||||
|
)
|
||||||
|
|
||||||
|
case $prev in
|
||||||
|
-c|--config)
|
||||||
|
_filedir
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [[ $cur == --* ]]; then
|
||||||
|
COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
|
||||||
|
elif [[ $cur == -* ]]; then
|
||||||
|
COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
|
||||||
|
COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
|
||||||
|
else
|
||||||
|
COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
|
||||||
|
COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
|
||||||
|
COMPREPLY+=($(compgen -c -- "$cur"))
|
||||||
|
fi
|
||||||
|
|
||||||
|
} &&
|
||||||
|
complete -F _sway sway
|
48
completions/bash/swayidle
Normal file
48
completions/bash/swayidle
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
# swaymsg(1) completion
|
||||||
|
|
||||||
|
_swayidle()
|
||||||
|
{
|
||||||
|
local cur prev
|
||||||
|
_get_comp_words_by_ref -n : cur prev
|
||||||
|
local prev2=${COMP_WORDS[COMP_CWORD-2]}
|
||||||
|
local prev3=${COMP_WORDS[COMP_CWORD-3]}
|
||||||
|
|
||||||
|
events=(
|
||||||
|
'timeout'
|
||||||
|
'before-sleep'
|
||||||
|
)
|
||||||
|
|
||||||
|
short=(
|
||||||
|
-h
|
||||||
|
-d
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ "$prev" = timeout ]; then
|
||||||
|
# timeout <timeout>
|
||||||
|
return
|
||||||
|
elif [ "$prev2" = timeout ]; then
|
||||||
|
# timeout <timeout> <timeout command>
|
||||||
|
COMPREPLY=($(compgen -c -- "$cur"))
|
||||||
|
return
|
||||||
|
elif [ "$prev3" = timeout ]; then
|
||||||
|
# timeout <timeout> <timeout command> [resume <resume command>]
|
||||||
|
COMPREPLY=(resume)
|
||||||
|
# optional argument; no return here as user may skip 'resume'
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$prev" in
|
||||||
|
resume)
|
||||||
|
COMPREPLY=($(compgen -c -- "$cur"))
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
before-sleep)
|
||||||
|
COMPREPLY=($(compgen -c -- "$cur"))
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
COMPREPLY+=($(compgen -W "${events[*]}" -- "$cur"))
|
||||||
|
COMPREPLY+=($(compgen -W "${short[*]}" -- "$cur"))
|
||||||
|
|
||||||
|
} &&
|
||||||
|
complete -F _swayidle swayidle
|
66
completions/bash/swaylock
Normal file
66
completions/bash/swaylock
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
# swaylock(1) completion
|
||||||
|
|
||||||
|
_swaylock()
|
||||||
|
{
|
||||||
|
local cur prev
|
||||||
|
_get_comp_words_by_ref -n : cur prev
|
||||||
|
|
||||||
|
short=(
|
||||||
|
-h
|
||||||
|
-c
|
||||||
|
-s
|
||||||
|
-t
|
||||||
|
-v
|
||||||
|
-i
|
||||||
|
-u
|
||||||
|
-f
|
||||||
|
)
|
||||||
|
|
||||||
|
long=(
|
||||||
|
--help
|
||||||
|
--color
|
||||||
|
--scaling
|
||||||
|
--tiling
|
||||||
|
--version
|
||||||
|
--image
|
||||||
|
--no-unlock-indicator
|
||||||
|
--daemonize
|
||||||
|
)
|
||||||
|
|
||||||
|
scaling=(
|
||||||
|
'stretch'
|
||||||
|
'fill'
|
||||||
|
'fit'
|
||||||
|
'center'
|
||||||
|
'tile'
|
||||||
|
)
|
||||||
|
|
||||||
|
case $prev in
|
||||||
|
-c|--color)
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
--scaling)
|
||||||
|
COMPREPLY=($(compgen -W "${scaling[*]}" -- "$cur"))
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
-i|--image)
|
||||||
|
if grep -q : <<< "$cur"; then
|
||||||
|
output="${cur%%:*}:"
|
||||||
|
cur="${cur#*:}"
|
||||||
|
else
|
||||||
|
output=
|
||||||
|
fi
|
||||||
|
COMPREPLY=($(compgen -f -- "$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 _swaylock swaylock
|
57
completions/bash/swaymsg
Normal file
57
completions/bash/swaymsg
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
# 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_clipboard'
|
||||||
|
)
|
||||||
|
|
||||||
|
short=(
|
||||||
|
-h
|
||||||
|
-q
|
||||||
|
-r
|
||||||
|
-s
|
||||||
|
-t
|
||||||
|
-v
|
||||||
|
)
|
||||||
|
|
||||||
|
long=(
|
||||||
|
--help
|
||||||
|
--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
|
12
meson.build
12
meson.build
|
@ -190,3 +190,15 @@ if (get_option('zsh_completions'))
|
||||||
|
|
||||||
install_data(zsh_files, install_dir: zsh_install_dir)
|
install_data(zsh_files, install_dir: zsh_install_dir)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if (get_option('bash_completions'))
|
||||||
|
bash_files = files(
|
||||||
|
'completions/bash/sway',
|
||||||
|
'completions/bash/swayidle',
|
||||||
|
'completions/bash/swaylock',
|
||||||
|
'completions/bash/swaymsg',
|
||||||
|
)
|
||||||
|
bash_install_dir = datadir + '/bash-completion/completions'
|
||||||
|
|
||||||
|
install_data(bash_files, install_dir: bash_install_dir)
|
||||||
|
endif
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
option('sway_version', type : 'string', description: 'The version string reported in `sway --version`.')
|
option('sway_version', type : 'string', description: 'The version string reported in `sway --version`.')
|
||||||
option('default_wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.')
|
option('default_wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.')
|
||||||
option('zsh_completions', type: 'boolean', value: true, description: 'Install zsh shell completions.')
|
option('zsh_completions', type: 'boolean', value: true, description: 'Install zsh shell completions.')
|
||||||
|
option('bash_completions', type: 'boolean', value: true, description: 'Install bash shell completions.')
|
||||||
option('enable-xwayland', type: 'boolean', value: true, description: 'Enable support for X11 applications')
|
option('enable-xwayland', type: 'boolean', value: true, description: 'Enable support for X11 applications')
|
||||||
|
|
Loading…
Reference in a new issue