From 07765d590159f180a14af741dbe5639392093f0b Mon Sep 17 00:00:00 2001 From: Paul Seyfert Date: Thu, 14 Jan 2021 23:34:57 +0100 Subject: github #71: _xrandr: Complete providers * complete `xrandr --setprovideroutputsource` by calling `xrandr --listproviders` --- ChangeLog | 5 +++++ Completion/X/Command/_xrandr | 10 +++++++--- 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 + + * github #71 (tweaked): Completion/X/Command/_xrandr: Complete + providers + 2021-01-23 Bart Schaefer * 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 -- cgit 1.4.1