X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=usr_bin%2Fgrml-lang;h=0b330605f50c9fc65d118dd8b8f0bb97fe70f295;hb=5b0c6b200fe0a76b7a78c984733defdb3120ea6a;hp=69926ea9b08ca074c49ce8fc35c68ace6177fd77;hpb=fe0f27510291462f4729428a9286af0b77446083;p=grml-scripts.git diff --git a/usr_bin/grml-lang b/usr_bin/grml-lang index 69926ea..0b33060 100755 --- a/usr_bin/grml-lang +++ b/usr_bin/grml-lang @@ -1,22 +1,51 @@ -#!/bin/sh +#!/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. -# Latest change: Mon Apr 09 13:04:40 CEST 2007 [mika] ################################################################################ +CONFFILE=/etc/sysconfig/keyboard +PN="$(basename $0)" + usage(){ echo "Usage: $0 " - echo "supported values: at, de, ch, us" + echo "supported values: at, ch, de, dvorak, es, fr, 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 + 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..." @@ -34,6 +63,22 @@ if [ -z "$DISPLAY" ] ;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 @@ -43,8 +88,7 @@ modifying keyboard layout. Adjust \$LANG and \$LC_ALL for setting locales." ; ex case $LANG in *UTF-8) kbd_mode -u ; ;; esac else if [ $# = 0 ] ; then - echo "Usage: $0 " - echo "supported values: at, de, ch, us" + usage else if [ "$1" = "de" ] ; then echo "Loading keymap for Germany..." @@ -58,10 +102,26 @@ else 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." + elif [ "$1" = "fr" ] ; then + echo "Loading keymap fr..." + setxkbmap fr + echo -e "\nDone." else echo "No valid parameter given." echo