From: gi1242+zsh@gmail.com
To: zsh-workers@zsh.org
Subject: [patch] Completion for _deborphan and _xrandr
Date: Sun, 15 Oct 2017 14:59:32 -0400 [thread overview]
Message-ID: <20171015185931.ano4dq3c5tevu5jf@andrew.cmu.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 483 bytes --]
Hi There,
I wrote a rudimentary completion script for deborphan (which probably
belongs with the Debian completion commands).
I also fixed the xrandr completion to separate outputs into two groups
(connected and disconnected). Patch, and whole file attached. If there
is a preferred way to submit this (e.g. by forking a git repository) let
me know and I would be happy to do so.
Best,
Gautam
--
Microsoft broke Volkswagen's world record: Volkswagen only made 22
million bugs!
[-- Attachment #2: _xrandr.patch --]
[-- Type: text/x-diff, Size: 726 bytes --]
diff --git a/Completion/X/Command/_xrandr b/Completion/X/Command/_xrandr
index b0851569e..26d8cd082 100644
--- a/Completion/X/Command/_xrandr
+++ b/Completion/X/Command/_xrandr
@@ -58,8 +58,11 @@ case $state in
esac
;;
outputs)
- _wanted outputs expl output compadd \
- ${(uo)${(M)${(f)"$(_call_program outputs xrandr)"}:#* connected*}%% *} && return 0
+ local -a xrandr_output=(${(f)"$(_call_program outputs xrandr)"})
+ _alternative \
+ 'connected:connected outputs:('${(j: :)${(uo)${(M)xrandr_output:#* connected*}%% *}}')' \
+ 'disconnected:disconnected outputs:('${(j: :)${(uo)${(M)xrandr_output:#* disconnected*}%% *}}')' \
+ && return 0
;;
modes)
_wanted modes expl mode compadd \
[-- Attachment #3: _deborphan --]
[-- Type: text/plain, Size: 2298 bytes --]
#compdef deborphan
local keep=/var/lib/deborphan/keep
_arguments : \
{--help,-h}'[help]' \
{--status-file,-f}'[statusfile]:file:_files' \
{--version,-v}'[version]' \
{--show-deps,-d}'[show dependencies for packages that have them]' \
{--show-priority,-P}'[show priority of packages found]' \
{--show-section,-s}'[show the sections the packages are in]' \
--no-show-section'[do not show sections]' \
{--show-size,-z}'[show installed size of packages found]' \
{--all-packages,-a}'[compare all packages, not just libs]' \
{--exclude,-e}'[work as if packages in LIST were not installed]:LIST:' \
{--force-hold,-H}'[Ignore hold flags.]' \
{--nice-mode,-n}'[Disable checks for "recommends" and "suggests".]' \
--ignore-recommends'[Disable checks for recommends.]' \
--ignore-suggests'[Disable checks for "suggests".]' \
{--priority,-p}'[PRIOR Select only packages with priority >= PRIOR.]:PRIOR:' \
--find-config'[Find "orphaned" configuration files.]' \
--libdevel'[Search in libdevel in addition to libs and oldlibs.]' \
{--add-keep,-A}'[PKGS.. Never report PKGS.]:*:package:_deb_packages installed' \
{--keep-file,-k}'[Use FILE to get/store info about kept packages.]:file:_files' \
{--list-keep,-L}'[List the packages that are never reported.]' \
{--del-keep,-R}"[PKGS.. Remove PKGS from the 'keep' file.]:*:package:_values package $(< $keep)" \
{--zero-keep,-Z}'[Remove all packages from the "keep" file.]' \
--guess-common'[Try to report common packages.]' \
--guess-data'[Try to report data packages.]' \
--guess-debug'[Try to report debugging libraries.]' \
--guess-dev'[Try to report development packages.]' \
--guess-doc'[Try to report documentation packages.]' \
--guess-dummy'[Try to report dummy packages.]' \
--guess-kernel'[Try to report kernel modules.]' \
--guess-interpreters'[Try to report interpreter libraries.]' \
--guess-mono'[Try to report mono libraries.]' \
--guess-perl'[Try to report perl libraries.]' \
--guess-pike'[Try to report pike libraries.]' \
--guess-python'[Try to report python libraries.]' \
--guess-ruby'[Try to report ruby libraries.]' \
--guess-section'[Try to report libraries in wrong sections.]' \
--guess-all'[Try all of the above.]' \
--guess-only'[Use --guess options only.]'
[-- Attachment #4: _xrandr --]
[-- Type: text/plain, Size: 2464 bytes --]
#compdef xrandr
local curcontext="$curcontext" state line expl
typeset -A opt_args
_arguments -C \
'(-d -display)'{-d,-display}':X display:_x_display' \
'-help[display help]' \
'(-o --orientation)'{-o,--orientation}':rotation:(normal inverted left right 0 1 2 3)' \
'(-q --query)'{-q,--query}'[display current state]' \
'(-s --size)'{-s,--size}':size:' \
'(-r --rate --refresh)'{*-r,*--rate,*--refresh}':target refresh rate:' \
'(-v --version)'{-v,--version}'[display version]' \
'-x[reflect across X axis]' \
'-y[reflect across Y axis]' \
'--screen:X screen number' \
'--verbose[be more verbose]' \
'--dryrun' \
'--nograb' \
'(--prop --properties)'{--prop,--properties}'[display the contents of properties for each output]' \
'--fb:size:' \
'--fbmm:size:' \
'--dpi:dpi:' \
"*--output:output to reconfigure:->outputs" \
'*--auto' \
"*--mode:mode:->modes" \
'*--preferred' \
'*--pos:position:' \
'*--reflect:axes:(normal x y xy)' \
'*--rotate:rotation:(normal inverted left right)' \
"*--left-of:relative position to:->outputs" \
"*--right-of:relative position to:->outputs" \
"*--above:relative position to:->outputs" \
"*--below:relative position to:->outputs" \
"*--same-as:relative position to:->outputs" \
'*--set:property:(Backlight scaling\ mode):value:->value' \
'*--scale:output scaling:' \
'*--transform:transformation matrix:' \
'*--off[disable the output]' \
'*--crtc:crtc to use:' \
'*--panning:panning:' \
'*--gamma:r\:g\:b:' \
'*--primary' \
'--noprimary' \
'*--newmode:name: :clock MHz: :hdisp: :hsync-start: :hsync-end: :htotal: :vdisp: :vsync-start: :vsync-end: :vtotal:' \
'*--rmmode:Mode name:' \
"*--addmode:output:->outputs:name" \
"*--delmode:output:->outputs:name" \
&& return 0
case $state in
value)
case $words[CURRENT-1] in
(scaling*" mode")
_description value expl "output property 'scaling mode'"
compadd "$@" "$expl[@]" None Full Center Full\ aspect && return 0
;;
esac
;;
outputs)
local -a xrandr_output=(${(f)"$(_call_program outputs xrandr)"})
_alternative \
'connected:connected outputs:('${(j: :)${(uo)${(M)xrandr_output:#* connected*}%% *}}')' \
'disconnected:disconnected outputs:('${(j: :)${(uo)${(M)xrandr_output:#* disconnected*}%% *}}')' \
&& return 0
;;
modes)
_wanted modes expl mode compadd \
${(Mun)$(_call_program modes xrandr):#[0-9]##x[0-9]##} && return 0
;;
esac
next reply other threads:[~2017-10-15 18:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-15 18:59 gi1242+zsh [this message]
2017-10-15 21:00 ` Oliver Kiddle
2017-10-16 0:53 ` gi1242+zsh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171015185931.ano4dq3c5tevu5jf@andrew.cmu.edu \
--to=gi1242+zsh@gmail.com \
--cc=zsh-workers@zsh.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).