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