- # duplicate of previous code to make sure /etc/grml/language-functions
- # does not overwrite our values....
- # now allow keyboard override by boot commandline for later use:
- KKEYBOARD="$(getbootparam 'keyboard' 2>>$DEBUG)"
- [ -n "$KKEYBOARD" ] && KEYTABLE="$KKEYBOARD"
- # notce: de/at is a bad choice, so take de-latin1-nodeadkeys instead:
- [[ "$KKEYBOARD" == 'de' ]] && KEYTABLE=de-latin1-nodeadkeys
- [[ "$KKEYBOARD" == 'at' ]] && KEYTABLE=de-latin1-nodeadkeys
-
- # write keyboard related variables to file for later use
- [ -d /etc/sysconfig ] || mkdir /etc/sysconfig
- if ! [ -e /etc/sysconfig/keyboard ] ; then
- echo "KEYTABLE=\"$KEYTABLE\"" > /etc/sysconfig/keyboard
- echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/keyboard
- echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/keyboard
- echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/keyboard
- fi
- fi
+ if $SYSTEMD ; then
+ local KEYBOARD
+ KEYBOARD="$(getbootparam 'keyboard' 2>>$DEBUG)"
+ [ -n "$KEYBOARD" ] || KEYBOARD="$LANGUAGE"
+ # "symbols/en" doesn't exist, so rewrite to "us"
+ [[ "$KEYBOARD" == 'en' ]] && KEYBOARD="us"
+
+ if [ -r /etc/default/keyboard ] ; then
+ sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$KEYBOARD\"/" /etc/default/keyboard
+
+ case "$KEYBOARD" in
+ de|at)
+ sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"nodeadkeys\"/" /etc/default/keyboard
+ ;;
+ esac
+
+ fi
+ service_wrapper console-setup restart >>$DEBUG 2>&1 ; eend $?
+ else # not running systemd, keeing for backwards compatibility:
+ # configure keyboard layout, read in already set values first:
+ [ -r /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard
+
+ # now allow keyboard override by boot commandline for later use:
+ KKEYBOARD="$(getbootparam 'keyboard' 2>>$DEBUG)"
+ [ -n "$KKEYBOARD" ] && KEYTABLE="$KKEYBOARD"
+ # notce: de/at is a bad choice, so take de-latin1-nodeadkeys instead:
+ [[ "$KKEYBOARD" == 'de' ]] && KEYTABLE=de-latin1-nodeadkeys
+ [[ "$KKEYBOARD" == 'at' ]] && KEYTABLE=de-latin1-nodeadkeys
+
+ # modify /etc/sysconfig/keyboard only in live-cd mode:
+ if [ -z "$INSTALLED" ] ; then
+
+ local LANGUAGE="$BOOT_LANGUAGE"
+ . /etc/grml/language-functions
+ # allow setting xkeyboard explicitly different than console keyboard
+ KXKEYBOARD="$(getbootparam 'xkeyboard' 2>>$DEBUG)"
+ if [ -n "$KXKEYBOARD" ]; then
+ XKEYBOARD="$KXKEYBOARD"
+ KDEKEYBOARD="$KXKEYBOARD"
+ elif [ -n "$KKEYBOARD" ]; then
+ XKEYBOARD="$KKEYBOARD"
+ KDEKEYBOARD="$KKEYBOARD"
+ fi
+
+ # duplicate of previous code to make sure /etc/grml/language-functions
+ # does not overwrite our values....
+ # now allow keyboard override by boot commandline for later use:
+ KKEYBOARD="$(getbootparam 'keyboard' 2>>$DEBUG)"
+ [ -n "$KKEYBOARD" ] && KEYTABLE="$KKEYBOARD"
+ # notce: de/at is a bad choice, so take de-latin1-nodeadkeys instead:
+ [[ "$KKEYBOARD" == 'de' ]] && KEYTABLE=de-latin1-nodeadkeys
+ [[ "$KKEYBOARD" == 'at' ]] && KEYTABLE=de-latin1-nodeadkeys
+
+ # write keyboard related variables to file for later use
+ [ -d /etc/sysconfig ] || mkdir /etc/sysconfig
+ if ! [ -e /etc/sysconfig/keyboard ] ; then
+ echo "KEYTABLE=\"$KEYTABLE\"" > /etc/sysconfig/keyboard
+ echo "XKEYBOARD=\"$XKEYBOARD\"" >> /etc/sysconfig/keyboard
+ echo "KDEKEYBOARD=\"$KDEKEYBOARD\"" >> /etc/sysconfig/keyboard
+ echo "KDEKEYBOARDS=\"$KDEKEYBOARDS\"" >> /etc/sysconfig/keyboard
+ fi
+ fi