diff options
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | Completion/Unix/Command/_xfconf-query | 33 |
2 files changed, 36 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 0997ef5c7..1802e4a41 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2023-11-08 Oliver Kiddle <opk@zsh.org> + * Eric Cook: 52168: Completion/Unix/Command/_xfconf-query: + add completion for xfce's xfconf-query(1) + * 52271: Src/Modules/pcre.c: use correct form for unused parameter 2023-11-02 Oliver Kiddle <opk@zsh.org> diff --git a/Completion/Unix/Command/_xfconf-query b/Completion/Unix/Command/_xfconf-query new file mode 100644 index 000000000..fa535401f --- /dev/null +++ b/Completion/Unix/Command/_xfconf-query @@ -0,0 +1,33 @@ +#compdef xfconf-query +local curcontext="$curcontext" state state_descr line ret=1 +typeset -A opt_args + +_arguments -C -s -w : \ + '(-c --channel)'{-c,--channel}'[select channel to query/modify]:channel:( ${$(xfconf-query -l)\:#Channels\:} )' \ + '(-p --property)'{-p,--property}'[select property to query/modify]:property:->property' \ + '(-v --verbose)'{-v,--verbose}'[print property and value (with -l/-m)]' \ + '(-t --type)'{-t,--type}'[specify the property value type]:type:(empty string bool {,u}int{,16,64} double array {,u}char float)' \ + '(-R --recursive)'{-R,--recursive}'[recursively reset properties (with -r)]' \ + + '(operations)' \ + {-h,--help}'[show help options]' \ + {-V,--version}'[show version information]' \ + {-s,--set}'[define the value of a property]:value' \ + {-l,--list}'[list properties or channels]' \ + {-n,--create}'[create a new property]:new property name' \ + {-r,--reset}'[reset property]' \ + {-T,--toggle}'[invert boolean property]' \ + {-m,--monitor}'[monitor a channel for property changes]' && return + +case $state in + property) + # if -c/--channel is currently on the line, use it to complete an property. + if [[ -v opt_args[(i)-(c|-channel)] ]]; then + local expl + _wanted properties expl property compadd "$@" -- ${(f)"$(xfconf-query -c ${(v)opt_args[(i)-(c|-channel)]} -l)"} && ret=0 + else # just display a message + _message -e properties property && ret=0 + fi + ;; +esac + +return ret |