115 lines
3.7 KiB
Plaintext
115 lines
3.7 KiB
Plaintext
#compdef rdesktop xfreerdp
|
|
|
|
local curcontext="$curcontext" state line expl args redir ret=1
|
|
typeset -A opt_args
|
|
|
|
case $service in
|
|
rdesktop)
|
|
args=(
|
|
'(-5)-4[use RDP version 4]'
|
|
'(-4)-5[use RDP version 5]'
|
|
'-b[force server to use bitmaps for screen updates]'
|
|
'-B[use X server backing store]'
|
|
'-E[disable encryption]'
|
|
"-m[don't send mouse motion events]"
|
|
'-C[use private colormap]'
|
|
'-S[single application mode]'
|
|
'-N[enable numlock synchronisation]'
|
|
'-P[enable bitmap caching]'
|
|
'*-r[device redirection]: :->redirection'
|
|
)
|
|
;;
|
|
xfreerdp)
|
|
args=(
|
|
'(-)'{-h,--help}'[display help information]'
|
|
"-o[don't redirect audio to client]"
|
|
'-s[set startup-shell]:shell'
|
|
'-t[connect to specified port]:port:_ports'
|
|
'--app[RemoteApp connection]'
|
|
'--ext[load an extension]:extension'
|
|
'--no-auth[disable authentication]'
|
|
'--authonly[authentication only, no UI]'
|
|
'--from-stdin[prompt for username, password, domain and hostname]'
|
|
'--no-fastpath[disable fast-path]'
|
|
'--gdi[graphics rendering]:backend:(hw sw)'
|
|
"--no-motion[don't send mouse motion events]"
|
|
'--no-osb[disable offscreen bitmaps]'
|
|
'--no-bmp-cache[disable bitmap cache]'
|
|
'--plugin[load a virtual channel plugin]:(cliprdr drdynvc rdpsnd rail rdpdbg rdpdr)'
|
|
'--rfx[enable RemoteFX]'
|
|
'--rfx-mode[RemoteFX operational flags]:mode:((v\:video i\:image))'
|
|
'--nsc[enable NSCodec]'
|
|
'--disable-wallpaper'
|
|
'--composition[enable desktop composition]'
|
|
'--disable-full-window-drag'
|
|
'--disable-menu-animations'
|
|
'--disable-theming'
|
|
'--kbd-list[list all keyboard layout ids used by -k]'
|
|
'--no-rdp[disable Standard RDP encryption]'
|
|
'--no-tls[disable TLS encryption]'
|
|
'--no-nla[disable network level authentication]'
|
|
'--ntlm[force NTLM authentication protocol version]:version:(1 2)'
|
|
'--certificate-name[specify logon certificate]:certificate'
|
|
'--ignore-certificate[ignore verification of logon certificate]'
|
|
'--sec[force protocol security]:security:(rdp tls nla)'
|
|
'--secure-checksum[use salted checksums with Standard RDP encryption]'
|
|
'--version[print version information]'
|
|
)
|
|
;;
|
|
esac
|
|
|
|
_arguments -C -s $args \
|
|
'-u[username]:username:_users' \
|
|
'-d[domain]:domain' \
|
|
'-s[shell]:startup shell' \
|
|
'-c[working directory]:directory:_directories' \
|
|
'-p[password]:password' \
|
|
'-n[set reported client hostname]:client hostname:_hosts' \
|
|
'-k[keyboard map]:keyboard map' \
|
|
'(-f)-g[geometry]:geometry (WxH)' \
|
|
'(-g)-f[fullscreen mode]' \
|
|
'-D[hide window decorations]' \
|
|
'-K[do not override window manager key bindings]' \
|
|
'-T[set window title]:title' \
|
|
'-X[embed in another window]:window:_x_window' \
|
|
'-a[colour depth]:depth:(8 15 16 24 32)' \
|
|
'-z[enable compression]' \
|
|
'-x[bandwidth performance behaviour]:experience:((b\:broadband l\:lan m\:modem))' \
|
|
'-0[attach to server console]' \
|
|
':server:->hostsport' && ret=0
|
|
|
|
case $state in
|
|
hostsport)
|
|
if compset -P '*:'; then
|
|
_ports && ret=0
|
|
else
|
|
compset -S ':*'
|
|
_hosts && ret=0
|
|
fi
|
|
;;
|
|
redirection)
|
|
redir="${PREFIX%%:*}"
|
|
if compset -P 1 '*='; then
|
|
curcontext="${curcontext%:*}:$redir"
|
|
case $redir in
|
|
comport|lptport) _wanted devices expl device _files -g '*(-%)' && ret=0 ;;
|
|
disk) _directories && ret=0 ;;
|
|
printer) _printers && ret=0 ;;
|
|
scard) _message -e aliases 'alias name' ;;
|
|
esac
|
|
else
|
|
compset -S '=*'
|
|
_values -S : 'redirection' \
|
|
'comport:port' \
|
|
'disk:sharename' \
|
|
'lptport:lptport' \
|
|
'printer:printername:_printers -S=' \
|
|
'sound:sound:(local off remote)' \
|
|
'lspci' \
|
|
'scard:sound card name' && ret=0
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
return ret
|