diff options
Diffstat (limited to 'src/grp-login/systemd-inhibit/systemd-inhibit.completion.zsh')
-rw-r--r-- | src/grp-login/systemd-inhibit/systemd-inhibit.completion.zsh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/grp-login/systemd-inhibit/systemd-inhibit.completion.zsh b/src/grp-login/systemd-inhibit/systemd-inhibit.completion.zsh new file mode 100644 index 0000000000..1b3247b2cd --- /dev/null +++ b/src/grp-login/systemd-inhibit/systemd-inhibit.completion.zsh @@ -0,0 +1,33 @@ +#compdef systemd-inhibit + +_systemd_inhibit_command(){ + if (( CURRENT == 1 )); then + compset -q + _normal + else + local n=${words[(b:2:i)[^-]*]} + if (( n <= CURRENT )); then + compset -n $n + _alternative \ + 'files:file:_files' \ + 'commands:command:_normal' && return 0 + fi + _default + fi +} + +_inhibit_what() { + local _inhibit + _inhibit=(shutdown sleep idle handle-power-key handle-suspend-key handle-hibernate-key handle-lid-switch) + _values -s : "${_inhibit[@]}" +} + +_arguments \ + {-h,--help}'[Show this help]' \ + '--version[Show package version]' \ + '--what=[Operations to inhibit]:options:_inhibit_what' \ + '--who=[A descriptive string who is inhibiting]:who is inhibiting:' \ + '--why=[A descriptive string why is being inhibited]:reason for the lock:' \ + '--mode=[One of block or delay]:lock mode:( block delay )' \ + '--list[List active inhibitors]' \ + '*:commands:_systemd_inhibit_command' |