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` --- Completion/X/Command/_xrandr | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'Completion/X') 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