You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					75 lines
				
				1.6 KiB
			
		
		
			
		
	
	
					75 lines
				
				1.6 KiB
			|   
											8 years ago
										 | #!/usr/bin/env zsh | ||
|  | 
 | ||
|  | # Switch the keyboard to en-us by default, bepo, or en-dvorak. | ||
|  | 
 | ||
|  | help(){ | ||
|  |     print 'switch-kbd - helper for setxkbmap' | ||
|  |     print ' ' | ||
|  |     print 'Change the keyboard to en-us, fr-bepo, or en-dvorak.' | ||
|  |     print 'Uses setxkbmap, so the change only affects the current' | ||
|  |     print 'session.  This mainly to avoid using a toggle key.' | ||
|  |     print ' ' | ||
|  |     print ' -b           Bepo' | ||
|  |     print ' -d           Dvorak' | ||
|  |     print ' -n           do not execute' | ||
|  |     print ' -h           help text.' | ||
|  |     print ' ' | ||
|  |     print ' The default is to set the keyboard to en-us.' | ||
|  |     exit | ||
|  | } | ||
|  | 
 | ||
|  | layout="-layout us" | ||
|  | variant="" | ||
|  | let "execute = 1" | ||
|  | let "verose = 0" | ||
|  | 
 | ||
|  | # $opt will hold the current option | ||
|  | local opt | ||
|  | while getopts bdnvh opt; do | ||
|  |     # loop continues till options finished | ||
|  |     # see which pattern $opt matches... | ||
|  |     case $opt in | ||
|  |         (b) | ||
|  |             layout="-layout fr" | ||
|  |             variant="-variant bepo" | ||
|  |             ;; | ||
|  | 
 | ||
|  |         (d) | ||
|  |             layout="-layout en" | ||
|  |             variant="-variant dvorak" | ||
|  |             ;; | ||
|  |         (n)  | ||
|  |             let "execute = 0" | ||
|  | 	    ;; | ||
|  |         (v)  | ||
|  |             let "verbose = 1" | ||
|  | 	    ;; | ||
|  |         (h) | ||
|  |             help | ||
|  |             ;; | ||
|  | 	# matches a question mark | ||
|  | 	# (and nothing else, see text) | ||
|  |         (\?) | ||
|  |             print "Bad option:" $* | ||
|  |             print " " | ||
|  |             help | ||
|  |             return 1 | ||
|  |             ;; | ||
|  |     esac | ||
|  | done | ||
|  | (( OPTIND > 1 )) && shift $(( OPTIND - 1 )) | ||
|  | ##print Remaining arguments are: $* | ||
|  | 
 | ||
|  | mycommand='setxkbmap '${layout}' '${variant} | ||
|  | 
 | ||
|  | if [[ ( $verbose -ne 0 ) ]]; then; | ||
|  | 	print "setxkbmap Command:" $mycommand | ||
|  | fi | ||
|  | 
 | ||
|  | if [[ ( $execute -ne 0 ) ]] | ||
|  | then; | ||
|  | 	eval $mycommand | ||
|  | else; | ||
|  |         print "did not execute" | ||
|  | fi |