diff options
Diffstat (limited to 'completions/bash/swaybar')
-rw-r--r-- | completions/bash/swaybar | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/completions/bash/swaybar b/completions/bash/swaybar new file mode 100644 index 00000000..504588f1 --- /dev/null +++ b/completions/bash/swaybar | |||
@@ -0,0 +1,44 @@ | |||
1 | # swaybar(1) completion | ||
2 | |||
3 | _swaybar() | ||
4 | { | ||
5 | local cur prev | ||
6 | _get_comp_words_by_ref cur prev | ||
7 | |||
8 | short=( | ||
9 | -h | ||
10 | -v | ||
11 | -s | ||
12 | -b | ||
13 | -d | ||
14 | ) | ||
15 | |||
16 | long=( | ||
17 | --help | ||
18 | --version | ||
19 | --socket | ||
20 | --bar_id | ||
21 | --debug | ||
22 | ) | ||
23 | |||
24 | case $prev in | ||
25 | -s|--socket) | ||
26 | _filedir | ||
27 | return | ||
28 | ;; | ||
29 | -b|--bar_id) | ||
30 | bars=($(swaymsg -t get_bar_config | sed -e '/^\[/,/\]$/{//d;s/^ *"\(.*\)",\?.*$/\1/}')) | ||
31 | COMPREPLY=($(compgen -W "${bars[*]}" -- "$cur")) | ||
32 | return | ||
33 | ;; | ||
34 | esac | ||
35 | |||
36 | if [[ $cur == --* ]]; then | ||
37 | COMPREPLY=($(compgen -W "${long[*]}" -- "$cur")) | ||
38 | else | ||
39 | COMPREPLY=($(compgen -W "${short[*]}" -- "$cur")) | ||
40 | COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur")) | ||
41 | fi | ||
42 | |||
43 | } && | ||
44 | complete -F _swaybar swaybar | ||