aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurkan Sahin <furkan-dev@proton.me>2018-07-27 16:31:39 +0100
committerFurkan Sahin <furkan-dev@proton.me>2018-07-27 16:31:39 +0100
commit5e9ebcd42cacdf70025436accd4979baf1e8d6af (patch)
tree635a2b13e8f7ee6b48a662bd55abc31443318642
parentc8616dac53926673cc249f25977c32c01f763fc5 (diff)
bash: add completion for swayidle
-rw-r--r--completions/bash/swayidle48
1 files changed, 48 insertions, 0 deletions
diff --git a/completions/bash/swayidle b/completions/bash/swayidle
new file mode 100644
index 00000000..a0cdc8b2
--- /dev/null
+++ b/completions/bash/swayidle
@@ -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