# 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 #################################################################