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
#!/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
|