--- Begin Message ---
Subject: |
[PATCH 00/12] Provide uniform keyboard layout configuration |
Date: |
Wed, 20 Mar 2019 23:32:29 +0100 |
Hello Guix!
This patch series attempts to address a longstanding issue in Guix:
keyboard layout configuration.
The end result is that you can configure the layout for GRUB,
the Linux console, and Xorg using a single <keyboard-layout> record,
which directly corresponds to an XKB layout specification.
The three things still have to be configured separately. Here’s an
example where GRUB, Linux, and Xorg use the same layout:
(operating-system
;; ...
(keyboard-layout (keyboard-layout "tr")) ;for the console
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout keyboard-layout))) ;for GRUB
(services (modify-services %desktop-services
(slim-service-type config =>
(slim-configuration
(inherit config)
(xorg-configuration
(xorg-configuration ;for Xorg
(keyboard-layout keyboard-layout))))))))
Clearly the Xorg bit is suboptimal. I don’t see any obvious way
to simplify this part unfortunately because the <xorg-configuration>
record is aggregated by ‘slim-configuration’ & co. (there’s no Xorg
service that we could extend.) That’s something we can still improve
afterwards, though.
Potentially controversial issues:
1. The Xorg API is changed in an incompatible way:
‘xorg-start-command’ has a different prototype, the ‘startx’
field of ‘slim-configuration’ is gone, etc. If you were using
these, your config will have to be adjusted to use the new
‘xorg-configuration’ record. (But hey, we’re still pre-1.0!).
2. Since both fields and the record constructor are called
‘keyboard-layout’, you could easily have name clashes (it’s
more of an aesthetic consideration, not a showstopper.)
After that we should probably change the installer to generate
the right incantations.
These patches fix <https://issues.guix.info/issue/25453> and
<https://issues.guix.info/issue/26234>.
Feedback welcome!
And thanks to nee for the initial inspiration!
Ludo’.
Ludovic Courtès (12):
bootloader: Remove unused 'additional-configuration' field.
bootloader: Reindent record type definition.
Add (gnu system keyboard).
bootloader: Add a 'keyboard-layout' field.
services: xorg: Remove unused #:guile parameter.
services: xorg: Define and <xorg-configuration> record type.
services: sddm, slim, gdm: Take an <xorg-configuration> record.
services: xorg: Add a 'keyboard-layout' field in <xorg-configuration>.
vm: 'virtualized-operating-system' inherits from the user's bootloader
config.
gnu: Add loadkeys-static.
system: Initialize console keyboard layout in the initrd.
doc: Document keyboard layout.
doc/guix.texi | 305 ++++++++++++++++++++++++------------
gnu.scm | 3 +-
gnu/bootloader.scm | 43 ++---
gnu/bootloader/grub.scm | 35 +++++
gnu/build/linux-boot.scm | 15 +-
gnu/local.mk | 1 +
gnu/packages/linux.scm | 37 +++++
gnu/services/sddm.scm | 14 +-
gnu/services/xorg.scm | 182 ++++++++++++---------
gnu/system.scm | 7 +-
gnu/system/keyboard.scm | 98 ++++++++++++
gnu/system/linux-initrd.scm | 26 ++-
gnu/system/vm.scm | 1 +
13 files changed, 561 insertions(+), 206 deletions(-)
create mode 100644 gnu/system/keyboard.scm
--
2.21.0
--- End Message ---
--- Begin Message ---
Subject: |
Re: [bug#34929] [PATCH 00/12] Provide uniform keyboard layout configuration |
Date: |
Sun, 24 Mar 2019 23:14:42 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hi Julien,
Julien Lepiller <address@hidden> skribis:
> Apart from the minor comments I already sent to patches 4, 6 and 8,
> LGTM! Thank you!
I’ve made the changes you suggested and pushed as commit
2bbb4ead771fcb29266607b338b21c6dd97e3f69.
Thanks for your feedback!
Ludo’.
--- End Message ---