X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=usr_bin%2Fgrml-lang;h=0e774ae32c4760a1a13a26e04f864b2e7d21df19;hb=12b3ac5b42b404e8f6b4d70fb9530b82213118f4;hp=68c8a4d33afde8701e7a5e320b928f6bbb396660;hpb=e720deae78f1eda5e6f62629606c194f16796762;p=grml-scripts.git diff --git a/usr_bin/grml-lang b/usr_bin/grml-lang index 68c8a4d..0e774ae 100755 --- a/usr_bin/grml-lang +++ b/usr_bin/grml-lang @@ -1,65 +1,128 @@ -#!/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: Fri Apr 21 02:02:54 CEST 2006 [mika] ################################################################################ +CONFFILE=/etc/default/keyboard +PN="$(basename $0)" + usage(){ echo "Usage: $0 " - echo "supported values: at, de, ch, us" + 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 - exit -1 +if [ $# -lt "1" ] ; then + usage >&2 + exit 1 fi -if [[ $DISPLAY == "" ]] ;then - if [[ "$1" == "de" ]] ; then +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 + 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 + elif [ "$1" = "ch" ] ; then echo "Loading keymap for Switzerland..." sudo loadkeys i386/qwertz/sg-latin1.kmap.gz echo -e "\nDone." - elif [[ "$1" == "us" ]] ; then + 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 /etc/console/boottime.kmap.gz 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 - echo "Usage: $0 " - echo "supported values: at, de, ch, us" + if [ $# = 0 ] ; then + usage else - if [[ "$1" == "de" ]] ; then + if [ "$1" = "de" ] ; then echo "Loading keymap for Germany..." - [ -r $HOME/.Xmodmap.german ] && xmodmap $HOME/.Xmodmap.german || setxkbmap de + if [ -r "${HOME}"/.Xmodmap.german ] ; then + xmodmap "${HOME}"/.Xmodmap.german || setxkbmap de + else + setxkbmap de + fi echo -e "\nDone." - elif [[ "$1" == "at" ]] ; then + elif [ "$1" = "at" ] ; then echo "Loading keymap for Austria..." setxkbmap de echo -e "\nDone." - elif [[ "$1" == "ch" ]] ; then + elif [ "$1" = "ch" ] ; then echo "Loading keymap for Switzerland..." setxkbmap ch echo -e "\nDone." - elif [[ "$1" == "us" ]] ; then + 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...' - [ -r $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap || setxkbmap 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."