Keyboard layout defined by 'set-xorg-configuration' is not honored by GDM.

  • Done
  • quality assurance status badge
Details
One participant
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
important
M
M
Maxim Cournoyer wrote on 14 Feb 2020 20:23
(name . bug-guix)(address . bug-guix@gnu.org)
87blq1j7lo.fsf@gmail.com
Hello!

I based my operating system configuration on
gnu/system/examples/desktop.tmpl in the Guix tree, and was surprised
that my dvorak keyboard is in effect everywhere except at the GDM
greeter screen (where it is QWERTY).

Here's the full config:

Toggle snippet (99 lines)
(use-modules (gnu)
(gnu system nss)
(srfi srfi-1))

(use-service-modules admin desktop docker ssh xorg)
(use-package-modules android certs ratpoison)

(operating-system
(host-name "raisin")
(timezone "America/Montreal")
(locale "en_US.utf8")

;; Choose US English keyboard layout. The "altgr-intl"
;; variant provides dead keys for accented characters.
(keyboard-layout (keyboard-layout "dvorak"))

;; Use the UEFI variant of GRUB with the EFI System
;; Partition mounted on /boot/efi.
(bootloader (bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout keyboard-layout)))

;; Radeon requires a blob else prevents booting. Blacklisting the
;; radeon driver allows falling back to VESA.
(kernel-arguments '("quiet" "modprobe.blacklist=radeon"))

;; Specify a mapped device for the encrypted root partition.
;; The UUID is that returned by 'cryptsetup luksUUID'.
(mapped-devices
(list (mapped-device
(source (uuid "f85c0627-1f6f-48b9-a2c2-6c12594a7bd1"))
(target "btrfs-pool-1")
(type luks-device-mapping))))

(file-systems (cons*
(file-system
(device (file-system-label "btrfs-pool-1"))
(mount-point "/")
(type "btrfs")
(options '(("subvol" . "rootfs")
("compress" . "zstd")))
(dependencies mapped-devices))
(file-system
(device (file-system-label "btrfs-pool-1"))
(mount-point "/home")
(type "btrfs")
(options '(("subvol" . "homefs")
("compress" . "zstd")))
(dependencies mapped-devices))
(file-system
(device (uuid "209E-67AD" 'fat))
(mount-point "/boot/efi")
(type "vfat"))
%base-file-systems))

(swap-devices '("/swap/swapfile"))

(users (cons (user-account
(name "mcournoyer")
(group "users")
(supplementary-groups '("wheel" "netdev"
"audio" "video"
"kvm" "docker"
"adbusers")))
%base-user-accounts))

(groups (cons* (user-group (system? #t)
(name "adbusers"))
%base-groups))

;; This is where we specify system-wide packages.
(packages (cons* ratpoison
nss-certs ;for HTTPS access
%base-packages))

;; SSH, Docker
(services
(cons*
(service rottlog-service-type)
(service openssh-service-type
(openssh-configuration
(port-number 22)
(permit-root-login #t)))
(service docker-service-type)
(set-xorg-configuration (xorg-configuration
(keyboard-layout keyboard-layout)))
(modify-services %desktop-services
;; Enable using adb as a simple user with a multitude of devices.
(udev-service-type config =>
(udev-configuration
(inherit config)
(rules (cons* android-udev-rules
(udev-configuration-rules config))))))))

;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))

Maxim
M
M
Maxim Cournoyer wrote on 19 Oct 2020 05:30
control message for bug #39606
(address . control@debbugs.gnu.org)
87mu0i6geo.fsf@gmail.com
severity 39606 important
quit
M
M
Maxim Cournoyer wrote on 22 Oct 2020 21:54
Re: bug#39606: Keyboard layout defined by 'set-xorg-configuration' is not honored by GDM.
(address . 39606-done@debbugs.gnu.org)
87wnzic9zo.fsf@gmail.com
Hello!

I'm happy to report this was due to mis-configuration on my part. More
specifically, it it was missing the xorg-configuration modification bit,
which is documented. Testing in a VM using the following, modified
configuration cannot reproduce the problem:

Toggle snippet (44 lines)
diff --git a/gnu/system/examples/lightweight-desktop.tmpl b/gnu/system/examples/lightweight-desktop.tmpl
index d5a63dc457..42e7891641 100644
--- a/gnu/system/examples/lightweight-desktop.tmpl
+++ b/gnu/system/examples/lightweight-desktop.tmpl
@@ -3,7 +3,7 @@
;; environments.
(use-modules (gnu) (gnu system nss))
-(use-service-modules desktop)
+(use-service-modules desktop xorg)
(use-package-modules bootloaders certs emacs emacs-xyz ratpoison suckless wm
xorg)
@@ -11,12 +11,14 @@
(host-name "antelope")
(timezone "Europe/Paris")
(locale "en_US.utf8")
+ (keyboard-layout (keyboard-layout "jp"))
;; Use the UEFI variant of GRUB with the EFI System
;; Partition mounted on /boot/efi.
(bootloader (bootloader-configuration
- (bootloader grub-efi-bootloader)
- (target "/boot/efi")))
+ (bootloader grub-efi-bootloader)
+ (target "/boot/efi")
+ (keyboard-layout keyboard-layout)))
;; Assume the target root file system is labelled "my-root",
;; and the EFI System Partition has UUID 1234-ABCD.
@@ -53,7 +55,10 @@
;; Use the "desktop" services, which include the X11
;; log-in service, networking with NetworkManager, and more.
- (services %desktop-services)
+ (services (cons (set-xorg-configuration
+ (xorg-configuration ;for Xorg
+ (keyboard-layout keyboard-layout)))
+ %desktop-services))
;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss))

Closing :-)

Maxim
Closed
?