From bb946bfe42835c75d0f9517f6b72d3d007d30108 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Sat, 29 Dec 2018 17:05:26 +0100 Subject: [PATCH] /etc/skel/.xinitrc.d/grml_keyboard: support /etc/default/keyboard usage Starting with Grml 2018.12 we try to rely on console-setup and keyboard-configuration packages as much as possible. We no longer want to generate nor support file /etc/sysconfig/keyboard any longer (while current grml-lang / grml-setkeyboard / grml-setlang scripts are known to still use it), but we stay backwards compatible with this change. Related to grml/grml-autoconfig#9 and grml/grml#50 --- etc/skel/.xinitrc.d/grml_keyboard | 54 +++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/etc/skel/.xinitrc.d/grml_keyboard b/etc/skel/.xinitrc.d/grml_keyboard index 5bec35e..33331bf 100755 --- a/etc/skel/.xinitrc.d/grml_keyboard +++ b/etc/skel/.xinitrc.d/grml_keyboard @@ -6,26 +6,52 @@ # License: This file is licensed under the GPL v2 or any later version. ################################################################################ -if [ "$XINIT_GRML_KEYBOARD" = "false" ] ; then +if [ "${XINIT_GRML_KEYBOARD}" = "false" ] ; then exit 0 fi # Ctrl+Alt+Backspace killing xserver setxkbmap -option terminate:ctrl_alt_bksp -if ! [ -r /etc/sysconfig/keyboard ] ; then - [ -r $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap || setxkbmap us -else - . /etc/sysconfig/keyboard - if [ "$XKEYBOARD" = "us" ] ; then - [ -r $HOME/.Xmodmap ] && xmodmap $HOME/.Xmodmap - else - if [ -n "$XKEYMODEL" ] ; then - setxkbmap -model "$XKEYMODEL" -layout "$XKEYBOARD" - else - setxkbmap "$XKEYBOARD" - fi - fi +apply_xmodmap_settings() { + if [ -r "${HOME}"/.Xmodmap ] ; then + xmodmap "${HOME}"/.Xmodmap || setxkbmap us + else + setxkbmap us + fi +} + +if [ -r /etc/default/keyboard ] ; then # Grml >=2018.12 + XKBLAYOUT="us" # assume as default + + . /etc/default/keyboard + + if [ "${XKBLAYOUT}" = "us" ] ; then + apply_xmodmap_settings + else + if [ -n "${XKBMODEL}" ] && [ -n "${XKBVARIANT}" ] ; then + setxkbmap -model "${XKEYMODEL}" -variant "${XKBVARIANT}" -layout "${XKBLAYOUT}" + elif [ -n "${XKBMODEL}" ] ; then + setxkbmap -model "${XKEYMODEL}" -layout "${XKBLAYOUT}" + elif [ -n "${XKBVARIANT}" ] ; then + setxkbmap -variant "${XKBVARIANT}" -layout "${XKBLAYOUT}" + else + setxkbmap "${XKBLAYOUT}" + fi + fi +elif [ -r /etc/sysconfig/keyboard ] ; then # older Grml releases + . /etc/sysconfig/keyboard + if [ "${XKEYBOARD}" = "us" ] ; then + apply_xmodmap_settings + else + if [ -n "${XKEYMODEL}" ] ; then + setxkbmap -model "${XKEYMODEL}" -layout "${XKEYBOARD}" + else + setxkbmap "${XKEYBOARD}" + fi + fi +else # last ressort fallback + apply_xmodmap_settings fi ## END OF FILE ################################################################# -- 2.1.4