| Summary: | keyboard layout madness | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | drago01 | ||||
| Component: | control-center | Assignee: | Control Center Maintainer <control-center-maint> | ||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 17 | CC: | awilliam, bnocera, control-center-maint, johannbg, lpoetter, metherid, mkasik, notting, peter.hutterer, plautrba, rbergero, robatino, rstrode, systemd-maint, xgl-maint | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | RejectedBlocker | ||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-06-26 05:18:02 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
drago01
2012-02-19 21:17:32 UTC
How did you set the keyboard layout? During installation, post-install? How did you install? When you reset the keyboard layout are you using system-config-keyboard, GNOME keyboard layout tool, or what? -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers (In reply to comment #1) > How did you set the keyboard layout? During installation, post-install? Both i.e chose it in anaconda and then in gnome-conrol-center after the first login. system-setup-keyboard seems to write a correct config file hence why I blamed gnome-settings-daemon. I also used the "copy to system" button in gnome-control-center to apply the settings system wide. > How did > you install? Livemedia (in a VM). When you reset the keyboard layout are you using > system-config-keyboard, GNOME keyboard layout tool, or what? See above. [ 24.767] (**) Power Button: always reports core events [ 24.767] (**) evdev: Power Button: Device: "/dev/input/event0" [ 24.767] (--) evdev: Power Button: Vendor 0 Product 0x1 [ 24.768] (--) evdev: Power Button: Found keys [ 24.768] (II) evdev: Power Button: Configuring as keyboard [ 24.768] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input0/event0" [ 24.768] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6) [ 24.768] (**) Option "xkb_rules" "evdev" [ 24.768] (**) Option "xkb_model" "evdev" [ 24.768] (**) Option "xkb_layout" "at nodeadkeys" [ 24.797] (EE) Error loading keymap /var/lib/xkb/server-0.xkm [ 24.797] (EE) XKB: Failed to load keymap. Loading default keymap instead. Seems to be an X bug. So I just installed from DVD, picked french as the language, the default french option as the keyboard layout, and encrypted the disk; it uses french keyboard layout consistently, for the disk encryption passphrase, gdm and desktop. Will test the same thing with German... -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers Created attachment 564530 [details]
keyboard config file
drago01 posted this as his /etc/sysconfig/keyboard
KEYTABLE="de-latin1-nodeadkeys"
MODEL="pc105"
LAYOUT="de"
VARIANT="nodeadkeys"
So after some debugging and reproduction attempts it seems to be that systemd-localed writes out wrong config file snippets. okay, confirmed that french and several german layouts work both with the live installer and DVD installer. drago now thinks it's actually only broken trying to set it from gnome post-install; we have a plausible explanation for that breakage. but i'm reasonably confident anaconda is working here. RE-assigning to systemd. I vote -1 blocker on this as it appears that things work correctly if you set the layout during install, and we can fix problems with the GNOME layout selector with an update. -1 to blocker -1 to blocker then as well. okay, with the discussion from the mini-blocker review this morning i'm happy to call this not-a-blocker at this point. drago and I are pretty confident in our current analysis of the bug. -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers I am not sure I understand what the misbehaviour here exactly is. What do you do that doesn't work. The current behaviour should be this: a) anaconda on install writes /etc/sysconfig/keyboard b) gnome+locale reads /etc/console.conf for configuration, reads /etc/sysconfig/keyboard as fall back, only writes /etc/console.conf. That means, normally everything should behave correctly and the fact that anaconda doens't write the right config should be much of a problem because using GNOME for reconfiguraiton will migrate things to locale.conf. In GNOME, go to the region and language panel, select a layout with a variant (e.g. German, nodeadkeys). Go to the System panel, click on "Copy Settings".
This causes 00-system-setup-keyboard.conf to be linked to /dev/null and a new file 00-keyboard.conf is put in place by systemd. That file has a configuration that cannot be read by the X server.
Option "XkbLayout" "at nodeadkeys"
Should instead be:
Option "XkbLayout" "at"
Option "XkbVariant" "nodeadkeys"
For multiple layouts, each value must be a comma-separated list. So if your layouts are "us,at(nodeadkeys)", the two options must be
Option "XkbLayout" "us,at"
Option "XkbVariant" ",nodeadkeys"
Note the comma before nodeadkeys, otherwise it's assigned to the first layout (and us(nodeadkeys) doesn't exist).
gnome-control-center does:
g_dbus_proxy_call (localed_proxy,
"SetX11Keyboard",
g_variant_new ("(ssssbb)", layout, "", "", "", TRUE, TRUE),
G_DBUS_CALL_FLAGS_NONE,
-1, NULL, NULL, NULL);
Which means it passes empty strings for everything but layout which is wrong. (i.e no variants being passed).
So systemd-localed just gets this strings and writes it out.
Upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=670607 Fixed since control-center-3.3.91 |