[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Keyboard layout configuration
From: |
Ludovic Courtès |
Subject: |
Keyboard layout configuration |
Date: |
Sun, 13 Jan 2019 22:36:21 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
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 <address@hidden> 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’.
Re: Brain storming cool Guix features, znavko, 2019/01/04
Re: Brain storming cool Guix features, L p R n d n, 2019/01/07