blob: 24d90124c88314f487bd6608c907fa81349323fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
# ex: ts=8 sw=8 noet filetype=sh
#
# bash completion for vncviewer (4.1.1)
# NOTE: - VNC Viewer options are case-insensivite. Preferred case is taken from -help.
# - Both single dash (-) and double dash (--) are allowed as option prefix
have vncviewer &&
_vncviewer()
{
local cur prev
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
# Convert double dash to single dash
case ${prev/#--/-} in
# -passwd, -PasswordFile
-[pP][aA][sS][sS][wW][dD]|-[pP][aA][sS][sS][wW][oO][rR][dD][fF][iI][lL][eE])
_filedir
return 0
;;
# -PreferredEncoding
-[pP][rR][eE][fF][eE][rR][rR][eE][dD][eE][nN][cC][oO][dD][iI][nN][gG])
COMPREPLY=( $( compgen -W 'zrle hextile raw' -- $cur ) )
return 0
;;
# -via
-[vV][iI][aA])
_known_hosts
return 0
;;
esac
if [[ "$cur" == -* || "$cur" == --* ]]; then
# Default to vncviewer camelcase options, see `vncviewer -help'
local dash options=( \
AcceptClipboard AutoSelect DebugDelay display \
DotWhenNoCursor FullColor FullColour FullScreen \
geometry help listen Log \
LowColourLevel MenuKey name Parent \
passwd PasswordFile PointerEventInterval PreferredEncoding \
SendClipboard SendPrimary Shared UseLocalCursor \
via ViewOnly WMDecorationHeight WMDecorationWidth \
ZlibLevel \
)
[[ "$cur" == --* ]] && dash=-- || dash=-
# Is a `nocasematch' variable available (bash > v3.1)?
if shopt nocasematch 2> /dev/null | grep -q ^nocasematch; then
# Variable `nocasematch' is available
# Use vncviewer camelcase options
local option oldNoCaseMatch=$(shopt -p nocasematch)
shopt -s nocasematch
COMPREPLY=( $( for option in "${options[@]}"; do
[[ $dash$option == "$cur"* ]] && echo $dash$option
done ) )
eval "$oldNoCaseMatch" 2> /dev/null
else
# Variable 'nocasematch' isn't available;
# Convert completions to lowercase
COMPREPLY=( $( compgen -W "$(
echo ${options[@]/#/$dash} | tr [:upper:] [:lower:]
)" -- "$(echo "$cur" | tr [:upper:] [:lower:])" ) )
fi
else
_known_hosts
fi
} &&
complete -F _vncviewer vncviewer
|