GNU bug report logs - #25453
Inconsistent keyboard layout affecting encrypted root

Previous Next

Package: guix;

Reported by: Christopher Baines <mail <at> cbaines.net>

Date: Sun, 15 Jan 2017 07:03:01 UTC

Severity: important

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #20 received at 25453 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-devel <at> gnu.org
Cc: 25453 <at> debbugs.gnu.org
Subject: Keyboard layout configuration
Date: Sun, 13 Jan 2019 22:36:21 +0100
Hello Joshua,

Thanks a lot for working on this!  I’d really like 1.0 to provide a
reasonable way to configure the keyboard layout once and for all.

I suggest we continue the discussion in the context of
<https://issues.guix.info/issue/25453>.

Joshua Branson <jbranso <at> dismail.de> skribis:

> I believe I have identified conceptually how to do some of these things.
>
> This project breaks down into four areas
>
> Getting the layout to work with:
>
> 1) grub
> 2) linux's initrd
> 3) console
> 4) X/wayland's layout
> 5) How to do the above

There’s also the question of how to “translate” keyboard layouts among
all of these.  Debian has a mechanism whereby you specify the layout in
a single place, and it then does the right thing for GRUB, Linux, X, and
so on.  I forgot how it works, but we should aim for something like
that.

> 1)  I was not able to get grub to generate an alternate keyboard layout.
>
> #+BEGIN_SRC sh :results output :exports both
> sudo grub-kbdcomp -o /boot/grub/dvorak.gkb dvorak
> #+END_SRC
>
> #+RESULTS:
> : /home/joshua/.guix-profile/bin/grub-kbdcomp: line 76: ckbcomp: command not found
> : ERROR: no valid keyboard layout found. Check the input.
>
> Do we have ckbcomp installed?  How do I install that?

I searched on packages.debian.org, and it’s in ‘console-setup’, which
happens to be the thing I was mentioning above:  :-)

  https://packages.debian.org/stretch/console-setup

It looks like Debian is actually upstream for this package, but it may
be usable on non-Debian systems as well.

> 2) Linux's initrd

We’d probably need to invoke ‘loadkeys’ or similar from the initrd, and
to embed only the specific layout files that we need.  See (gnu system
linux-initrd).

> 3) console
>    This shouldn't be all that hard to do.  We just have to add a
>    console-keymap-service.

Yes, #2 and #3 are actually the same thing (and redundant), except that
in #2 we have to be careful not to embed too much in the initrd.

> 4) X/Wayland's layout shouldn't be all that hard to do too.  X is just
> a simple xorg-start-command tweak.  I'm not certain how to do the same
> for wayland yet.

OK.

> 5) Now, how do I go about doing the above?  I thought about modifying
> %base-services and %desktop services, but some users won't use those
> variables.  So I am going to have to do some change at a deeper level.
> I believe that I found the reconfigure module in the guix source code,
> and I see the variable called "operating-system-user-services".  My
> intent is to modify this variable, and that should be how a good-old
> reconfigure will change your layout.

I think we’ll have to use ‘console-setup’.

The difficulty is that we want a single ‘keyboard-layout’ field (say) in
the OS config that would have an effect on GRUB, the Linux console,
Xorg, and Wayland, *if* they are used (setting the keyboard layout
shouldn’t require you to use Xorg, for instance.)

So I think we cannot use the standard Guix-y static approach where
services are instantiated directly with the right configuration.

Instead, Xorg & co. may need to look for a config file at a fixed
location, say /etc/guix/keyboard-layout.conf, pretty much the same way
it’s done on Debian & co.

Thoughts?

Ludo’.




This bug report was last modified 6 years and 119 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.