Merge branch 'fix-keymap' into 'master'

Fix and simplify keymap configuration

Closes #74

See merge request fdupoux/sysresccd-src!4
This commit is contained in:
Francois Dupoux 2020-02-29 11:07:31 +00:00
commit 21f20fca19
4 changed files with 12 additions and 74 deletions

View file

@ -1,72 +1,7 @@
#!/bin/bash
if [ -f /etc/sysconfig/keyboard ]
then
if grep -q XKEYBOARD /etc/sysconfig/keyboard
then
KEYMAP=$(cat /etc/sysconfig/keyboard | grep XKEYBOARD | cut -d '=' -f2)
# The keymap must be listed in the following file:
# /usr/share/X11/xkb/rules/xorg.lst
[ $KEYMAP = "azerty" -o $KEYMAP = "01" ] && KEYMAP="azerty"
[ $KEYMAP = "be" -o $KEYMAP = "02" ] && KEYMAP="be"
[ $KEYMAP = "bg" -o $KEYMAP = "03" ] && KEYMAP="bg"
[ $KEYMAP = "br-a" -o $KEYMAP = "04" ] && KEYMAP="br"
[ $KEYMAP = "br-l" -o $KEYMAP = "05" ] && KEYMAP="br"
[ $KEYMAP = "by" -o $KEYMAP = "06" ] && KEYMAP="by"
[ $KEYMAP = "cf" -o $KEYMAP = "07" ] && KEYMAP="cf"
[ $KEYMAP = "croat" -o $KEYMAP = "08" ] && KEYMAP="hr"
[ $KEYMAP = "cz" -o $KEYMAP = "09" ] && KEYMAP="cz"
[ $KEYMAP = "de" -o $KEYMAP = "10" ] && KEYMAP="de"
[ $KEYMAP = "dk" -o $KEYMAP = "11" ] && KEYMAP="dk"
[ $KEYMAP = "dvorak" -o $KEYMAP = "12" ] && KEYMAP="dvorak"
[ $KEYMAP = "es" -o $KEYMAP = "13" ] && KEYMAP="es"
[ $KEYMAP = "et" -o $KEYMAP = "14" ] && KEYMAP="et"
[ $KEYMAP = "fi" -o $KEYMAP = "15" ] && KEYMAP="fi"
[ $KEYMAP = "fr" -o $KEYMAP = "16" ] && KEYMAP="fr"
[ $KEYMAP = "gr" -o $KEYMAP = "17" ] && KEYMAP="gr"
[ $KEYMAP = "hu" -o $KEYMAP = "18" ] && KEYMAP="hu"
[ $KEYMAP = "il" -o $KEYMAP = "19" ] && KEYMAP="il"
[ $KEYMAP = "is" -o $KEYMAP = "20" ] && KEYMAP="is"
[ $KEYMAP = "it" -o $KEYMAP = "21" ] && KEYMAP="it"
[ $KEYMAP = "jp" -o $KEYMAP = "22" ] && KEYMAP="jp"
[ $KEYMAP = "la" -o $KEYMAP = "23" ] && KEYMAP="latam"
[ $KEYMAP = "lt" -o $KEYMAP = "24" ] && KEYMAP="lt"
[ $KEYMAP = "mk" -o $KEYMAP = "25" ] && KEYMAP="mk"
[ $KEYMAP = "nl" -o $KEYMAP = "26" ] && KEYMAP="nl"
[ $KEYMAP = "no" -o $KEYMAP = "27" ] && KEYMAP="no"
[ $KEYMAP = "pl" -o $KEYMAP = "28" ] && KEYMAP="pl"
[ $KEYMAP = "pt" -o $KEYMAP = "29" ] && KEYMAP="pt"
[ $KEYMAP = "ro" -o $KEYMAP = "30" ] && KEYMAP="ro"
[ $KEYMAP = "ru" -o $KEYMAP = "31" ] && KEYMAP="us,ru(winkeys) -option grp:ctrl_shift_toggle,lctrl_shift_toggle"
[ $KEYMAP = "se" -o $KEYMAP = "32" ] && KEYMAP="se"
[ $KEYMAP = "sg" -o $KEYMAP = "33" ] && KEYMAP="sg"
[ $KEYMAP = "sk-y" -o $KEYMAP = "34" ] && KEYMAP="sk"
[ $KEYMAP = "sk-z" -o $KEYMAP = "35" ] && KEYMAP="sk"
[ $KEYMAP = "slovene" -o $KEYMAP = "36" ] && KEYMAP="si"
[ $KEYMAP = "trf" -o $KEYMAP = "37" ] && KEYMAP="tr"
[ $KEYMAP = "trq" -o $KEYMAP = "38" ] && KEYMAP="tr"
[ $KEYMAP = "ua" -o $KEYMAP = "39" ] && KEYMAP="ua"
[ $KEYMAP = "uk" -o $KEYMAP = "40" ] && KEYMAP="gb"
[ $KEYMAP = "us" -o $KEYMAP = "41" ] && KEYMAP="us"
[ $KEYMAP = "wangbe" -o $KEYMAP = "42" ] && KEYMAP="wangbe"
[ $KEYMAP = "fr_CH" -o $KEYMAP = "43" ] && KEYMAP="ch -variant fr"
[ $KEYMAP = "speakup" -o $KEYMAP = "44" ] && KEYMAP="us"
[ $KEYMAP = "cz" -o $KEYMAP = "45" ] && KEYMAP="cz"
[ $KEYMAP = "de_CH" -o $KEYMAP = "46" ] && KEYMAP="ch"
[ $KEYMAP = "sg-lat1" -o $KEYMAP = "47" ] && KEYMAP="ch"
[ $KEYMAP = "fr-bepo" -o $KEYMAP = "48" ] && KEYMAP="fr bepo"
[ $KEYMAP = "colemak" -o $KEYMAP = "49" ] && KEYMAP="us -variant colemak"
[ $KEYMAP = "de_neo" -o $KEYMAP = "50" ] && KEYMAP="de -variant neo"
touch /var/log/keymap.log
echo "setxkbmap -layout $KEYMAP" >> /var/log/keymap.log
setxkbmap -layout $KEYMAP >> /var/log/keymap.log 2>&1
fi
fi
[ -f /usr/bin/xset ] && /usr/bin/xset s off >/dev/null 2>&1 &
[ -f /usr/bin/xset ] && /usr/bin/xset r >/dev/null 2>&1 &
[ -x /usr/bin/xset ] && /usr/bin/xset s off >/dev/null 2>&1 &
[ -x /usr/bin/xset ] && /usr/bin/xset r >/dev/null 2>&1 &
export $(dbus-launch)
exec /usr/bin/startxfce4

View file

@ -10,9 +10,7 @@ do
setkmap\=*)
echo "Found option '${curopt}' on the boot command line"
SETKMAP=$(echo "${curopt}" | cut -f2 -d=)
/sbin/loadkeys ${SETKMAP}
mkdir -p /etc/sysconfig
echo "XKEYBOARD=${SETKMAP}" > /etc/sysconfig/keyboard
localectl set-keymap ${SETKMAP}
;;
# Set the system root password from a clear password
rootpass\=*)

View file

@ -1,7 +1,8 @@
[Unit]
Description=SystemRescueCd Initialization
Before=sshd.service
Before=sshd.service getty-pre.target
After=network.target
Wants=getty-pre.target
[Service]
Type=oneshot

View file

@ -14,6 +14,10 @@ else
exec 3>&-
fi
/sbin/loadkeys ${keymap}
mkdir -p /etc/sysconfig
echo "XKEYBOARD=${keymap}" > /etc/sysconfig/keyboard
localectl set-keymap ${keymap}
if [[ $DISPLAY ]] && [[ -r /etc/X11/xorg.conf.d/00-keyboard.conf ]]; then
# X11 is already running
x11keymap=$(awk '/^\s*Option "XkbLayout"/ { print $3 }' /etc/X11/xorg.conf.d/00-keyboard.conf)
setxkbmap -layout ${x11keymap}
fi