Merge pull request #203 from TimofeyTitovets/master

add completion for xinput and shutdown
This commit is contained in:
Mario Fernández 2014-04-12 13:07:43 +02:00
commit 0265542b64
2 changed files with 267 additions and 0 deletions

71
src/_shutdown Normal file
View File

@ -0,0 +1,71 @@
#compdef shutdown
# ------------------------------------------------------------------------------
# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for shutdown - Shut down the system
#
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Timofey Titovets <nefelim4ag@gmail.com>
#
# ------------------------------------------------------------------------------
_shutdown(){
local -a _1st_arguments
_1st_arguments=(
"--help:Show help"
"-H:Halt the machine" "--halt:Halt the machine"
"-P:Power-off the machine" "--poweroff:Power-off the machine"
"-r:Reboot the machine" "--reboot:Reboot the machine"
"-h:Equivalent to --poweroff, overridden by --halt"
"-k:Dont halt/power-off/reboot, just send warnings"
"--no-wall:Dont send wall message before halt/power-off/reboot"
"-c:Cancel a pending shutdown"
)
local context state line expl
local -A opt_args
_arguments '*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "shutdown commands" _1st_arguments -V1
return
fi
case "$words[1]" in
*)
_arguments \
':list option:(now +{0,5,10,15,30} hh:mm)'
;;
esac
}
_shutdown "$@"

196
src/_xinput Normal file
View File

@ -0,0 +1,196 @@
#compdef xinput
# ------------------------------------------------------------------------------
# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the zsh-users nor the
# names of its contributors may be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# ------------------------------------------------------------------------------
# Description
# -----------
#
# Completion script for xinput
# TODO: Add property handler
# TODO: Add buttons handler
# ------------------------------------------------------------------------------
# Authors
# -------
#
# * Timofey Titovets <nefelim4ag@gmail.com>
#
# ------------------------------------------------------------------------------
_xinput(){
# list of xinput arguments
local -a _1st_arguments
_1st_arguments=(
'version:show version' '--version:show version'
'help:show help options' '--help:show help options'
get-feedbacks
set-ptr-feedback
set-integer-feedback
get-button-map
set-button-map
set-pointer
'set-mode:change the mode of device' '--set-mode:change the mode of device'
'list:show devices' '--list:show devices'
query-state
test --test
create-master
remove-master
reattach
float
set-cp
test-xi2
map-to-output
list-props
set-int-prop
set-float-prop
set-atom-prop
watch-props
delete-prop
set-prop
'disable:disable the device' '--disable:disable the device'
'enable:enable the device' '--enable:enable the device'
--get-feedbacks
--set-ptr-feedback
--set-integer-feedback
--get-button-map
--set-button-map
--set-pointer
--query-state
--create-master
--remove-master
--reattach
--float
--set-cp
--test-xi2
--map-to-output
--list-props
--set-int-prop
--set-float-prop
--set-atom-prop
--watch-props
--delete-prop
--set-prop
)
local context state line expl
local -A opt_args
_arguments '*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "xinput commands" _1st_arguments -V1
return
fi
_xinput_devices_id=($(xinput list --id-only))
for i in $(xinput list --id-only)
do
_xinput_devices_name[$i]="$(xinput list --name-only $i)"
done
_xinput_devices=( $_xinput_devices_id $_xinput_devices_name )
# xinput arguments handler
case "$words[1]" in
--get-feedbacks|--set-ptr-feedback|--get-button-map|--query-state|--list-props|--watch-props|get-feedbacks|set-ptr-feedback|get-button-map|query-state|list-props|watch-props|--enable|enable|--map-to-output|map-to-output|--disable|disable)
_arguments \
':list option:($_xinput_devices)'
;;
--list|list)
_arguments \
':list option:($_xinput_devices --short --long --name-only --id-only)' \
':list option:(--short --long --name-only --id-only)'
;;
--set-integer-feedback|set-integer-feedback)
_arguments \
':list option:($_xinput_devices)' \
':list option:( feedback )' \
':list option:( $_xinput_devices_id )'
;;
--set-button-map|set-button-map)
_arguments \
':list option:($_xinput_devices)' #map button 1 [map button 2 [...]]
;;
--set-pointer|set-pointer)
_arguments \
':list option:($_xinput_devices)' # [x index y index]
;;
--set-mode|set-mode)
_arguments \
':list option:($_xinput_devices)' \
':list option:(ABSOLUTE RELATIVE)'
;;
--test|test)
_arguments \
':list option:(-proximity $_xinput_devices )' \
':list option:($_xinput_devices)'
;;
--reattach|reattach)
_arguments \
':list option:($_xinput_devices)' \
':list option:(master slave)'
;;
--float|float)
_arguments \
':list option:($_xinput_devices_id)'
;;
--test-xi2|test-xi2)
_arguments \
':list option:($_xinput_devices --root)' \
':list option:($_xinput_devices)'
;;
--delete-prop|delete-prop)
_arguments \
':list option:($_xinput_devices)' #property
;;
--create-master|create-master)
_arguments \
':list option:($_xinput_devices_id)' # [sendCore (dflt:1)] [enable (dflt:1)]
;;
--remove-master|remove-master)
_arguments \
':list option:($_xinput_devices_id)' # [Floating|AttachToMaster (dflt:Floating)] [returnPointer] [returnKeyboard]
;;
# --set-cp|set-cp); window device;;
--set-prop|set-prop)
_arguments \
':list option:($_xinput_devices)' \
':list option:(--type={atom,float,int} --format={8,16,32})' \
':list option:(--type={atom,float,int} --format={8,16,32})' # property val [val ...]
;;
--set-int-prop|set-int-prop)
_arguments \
':list option:($_xinput_devices)' # property format (8, 16, 32) val [val ...]
;;
--set-float-prop|set-float-prop)
_arguments \
':list option:($_xinput_devices)' # property val [val ...]
;;
--set-atom-prop|set-atom-prop)
_arguments \
':list option:($_xinput_devices)' # property val [val ...]
;;
esac
}
_xinput "$@"