3 # Purpose: load specific keyboard layout settings
4 # Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports: see http://grml.org/bugs/
6 # License: This file is licensed under the GPL v2.
7 ################################################################################
9 CONFFILE=/etc/sysconfig/keyboard
13 echo "Usage: $0 <language>"
14 echo "supported values: at, ch, de, dvorak, es, fr, jp, us"
18 [ -n "$2" ] || return 1
19 # already present in conffile?
20 if grep -q ${1} $CONFFILE 2>/dev/null ; then
21 sudo sed -i "s#^${1}.*#${1}=${2}#" $CONFFILE
23 echo "$1=${2}" | sudo tee -a $CONFFILE >/dev/null
27 if [ $# -lt "1" ] ; then
32 [ -d /etc/sysconfig ] || sudo mkdir /etc/sysconfig
38 . /etc/grml/language-functions
40 if [ ! -z "$KEYTABLE" ] ; then
41 setvalue KEYTABLE "$KEYTABLE"
44 if [ ! -z "XKEYBOARD" ] ; then
45 setvalue XKEYBOARD $XKEYBOARD
49 if [ -z "$DISPLAY" ] ;then
50 if [ "$1" = "de" ] ; then
51 echo "Loading keymap for Germany..."
52 sudo loadkeys i386/qwertz/de-latin1-nodeadkeys.kmap.gz
54 elif [ "$1" = "at" ] ; then
55 echo "Loading keymap for Austria..."
56 sudo loadkeys i386/qwertz/de-latin1-nodeadkeys.kmap.gz
58 elif [ "$1" = "ch" ] ; then
59 echo "Loading keymap for Switzerland..."
60 sudo loadkeys i386/qwertz/sg-latin1.kmap.gz
62 elif [ "$1" = "us" ] ; then
63 echo 'Loading keymap us...'
64 sudo loadkeys i386/qwerty/us-latin1.kmap.gz
66 elif [ "$1" = "dvorak" ] ; then
67 echo 'Loading keymap dvorak...'
70 elif [ "$1" = "jp" ] ; then
71 echo 'Loading keymap jp...'
72 sudo loadkeys i386/qwerty/jp106.kmap.gz
74 elif [ "$1" = "es" ] ; then
75 echo 'Loading keymap es...'
76 sudo loadkeys i386/qwerty/es.kmap.gz
78 elif [ "$1" = "fr" ] ; then
79 echo 'Loading keymap fr...'
80 sudo loadkeys i386/azerty/fr.kmap.gz
82 else echo "No valid parameter given.
84 Notice: Use loadkeys on console and setxkbmap when running X for
85 modifying keyboard layout. Adjust \$LANG and \$LC_ALL for setting locales." ; exit 1
87 # switch to unicode mode on console
88 case $LANG in *UTF-8) kbd_mode -u ; ;; esac
93 if [ "$1" = "de" ] ; then
94 echo "Loading keymap for Germany..."
95 [ -r $HOME/.Xmodmap.german ] && xmodmap $HOME/.Xmodmap.german || setxkbmap de
97 elif [ "$1" = "at" ] ; then
98 echo "Loading keymap for Austria..."
101 elif [ "$1" = "ch" ] ; then
102 echo "Loading keymap for Switzerland..."
105 elif [ "$1" = "jp" ] ; then
106 echo "Loading keymap for Japan..."
107 setxkbmap -model jp106 -layout jp
109 elif [ "$1" = "dvorak" ] ; then
110 echo "Loading keymap dvorak..."
113 elif [ "$1" = "us" ] ; then
114 echo 'Loading keymap us...'
115 [ -r $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap || setxkbmap us
117 elif [ "$1" = "es" ] ; then
118 echo "Loading keymap es..."
121 elif [ "$1" = "fr" ] ; then
122 echo "Loading keymap fr..."
126 echo "No valid parameter given."
130 echo "Notice: Use loadkeys on console and setxkbmap when running X for
131 modifying keyboard layout. Adjust \$LANG and \$LC_ALL for setting locales." ; exit 1
136 ## END OF FILE #################################################################