#!/bin/bash # Filename: grml-lang # Purpose: load specific keyboard layout settings # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. ################################################################################ CONFFILE=/etc/default/keyboard PN="$(basename $0)" usage(){ echo "Usage: $0 " echo "supported values: at, ch, de, dvorak, es, fr, it, jp, us" } setvalue(){ [ -n "$2" ] || return 1 sudo sed -i "s#^${1}=.*#${1}=\"${2}\"#" "${CONFFILE}" } if [ $# -lt "1" ] ; then usage >&2 exit 1 fi LANGUAGE="$1" . /etc/grml/language-functions if [ -n "$XKEYBOARD" ] ; then setvalue XKBLAYOUT "$XKEYBOARD" fi if [ -z "$DISPLAY" ] ;then if [ "$1" = "de" ] ; then echo "Loading keymap for Germany..." sudo loadkeys i386/qwertz/de-latin1-nodeadkeys.kmap.gz echo -e "\nDone." elif [ "$1" = "at" ] ; then echo "Loading keymap for Austria..." sudo loadkeys i386/qwertz/de-latin1-nodeadkeys.kmap.gz echo -e "\nDone." elif [ "$1" = "ch" ] ; then echo "Loading keymap for Switzerland..." sudo loadkeys i386/qwertz/sg-latin1.kmap.gz echo -e "\nDone." elif [ "$1" = "it" ] ; then echo "Loading keymap for Italy..." sudo loadkeys i386/qwerty/it.kmap.gz echo -e "\nDone." elif [ "$1" = "us" ] ; then echo 'Loading keymap us...' sudo loadkeys i386/qwerty/us-latin1.kmap.gz echo -e "\nDone." elif [ "$1" = "dvorak" ] ; then echo 'Loading keymap dvorak...' sudo loadkeys dvorak echo -e "\nDone." elif [ "$1" = "jp" ] ; then echo 'Loading keymap jp...' sudo loadkeys i386/qwerty/jp106.kmap.gz echo -e "\nDone." elif [ "$1" = "es" ] ; then echo 'Loading keymap es...' sudo loadkeys i386/qwerty/es.kmap.gz echo -e "\nDone." elif [ "$1" = "fr" ] ; then echo 'Loading keymap fr...' sudo loadkeys i386/azerty/fr.kmap.gz echo -e "\nDone." else echo "No valid parameter given. Notice: Use loadkeys on console and setxkbmap when running X for modifying keyboard layout. Adjust \$LANG and \$LC_ALL for setting locales." ; exit 1 fi # switch to unicode mode on console case $LANG in *UTF-8) kbd_mode -u ; ;; esac else if [ $# = 0 ] ; then usage else if [ "$1" = "de" ] ; then echo "Loading keymap for Germany..." if [ -r "${HOME}"/.Xmodmap.german ] ; then xmodmap "${HOME}"/.Xmodmap.german || setxkbmap de else setxkbmap de fi echo -e "\nDone." elif [ "$1" = "at" ] ; then echo "Loading keymap for Austria..." setxkbmap de echo -e "\nDone." elif [ "$1" = "ch" ] ; then echo "Loading keymap for Switzerland..." setxkbmap ch echo -e "\nDone." elif [ "$1" = "it" ] ; then echo "Loading keymap for Italy..." setxkbmap it echo -e "\nDone." elif [ "$1" = "jp" ] ; then echo "Loading keymap for Japan..." setxkbmap -model jp106 -layout jp echo -e "\nDone." elif [ "$1" = "dvorak" ] ; then echo "Loading keymap dvorak..." setxkbmap dvorak echo -e "\nDone." elif [ "$1" = "us" ] ; then echo 'Loading keymap us...' if [ -r "${HOME}"/.Xmodmap ] ; then xmodmap "${HOME}"/.Xmodmap || setxkbmap us else setxkbmap us fi echo -e "\nDone." elif [ "$1" = "es" ] ; then echo "Loading keymap es..." setxkbmap es echo -e "\nDone." elif [ "$1" = "fr" ] ; then echo "Loading keymap fr..." setxkbmap fr echo -e "\nDone." else echo "No valid parameter given." echo usage echo echo "Notice: Use loadkeys on console and setxkbmap when running X for modifying keyboard layout. Adjust \$LANG and \$LC_ALL for setting locales." ; exit 1 fi fi fi ## END OF FILE #################################################################