summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Completion/X/Command/_xrandr10
2 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index d8c6d0e94..5b594827c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-01-24 Paul Seyfert <pseyfert.mathphys@gmail.com>
+
+ * github #71 (tweaked): Completion/X/Command/_xrandr: Complete
+ providers
+
2021-01-23 Bart Schaefer <schaefer@zsh.org>
* users/26406: Functions/Misc/zargs: preserve caller setopts
diff --git a/Completion/X/Command/_xrandr b/Completion/X/Command/_xrandr
index 67045b33d..6143054aa 100644
--- a/Completion/X/Command/_xrandr
+++ b/Completion/X/Command/_xrandr
@@ -1,6 +1,6 @@
#compdef xrandr
-local curcontext="$curcontext" state line expl
+local curcontext="$curcontext" state line expl state_descr
typeset -A opt_args
_arguments -C \
@@ -47,8 +47,8 @@ _arguments -C \
"*--addmode:output:->outputs:name" \
"*--delmode:output:->outputs:name" \
'--listproviders' \
- '--setprovideroutputsource:provider: :source' \
- '--setprovideroffloadsink:provider: :sink' \
+ '--setprovideroutputsource:provider:->providers:source:->providers' \
+ '--setprovideroffloadsink:provider:->providers:sink:->providers' \
'--listmonitors' \
'--listactivemonitors' \
'--setmonitor:name' \
@@ -75,4 +75,8 @@ case $state in
_wanted modes expl mode compadd \
${(Mun)$(_call_program modes xrandr):#[0-9]##x[0-9]##} && return 0
;;
+ providers)
+ local -a xrandr_providers=(${(f)"$(_call_program providers xrandr --listproviders)"})
+ _wanted xrandr-providers expl $state_descr compadd ${${xrandr_providers}[2,-1]##*:} && return 0
+ ;;
esac