Git init
[framework/uifw/e17.git] / data / other / _enlightenment_remote
1 #compdef enlightenment_remote
2
3 # zshcompsys function for enlightenment_remote
4 # written by Oliver Burnett-Hall <olly@burnett-hall.co.uk>
5
6 # TODO:
7 #   .  -module-load produces completions for all available modules; it should
8 #      just complete unloaded ones
9 #   .  I'm not sure if completions for arguments to -lang-set are correct
10 #   .  produces completions for keys argument to -binding-key-(add|del)
11 #   .  produces completions for buttons argument to -binding-mouse-(add|del)
12 #   .  produce completions for actions argument to -binding-*
13 #   .  possibly produce completions for parameters argument to -binding-*
14 #   .  completions for -binding-(key|mouse)-del should be based on existing
15 #      bindings
16
17 local allopts="-bg-dirs-list -default-bg-get -default-bg-set \
18             -binding-key-add -binding-key-del \
19             -binding-key-list -binding-mouse-add -binding-mouse-del \
20             -binding-mouse-list -font-apply -font-available-list \
21             -font-default-get -font-default-list -font-default-remove \
22             -font-default-set -font-fallback-append -font-fallback-clear \
23             -font-fallback-list -font-fallback-prepend -font-fallback-remove \
24             -lang-get -lang-list -lang-set -module-dirs-list -module-disable \
25             -module-enable -module-list -module-load -module-unload -restart \
26             -shutdown -help"
27
28 local text_classes="default title_bar"
29 local contexts="NONE UNKNOWN BORDER ZONE MANAGER ANY"
30 local modifiers="SHIFT CTRL ALT WIN"
31
32 local context line state
33 typeset -A opt_args
34
35 _arguments : \
36         "($allopts)-help[Show usage]" \
37         "($allopts)-module-load[Load module into memory]:module name:->unloaded-module" \
38         "($allopts)-module-unload[Unload (and disable) module]:module name:->loaded-module" \
39         "($allopts)-module-enable[Enable module if not enabled]:module name:->disabled-module" \
40         "($allopts)-module-disable[Disable module if not disabled]:module name:->enabled-module" \
41         "($allopts)-module-list[List all loaded modules and their states]" \
42         "($allopts)-module-dirs-list[List all modules directories]" \
43         "($allopts)-default-bg-set[Set the background edje file]:background edje:_files -g \*.edj" \
44         "($allopts)-default-bg-get[Get the background edje file]" \
45         "($allopts)-bg-dirs-list[Get the background directories]" \
46         "($allopts)-font-fallback-remove[Remove a font from the fontset]:font name:->fallback-font" \
47         "($allopts)-font-fallback-prepend[Prepend a font to the fontset]:font name:->available-font" \
48         "($allopts)-font-fallback-append[Append a font to the fontset]:font name:->available-font" \
49         "($allopts)-font-apply[Apply changes made to the font system]" \
50         "($allopts)-font-fallback-list[List the fallback fonts in order]" \
51         "($allopts)-font-available-list[List available fonts]" \
52         "($allopts)-font-fallback-clear[Clear font fallback list]" \
53         "($allopts)-font-default-get[List the default font associated with OPT1]:text class:($text_classes)" \
54         "($allopts)-font-default-remove[Remove the default text class OPT1]:text class:($text_classes)" \
55         "($allopts)-font-default-list[List all configured text classes]" \
56         "($allopts)-font-default-set[Set textclass, font, and size]:text class:($text_classes):font name:->available-font:font size:" \
57         "($allopts)-restart[Restart E17]" \
58         "($allopts)-shutdown[Shutdown E17]" \
59         "($allopts)-lang-get[Get the current language]" \
60         "($allopts)-lang-list[List all available languages]" \
61         "($allopts)-lang-set[Set the current language]:language:->language" \
62         "($allopts)-binding-mouse-list[List all mouse bindings]" \
63         "($allopts)-binding-mouse-add[Add or replace an existing mouse binding]:context:($contexts):button::modifiers:_values -s \| modifiers $modifiers:'any modifiers' flag:(0 1):action::action parameters:" \
64         "($allopts)-binding-mouse-del[Delete an existing mouse binding]:context:($contexts):button::modifiers:_values -s \| modifiers $modifiers:'any modifiers' flag:(0 1):action::action parameters:" \
65         "($allopts)-binding-key-list[List all key bindings]" \
66         "($allopts)-binding-key-add[Add or replace an existing key binding]:context:($contexts):key::modifiers:_values -s \| modifiers $modifiers:'any modifiers' flag:(0 1):action::action parameters:" \
67         "($allopts)-binding-key-del[Delete an existing key binding]:context:($contexts):key::modifiers:_values -s \| modifiers $modifiers:'any modifiers' flag:(0 1):action::action parameters:" \
68         "-display[Specify X display]:display::" \
69         && return 0
70
71 local tag description cmd=enlightenment_remote
72 local -a opts
73
74 case $state in
75         available-font)
76                 opts=($($cmd -font-available-list | sed 's/.*"\([^"]*\)"/\1/gp;d'))
77                 description="font name"
78                 tag=fonts
79                 ;;
80         fallback-font)
81                 opts=($($cmd -font-fallback-list | sed 's/.*"\([^"]*\)"/\1/gp;d'))
82                 description="font name"
83                 tag=fonts
84                 ;;
85         language)
86                 opts=($($cmd -lang-list | sed 's/.*"\([^"]*\)"/\1/gp;d'))
87                 description="language"
88                 tag=languages
89                 ;;
90         enabled-module)
91                 opts=($($cmd -module-list | sed 's/.*"\([^"]*\)" ENABLED 1.*/\1/gp;d'))
92                 description="enabled module"
93                 tag=modules
94                 ;;
95         disabled-module)
96                 opts=($($cmd -module-list | sed 's/.*"\([^"]*\)" ENABLED 0/\1/gp;d'))
97                 description="disabled module"
98                 tag=modules
99                 ;;
100         unloaded-module)
101                 # FIXME: matches all available modules, not just unloaded ones
102                 opts=(${^$($cmd -dirs-list modules | sed 's/.*"\([^"]*\)"/\1/gp;d')}/*(N/:t))
103                 description="module name"
104                 tag=modules
105                 ;;
106         loaded-module)
107                 opts=($($cmd -module-list | sed 's/.*"\([^"]*\)" ENABLED ./\1/gp;d'))
108                 description="loaded module"
109                 tag=modules
110                 ;;
111         *)
112                 # we should never get here
113                 return 1
114                 ;;
115 esac
116
117 _wanted $tag expl $description compadd -a opts && return 0
118