diff options
Diffstat (limited to 'completions/rdesktop')
-rw-r--r-- | completions/rdesktop | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/completions/rdesktop b/completions/rdesktop new file mode 100644 index 0000000..54c1ae6 --- /dev/null +++ b/completions/rdesktop @@ -0,0 +1,57 @@ +# bash completion for rdesktop -*- shell-script -*- + +_rdesktop() +{ + local cur prev words cword + _init_completion -n : || return + + case $prev in + -*k) + COMPREPLY=($(command ls \ + /usr/share/rdesktop/keymaps 2>/dev/null | + command grep -E -v '(common|modifiers)')) + COMPREPLY+=($(command ls $HOME/.rdesktop/keymaps 2>/dev/null)) + COMPREPLY+=($(command ls ./keymaps 2>/dev/null)) + COMPREPLY=($(compgen -W '${COMPREPLY[@]}' -- "$cur")) + return + ;; + -*a) + COMPREPLY=($(compgen -W '8 15 16 24' -- "$cur")) + return + ;; + -*x) + COMPREPLY=($(compgen -W 'broadband modem lan' -- "$cur")) + return + ;; + -*r) + case $cur in + sound:*) + COMPREPLY=($(compgen -W 'local off remote' \ + -- "${cur#sound:}")) + ;; + *:*) ;; + + *) + COMPREPLY=($(compgen -W 'comport: disk: lptport: + printer: sound: lspci scard' -- "$cur")) + [[ ${COMPREPLY-} == *: ]] && compopt -o nospace + ;; + esac + return + ;; + -*[udscpngSTX]) + return + ;; + esac + + if [[ $cur == -* ]]; then + local opts=($(_parse_help "$1")) + COMPREPLY=($(compgen -W '${opts[@]%:}' -- "$cur")) + else + _known_hosts_real -- "$cur" + fi + +} && + complete -F _rdesktop rdesktop + +# ex: filetype=sh |