X-Git-Url: http://git.grml.org/?a=blobdiff_plain;ds=sidebyside;f=etc%2Fskel%2F.xinitrc.d%2Fgrml_keyboard;fp=etc%2Fskel%2F.xinitrc.d%2Fgrml_keyboard;h=33331bf7117fa398aa24c8a3e7bd1545d41197f1;hb=bb946bfe42835c75d0f9517f6b72d3d007d30108;hp=5bec35e06a8b1d876f05d2a5974638e5bc54c29d;hpb=f8fb43ab93ca78b1aa8bb004aced5d70f0f558e0;p=grml-desktop.git 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 #################################################################