Merge pull request #203 from TimofeyTitovets/master
add completion for xinput and shutdown
This commit is contained in:
		
						commit
						0265542b64
					
				|  | @ -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 "$@" | ||||
|  | @ -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 "$@" | ||||
		Loading…
	
		Reference in New Issue