X-Git-Url: http://git.grml.org/?p=grml-scripts.git;a=blobdiff_plain;f=usr_bin%2Fgrml-lang;h=52b81a05f779475e7f39b88ba26e54eb2df83131;hp=9d6992912fb6db08f3906569d88e01b5358a4ac3;hb=HEAD;hpb=7fdef6630fa17a57c8bbb8f0f222ebfed79bfd15 diff --git a/usr_bin/grml-lang b/usr_bin/grml-lang index 9d69929..52b81a0 100755 --- a/usr_bin/grml-lang +++ b/usr_bin/grml-lang @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Filename: grml-lang # Purpose: load specific keyboard layout settings # Authors: grml-team (grml.org), (c) Michael Prokop @@ -6,14 +6,31 @@ # 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, jp, us" + echo "Usage: ${PN} " + 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 + usage >&2 + exit 1 +fi + +LANGUAGE="$1" + +# shellcheck disable=SC1091 +. /etc/grml/language-functions + +if [ -n "$XKEYBOARD" ] ; then + setvalue XKBLAYOUT "$XKEYBOARD" fi if [ -z "$DISPLAY" ] ;then @@ -29,6 +46,10 @@ if [ -z "$DISPLAY" ] ;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 @@ -45,6 +66,10 @@ if [ -z "$DISPLAY" ] ;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 @@ -58,7 +83,11 @@ else else 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 echo "Loading keymap for Austria..." @@ -68,6 +97,10 @@ else 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 @@ -78,12 +111,20 @@ else 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." echo