Keyboard Layout Configuration For Encryption Key, Virtual Console And Xorg
Wed, Jun 20, 2018 16:31 CEST
Tags: Keyboard, Xorg, Virtual Console
This post is about everything you ever wanted to ask about keyboard layout misconfiguration.
My keyboard layout is not setup for Xorg
Setup your keymap using setxkbmap
when launching X
, for instance in .xprofile
# ~/.xprofile
setxkbmap be
setxkbmap -option caps:swapescape
A more robust solution (wireless keyboard plug-n-play …) is to run the following
localectl --no-convert set-x11-keymap be '' '' caps:swapescape
It will create a file located at /etc/X11/xorg.conf.d/00-keyboard.conf
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "be"
Option "XkbOptions" "caps:swapescape"
EndSection
The option --no-convert
inhibits the default behaviour of localectl
which
consists in trying to match the vconsole
keymap configuration with the X11
keymap
configuration. This default behaviour should work well with vendor keymaps but
is not needed if you do a manual setup of the virtual console
(see #something)
and is unlikely to work for custom ones
(see #i_want_my_own_keymap).
My keyboard layout is not setup for the virtual console
Write your chosen keymap in /etc/vconsole.conf
# /etc/vconsole.conf
KEYMAP=be-latin1
My keyboard layout is not setup for the encryption key
Put the keymap
hook before the keyboard
hook in /etc/mkinitcpio.conf
# /etc/mkinitcpio.conf
...
HOOKS="base udev autodetect modconf block keymap keyboard encrypt filesystems fsck"
...
I want my own keymap
Create your own keymap directory
mkdir -p /usr/local/share/kbd/keymaps
cd /usr/local/share/kbd/keymaps
Copy an existing keymap you want to customize
cp /usr/share/kbd/keymaps/i386/qwerty/us.map.gz personal.map.gz
gunzip personal.map.gz
Edit /usr/local/share/kbd/keymaps/personal.map
Point to it in /etc/vconsole.conf
# /etc/vconsole.conf
KEYMAP=/usr/local/share/kbd/keymaps/personal.map
See also: