[Bug 1176302] New: keyboard: Switch kbd keyboard defaults to xkb based ones
https://bugzilla.suse.com/show_bug.cgi?id=1176302 Bug ID: 1176302 Summary: keyboard: Switch kbd keyboard defaults to xkb based ones Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: YaST2 Assignee: yast2-maintainers@suse.de Reporter: sbrabec@suse.com QA Contact: jsrain@suse.com Found By: --- Blocker: --- In past, kbd had its own keymaps with different names and layouts than xkb. Several years ago we generated a set of new keymaps based on xkb keymaps, and moved old ones to the kbd-legacy sub-package. But these keymaps are still not used by default. To fix this situation, we have to: 1. Change YaST keymap selection. kbd keymap should have the same name as xkb keymap. 2a. Change keymap search path inside kbd. In case of name conflict prefer the one from /usr/share/kbd/keymaps/xkb. or 2b. When YaST will pick keymap, it will use fully qualified path. I would prefer 2a. 3. Write a migration %post script that will perform one-shot migration of legacy keymaps to xkb ones. (I will just fetch the history of keyboard/src/data/keyboards.rb 4. Remove kbd-legacy from the default installation. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 Stanislav Brabec <sbrabec@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1174720 -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 Cliff Zhao <qzhao@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |qzhao@suse.com -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c1 Stefan Schubert <schubi@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sbrabec@suse.com, | |schubi@suse.com Flags| |needinfo?(sbrabec@suse.com) --- Comment #1 from Stefan Schubert <schubi@suse.com> --- (In reply to Stanislav Brabec from comment #0)
In past, kbd had its own keymaps with different names and layouts than xkb.
Several years ago we generated a set of new keymaps based on xkb keymaps, and moved old ones to the kbd-legacy sub-package.
But these keymaps are still not used by default.
To fix this situation, we have to:
1. Change YaST keymap selection. kbd keymap should have the same name as xkb keymap.
Could you please give us some examples in order to see where it should be done ? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c2 Stanislav Brabec <sbrabec@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(sbrabec@suse.com) | --- Comment #2 from Stanislav Brabec <sbrabec@suse.com> --- 1. country/keyboard/src/data/keyboards.rb It could need some editing in other files, as you don't want to duplicate map names, but use xkb names directly. 2a. My task. 2b. Wherever loadkeys is called. (But I plan to implement 2a, so there is no need for fully qualified path.) 3. Either kbd package or yast2-country. 4. Not sure which package handles that. patterns? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c3 Stanislav Brabec <sbrabec@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |IN_PROGRESS CC| |sndirsch@suse.com --- Comment #3 from Stanislav Brabec <sbrabec@suse.com> --- Regarding 2a: There is already a patch for it: kbd-1.15.5-loadkeys-search-path.patch from Stefan Dirsch. But it does not work as expected: static const char *const dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 }; ... #define KEYMAPDIR "keymaps" #define XKBKEYMAPDIR "keymaps/xkb" #define LEGACYKEYMAPDIR "keymaps/legacy" => First, any directory in keymapdir is searched, then xkb dir, then legacy => The result is undefined. 2a is fixed: https://build.opensuse.org/request/show/835238 2b is not needed to implement. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c4 --- Comment #4 from Stefan Dirsch <sndirsch@suse.com> --- I feel sorry to have broken this! :-( I meanwhile even no longer can remember having written this patch, but apparently I did. ------------------------------------------------------------------- Fri Jul 17 12:54:27 UTC 2015 - sndirsch@suse.com - Include xkb layouts from xkeyboard-config converted to console keymaps, (FATE#318426) * Rename Finnish xkb converted layout * Add xkb and legacy keymaps subdirs to loadkyes search path (kbd-1.15.5-loadkeys-search-path.patch), remove symlinks, Don't convert layouts that can't input ASCII, * Original keymaps moved to legacy dir, created symlinks to xkb keymaps -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c5 --- Comment #5 from Stanislav Brabec <sbrabec@suse.com> --- Stefan Dirsch: I guess that you did the whole xkb to kbd keymap generation. The search path was just a minor part of this work. Until now, we were using legacy keyboards by default, so the current behavior was OK. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c6 Stefan Dirsch <sndirsch@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC|sndirsch@suse.com | --- Comment #6 from Stefan Dirsch <sndirsch@suse.com> --- I guess you no longer need me here. Otherwise please free to readd me. But then also tell me why and how I can help you. ;-) -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c7 --- Comment #7 from Stanislav Brabec <sbrabec@suse.com> --- I would like to prepare a migration script for kbd, but I don't know the mechanism of assigning the locale default keymap in X. Could you give me a hint? Is it done by YaST during installation, by a display manager or by GNOME/KDE? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 Josef Reidinger <jreidinger@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- URL| |https://trello.com/c/WAlGLt | |nN CC| |jreidinger@suse.com Assignee|yast2-maintainers@suse.de |yast-internal@suse.de -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c8 Martin Vidner <mvidner@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mvidner@suse.com Flags| |needinfo?(sbrabec@suse.com) --- Comment #8 from Martin Vidner <mvidner@suse.com> ---
the mechanism of assigning the locale default keymap in X
I'm not sure what you mean. Can you explain a bit, with an example? Also note that YaST internally uses some of the legacy keyboard names, which bleed over to systemd.rpm: /usr/share/systemd/kbd-model-map built from kbd-model-map.legacy -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c9 Stanislav Brabec <sbrabec@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags|needinfo?(sbrabec@suse.com) | --- Comment #9 from Stanislav Brabec <sbrabec@suse.com> --- If the user selects e. g. Czech language and Czech keyboard in the YaST installation, display manager will probably switch to the Czech keymap, and the default for users will be Czech keymap as well. during the installation However I don't know, where these default keymaps are encoded. Do they come from YaST? Or they are built-in into GDM or any other GNOME tool? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 Stanislav Brabec <sbrabec@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks|1174720 | -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c11 --- Comment #11 from Stefan Hundhammer <shundhammer@suse.com> --- This appears to be stuck. It's assigned to the YaST team; what are we supposed to do here? Is this in a state where we can actually work on it? Stanislav, about what YaST is doing in that area, maybe you find this helpful: https://gist.github.com/shundhammer/099aee2c84c24bb155805cd7ef23c515 That's notes that I collected when we were working in this area in late 2021. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1176302 https://bugzilla.suse.com/show_bug.cgi?id=1176302#c12 --- Comment #12 from Stefan Hundhammer <shundhammer@suse.com> --- See also https://github.com/yast/yast-country/pull/288 -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com