-#!/bin/bash
-# Filename: grml-lang
-# Purpose: load specific keyboard layout settings
-# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-CONFFILE=/etc/sysconfig/keyboard
-PN="$(basename $0)"
-
-usage(){
- echo "Usage: $0 <language>"
- echo "supported values: at, ch, de, dvorak, es, jp, us"
-}
-
-setvalue(){
- [ -n "$2" ] || return 1
- # already present in conffile?
- if grep -q ${1} $CONFFILE 2>/dev/null ; then
- sudo sed -i "s#^${1}.*#${1}=${2}#" $CONFFILE
- else
- echo "$1=${2}" | sudo tee -a $CONFFILE >/dev/null
- fi
-}
-
-if [ $# -lt "1" ] ; then
- usage
- exit 1
-fi
-
-[ -d /etc/sysconfig ] || sudo mkdir /etc/sysconfig
-
-
-LANGUAGE="$1"
-
-
-. /etc/grml/language-functions
-
-if [ ! -z "$KEYTABLE" ] ; then
- setvalue KEYTABLE "$KEYTABLE"
-fi
-
-if [ ! -z "XKEYBOARD" ] ; then
- setvalue XKEYBOARD $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" = "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."
- 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..."
- [ -r $HOME/.Xmodmap.german ] && xmodmap $HOME/.Xmodmap.german || setxkbmap de
- 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" = "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...'
- [ -r $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap || setxkbmap us
- echo -e "\nDone."
- elif [ "$1" = "es" ] ; then
- echo "Loading keymap es..."
- setxkbmap es
- 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 #################################################################