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
							 |