A little annoyance I always run into when configuring a new laptop is getting Gnome Display Manager to use Colemak on the login screen. For some reason, it’s impossible to configure the GDM keyboard layout unless there’s at least 2 users on the system. Otherwise Gnome Settings refuses to show the UI for it. I’m not sure why this weirdly hostile feature towards folks with alternative keyboard layouts on a single-user system exists in Gnome, but here we are. It’s also not something you can configure through the otherwise excellent Login Manager Settings.
Fortunately, it’s fixable with
localectl, by setting the keymap and the X11 keymap (because for some reason GDM looks at the latter). However, when you set the X11 keymap, it’ll by default wipe the VC keymap which is not what we want.
The trick is to pass
--no-convert when invoking
localectl. So what you want is this:
$ sudo localectl set-keymap colemak $ sudo localectl --no-convert set-x11-keymap us "" colemak
Now, when you call
localectl, you should see the following output:
System Locale: LANG=en_GB.UTF-8 VC Keymap: colemak X11 Layout: us X11 Variant: colemak
As always, if you want Colemak in early boot so you can type in your disk decryption password, remember to configure it in
/etc/vconsole.conf and regenerate your initramfs afterwards. After the above
localectl invocations, your
/etc/vconsole.conf should look like:
KEYMAP=colemak XKBLAYOUT=us XKBVARIANT=colemak