[New: openFATE 318355] Convert X keyboard layouts to console keymaps

Feature added by: Mindaugas Baranauskas (embar-) Feature #318355, revision 1 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT" >> layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list-uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ . -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 3 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
+ Discussion: + #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) + Finally I found the time to work on this. :-) Current result you can + find in obs://home:sndirsch:fate318355. I've created a console-setup + package, since SUSE was still lacking the ckbcomp tool to convert + xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package + to convert xkeyboard-layout keymaps to console keymaps, which makes use + of this tool. Original kbd keymaps I've moved to legacy directory and + now they are last in loadkeys' search path, i.e. xkb converted ones are + preferred. Also in kbd package I've created additional entries for + systemd's mapping console keymap <-> X keymap. In systemd package I + append these entries to systemd's /usr/share/systemd/kbd-model-map + table. What's still missing are the adjustments in YaST. Do we want to + adjust YaST in a way so the existing console keymaps are replaced with + the converted xkb keymaps? Or do we want to add new entries to the YaST + list and still use the old legacy keymaps for the current list? Or + maybe both? I'm not sure here. Seems there are 3 files, which need + adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. + ycp in /usr/share/YaST2/data. Not sure how these are connected togehter + exactly. I would like to see a proposal here preferrably by the YaST + developer(s). Mapping table console keyboard <-> X keyboard is now + available in systemd's /usr/share/systemd/kbd-model-map. Everything + YaST specific can now be based on that information. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 4 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. + #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) + Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can + you help here? -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Jiří Suchomel (jsuchome) Feature #318355, revision 5 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? + #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) + I've already asked for this years ago in fate #309487. + So I think it's good there's time for it now. However, I'm not yast2- + country maintainer any more. Please ask Jiri Srain or Lukas who should + work on YaST side of this. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 7 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. + #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58) + > Hope you didn't miss FATE#318426. A feature often requested by YaST + > development and finally being possible to implement. But now I would + need the + > input of YaST developers (see my comment #15). Without your input I + don't know + > how to continue there. :-( + > + > Also I don't know what all these different keyboad mapping variants + mean in + > keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", + "type4", + > "type5", "type5_euro". Are they still being used by YaST? + > + > Any help would be appreciated. + Hi Stefan,I'm also adding Ancor, who has changed the code recently and + (Major) part of the current implementation has been created by Jiri + Suchomel, so I believe he'll be so kind and answer your questions. + Moreover, I'm also adding Ancor, who has changed the code recently and + thus should also have a knowledge about the implementation there. + Bye + Lukas Ocilka, Systems Management (Yast) Team Leader -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 8 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
+ #5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) + Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST + will provide selection of keyboard layouts, that are X and console + compatible (i.e. using console keymaps, converted from X). -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 9 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). + #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) + Good news. Everything is now put in place for tumbleweed, i.e. package + change requrests done (console-setup, kbd, systemd, yast2-country and + yast2-x11). Once this is in and has been tested we can continue with + Leap/42, then sle12-sp2. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 10 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. + #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) + As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... + (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) + there is no new keymaps for selection. Can we include all keymaps for + selection in YaST, not only ~50. I suggest we can use two columns: one + for layouts, one (regenerated after changes in first column) for + variants. + We may also follow Fedora and patch converted keyboards: at this moment + latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add + compose rules to cz layout. See + https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) + and https://apps.fedoraproject.org/packages/kbd/sources/patches + (https://apps.fedoraproject.org/packages/kbd/sources/patches) -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 11 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) + #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) + Right. We didn't add more keymaps for selection to YaST. More than one + keyboard layout per language (with some exceptions) would overburden + most of our users, let alone introducing a choosable combination of + layout + variant. The changes I did for kbd/systemd didn't land yet in + factory. See https://build.opensuse.org/request/show/322479 and + https://build.opensuse.org/request/show/323880. Let me know what's + still missing there. Submit for yast2-x11 is also still pending. See + https://build.opensuse.org/request/show/324126. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 12 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. + #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) + Or maybe can we can implement two modes? 1) select from basic layout + (~50) and 2) select from all layouts. Modes could be switched by tab, + or by radio button, or by pressing existing "Expert settings" button or + by new separate "Details..." button. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 13 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. + #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) + Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 14 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. + #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to + #8) + I opened new kbd package and I see, that fi.map is already renamed to fi- + kotoistus.map. But there is still some jobs, that Fedora do: + * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. + mv olpc/pt.map olpc/pt-olpc.map + * sr-cy copy to i386/qwerty/sr-latin + * add compose rules to cz layout #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 15 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout + #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to + #11) + I was wrong by saying "rename dublicated (existing in both kbd and kbd- + legacy) layouts". Fedora only "Rename conflicting keymaps" ( + https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) + ): + mv dvorak/no.map dvorak/no-dvorak.map + mv fgGIod/trf.map fgGIod/trf-fgGIod.map + mv olpc/es.map olpc/es-olpc.map + #already done in our kbd + mv olpc/pt.map olpc/pt-olpc.map + mv qwerty/cz.map qwerty/cz-qwerty.map #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 16 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map + #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to + #12) + in last message "#already done in our kbd " was for "mv olpc/es.map + olpc/es-olpc.map" only #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 17 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only + #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) + Mindaugas, before I get anything wrong. Could you do me a favor and + make a submitrequest for the remaining changes against home:sndirsch: + fate318355/kbd? That's the project, which I use for the development of + this FATE request. #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 18 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. + #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to + #14) + OK, you will find submit request 324843 + (https://build.opensuse.org/request/show/324843) + We may also update kbd from 2.0.2 to 2.0.3. + If any, in future you can look at history of Fedora's kbd package in + git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ + (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 19 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) + #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) + Thanks. Accepted and forwarded to Base:System, from where it hopefully + be forwarded to factory once accepted. I'm aware of the git repo for + the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 20 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. + #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) + I a bit tested current versions of packages. I noticed, that in YaST2 + marking layout, immediately also changes keyboard layout of all my + desktop. I suggest, YaST should isolate this change only for YaST + keyboard selection dialog for testing. Some layout selections causes to + use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and + Traditional Chinese - these seems to be intentionally fallbacks to US). + Ukrainian keyboard seems wrong at all - it don't change layout to any + layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file + (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. + Changes in YaST don't affect /etc/sysconfig/console variables + variables. As we use converted X layout, we need reset them? Or maybe + they are obsolete also? -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 21 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? + #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to + #17) + Ech.. I installed some wrong version of YaST package... Reinstalled. Greek + and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard + still seems wrong at all - it don't change layout to any layout. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 22 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. + #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to + #17) + Played a bit more... + /etc/sysconfig/console variables is indeed important in terminal (then + go by Ctrl+Alt+F1)! + We must: + * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC + variables + * set CONSOLE_ENCODING="UTF-8" + * not sure, which CONSOLE_FONT should be used -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 23 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used + #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to + #19) + At least with lt and lt-std keymaps, best console fonts are lat4-16 and + lat4a-16 -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 24 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 + #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to + #19) + More findings: Fedora seems to use eurlatgr console font, that covers + LatArCyrHeb and plus provides more special characters (according to + https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE + has eurlatgr console font as file: + ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems + the best one! Even ←↓↑→ characters are displayed in console with this + font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" + eurlatgr" -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 25 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" + #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to + #21) + EurLatGr provides greater coverage for Latin and Greek characters, but at the + cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can + use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, + Cyrillic and Hebrew characters. -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Stefan Dirsch (sndirsch) Feature #318355, revision 26 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to #21) EurLatGr provides greater coverage for Latin and Greek characters, but at the cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, Cyrillic and Hebrew characters. + #23: Stefan Dirsch (sndirsch) (2015-08-24 09:43:30) + I believe changing the marking layout immediately is intentional + behaviour by YaST, but Ancor can comment on this. Also you cannot + change the keyboard layout only for the current YaST window (limitation + of X). So for now we cannot change this. + Russian falls back to "us,ru", i.e. "us" is first and can be switched + to "ru" by using Shift-Shift. I didn't want to change this, since 1) we + had issues in the past when using "ru,us" instead (switching didn't + work too well), 2) users are running into issues when trying to enter + the ASCII password in displaymanager. + Ukraine keyboard: We never had a working mapping from Linux console to + X11. We definitely should fix it though. Please open a bug for this + making sure adding me and Ancor to this bug. + Indeed KEYTABLE variable in /etc/sysconfig/keyboard is obsolete. YaST + now writes KEYMAP variable directly to /etc/vconsole. During + displaymanager startup /etc/X11/xdm/keytable creates the required + /etc/X11/xorg.conf.d/90-keytable.conf snippet by using systemd's + localectl command. + About changing the console font. Your propsal sounds reasonable to me, + but is unrelated to this FATE request. Please open a bug for this as + well again making sure to add me and Ancor to this bug. + Thanks for prompt and thouroughly testing. Very much appreciated! -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 27 Title: Convert X keyboard layouts to console keymaps openSUSE Distribution: Unconfirmed Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to #21) EurLatGr provides greater coverage for Latin and Greek characters, but at the cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, Cyrillic and Hebrew characters. #23: Stefan Dirsch (sndirsch) (2015-08-24 09:43:30) I believe changing the marking layout immediately is intentional behaviour by YaST, but Ancor can comment on this. Also you cannot change the keyboard layout only for the current YaST window (limitation of X). So for now we cannot change this. Russian falls back to "us,ru", i.e. "us" is first and can be switched to "ru" by using Shift-Shift. I didn't want to change this, since 1) we had issues in the past when using "ru,us" instead (switching didn't work too well), 2) users are running into issues when trying to enter the ASCII password in displaymanager. Ukraine keyboard: We never had a working mapping from Linux console to X11. We definitely should fix it though. Please open a bug for this making sure adding me and Ancor to this bug. Indeed KEYTABLE variable in /etc/sysconfig/keyboard is obsolete. YaST now writes KEYMAP variable directly to /etc/vconsole. During displaymanager startup /etc/X11/xdm/keytable creates the required /etc/X11/xorg.conf.d/90-keytable.conf snippet by using systemd's localectl command. About changing the console font. Your propsal sounds reasonable to me, but is unrelated to this FATE request. Please open a bug for this as well again making sure to add me and Ancor to this bug. Thanks for prompt and thouroughly testing. Very much appreciated! + #24: Mindaugas Baranauskas (embar-) (2015-08-24 14:44:42) (reply to + #23) + Bug for Ukraine keyboard + https://bugzilla.opensuse.org/show_bug.cgi?id=942899 (https://bugzilla.opensuse.org/show_bug.cgi?id=942899) + Bug for /etc/sysconfig/console: + https://bugzilla.opensuse.org/show_bug.cgi?id=942896 (https://bugzilla.opensuse.org/show_bug.cgi?id=942896) -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 28 Title: Convert X keyboard layouts to console keymaps - openSUSE Distribution: Unconfirmed + openSUSE Distribution: Done Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to #21) EurLatGr provides greater coverage for Latin and Greek characters, but at the cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, Cyrillic and Hebrew characters. #23: Stefan Dirsch (sndirsch) (2015-08-24 09:43:30) I believe changing the marking layout immediately is intentional behaviour by YaST, but Ancor can comment on this. Also you cannot change the keyboard layout only for the current YaST window (limitation of X). So for now we cannot change this. Russian falls back to "us,ru", i.e. "us" is first and can be switched to "ru" by using Shift-Shift. I didn't want to change this, since 1) we had issues in the past when using "ru,us" instead (switching didn't work too well), 2) users are running into issues when trying to enter the ASCII password in displaymanager. Ukraine keyboard: We never had a working mapping from Linux console to X11. We definitely should fix it though. Please open a bug for this making sure adding me and Ancor to this bug. Indeed KEYTABLE variable in /etc/sysconfig/keyboard is obsolete. YaST now writes KEYMAP variable directly to /etc/vconsole. During displaymanager startup /etc/X11/xdm/keytable creates the required /etc/X11/xorg.conf.d/90-keytable.conf snippet by using systemd's localectl command. About changing the console font. Your propsal sounds reasonable to me, but is unrelated to this FATE request. Please open a bug for this as well again making sure to add me and Ancor to this bug. Thanks for prompt and thouroughly testing. Very much appreciated! #24: Mindaugas Baranauskas (embar-) (2015-08-24 14:44:42) (reply to #23) Bug for Ukraine keyboard https://bugzilla.opensuse.org/show_bug.cgi?id=942899 (https://bugzilla.opensuse.org/show_bug.cgi?id=942899) Bug for /etc/sysconfig/console: https://bugzilla.opensuse.org/show_bug.cgi?id=942896 (https://bugzilla.opensuse.org/show_bug.cgi?id=942896) -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 29 - Title: Convert X keyboard layouts to console keymaps + Title: Convert X keyboard layouts to console keymaps for Latin + languages openSUSE Distribution: Done Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to #21) EurLatGr provides greater coverage for Latin and Greek characters, but at the cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, Cyrillic and Hebrew characters. #23: Stefan Dirsch (sndirsch) (2015-08-24 09:43:30) I believe changing the marking layout immediately is intentional behaviour by YaST, but Ancor can comment on this. Also you cannot change the keyboard layout only for the current YaST window (limitation of X). So for now we cannot change this. Russian falls back to "us,ru", i.e. "us" is first and can be switched to "ru" by using Shift-Shift. I didn't want to change this, since 1) we had issues in the past when using "ru,us" instead (switching didn't work too well), 2) users are running into issues when trying to enter the ASCII password in displaymanager. Ukraine keyboard: We never had a working mapping from Linux console to X11. We definitely should fix it though. Please open a bug for this making sure adding me and Ancor to this bug. Indeed KEYTABLE variable in /etc/sysconfig/keyboard is obsolete. YaST now writes KEYMAP variable directly to /etc/vconsole. During displaymanager startup /etc/X11/xdm/keytable creates the required /etc/X11/xorg.conf.d/90-keytable.conf snippet by using systemd's localectl command. About changing the console font. Your propsal sounds reasonable to me, but is unrelated to this FATE request. Please open a bug for this as well again making sure to add me and Ancor to this bug. Thanks for prompt and thouroughly testing. Very much appreciated! #24: Mindaugas Baranauskas (embar-) (2015-08-24 14:44:42) (reply to #23) Bug for Ukraine keyboard https://bugzilla.opensuse.org/show_bug.cgi?id=942899 (https://bugzilla.opensuse.org/show_bug.cgi?id=942899) Bug for /etc/sysconfig/console: https://bugzilla.opensuse.org/show_bug.cgi?id=942896 (https://bugzilla.opensuse.org/show_bug.cgi?id=942896) -- openSUSE Feature: https://features.opensuse.org/318355

Feature changed by: Mindaugas Baranauskas (embar-) Feature #318355, revision 30 - Title: Convert X keyboard layouts to console keymaps for Latin - languages + Title: Convert X keyboard layouts to console keymaps for languages with + Latin characters openSUSE Distribution: Done Priority Requester: Mandatory Requested by: Mindaugas Baranauskas (embar-) Partner organization: openSUSE.org Description: In systemd world we use localectl. Mapping between console and X keyboards is complicated. I creates bugs (e.g. https://bugzilla.novell.com/show_bug.cgi?id=897803) after switching from legacy /etc/X11/xdm/Keyboard.map mapping in to new systemd /usr/share/systemd/kbd-model-map mapping. Indeed most console keyboards are obsolete, they are difficult to configure, as each layout requires specific correct parameters for kbd_mode and setfont. And YaST also have some additional mapping: /usr/share/YaST2/data/keyboard_raw.ycp. We must change essentially keyboard management in YaST. We could use Fedora solution by converting X keymaps to console keymaps to simplify keyboard issues. Use Case: As discussed in https://bugs.freedesktop.org/show_bug.cgi?id=88545, Fedora has many more console layouts, converted from X keyboard layouts with script: # Convert X keyboard layouts to console keymaps mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb perl xml2lst.pl < /usr/share/X11/xkb/rules/base.xml > layouts-variants.lst while read line; do XKBLAYOUT=`echo "$line" | cut -d " " -f 1` echo "$XKBLAYOUT"
layouts-list.lst XKBVARIANT=`echo "$line" | cut -d " " -f 2` ckbcomp "$XKBLAYOUT" "$XKBVARIANT" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$XKBLAYOUT"-"$XKBVARIANT".map.gz done < layouts-variants.lst # Convert X keyboard layouts (plain, no variant) cat layouts-list.lst | sort -u >> layouts-list-uniq.lst while read line; do ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz done < layouts-list- uniq.lst Full spec file: https://apps.fedoraproject.org/packages/kbd/sources/spec/ Fedora moved upstream layouts to /usr/lib/kbd/keymaps/legacy/ .
Discussion: #1: Stefan Dirsch (sndirsch) (2015-07-21 15:20:21) Finally I found the time to work on this. :-) Current result you can find in obs://home:sndirsch:fate318355. I've created a console-setup package, since SUSE was still lacking the ckbcomp tool to convert xkeyboard-layout keymaps to console keymaps. I've adjusted kbd package to convert xkeyboard-layout keymaps to console keymaps, which makes use of this tool. Original kbd keymaps I've moved to legacy directory and now they are last in loadkeys' search path, i.e. xkb converted ones are preferred. Also in kbd package I've created additional entries for systemd's mapping console keymap <-> X keymap. In systemd package I append these entries to systemd's /usr/share/systemd/kbd-model-map table. What's still missing are the adjustments in YaST. Do we want to adjust YaST in a way so the existing console keymaps are replaced with the converted xkb keymaps? Or do we want to add new entries to the YaST list and still use the old legacy keymaps for the current list? Or maybe both? I'm not sure here. Seems there are 3 files, which need adjustments. lang2keyboard.ycp, xkblayout2keyboard.ycp, keyboard_raw. ycp in /usr/share/YaST2/data. Not sure how these are connected togehter exactly. I would like to see a proposal here preferrably by the YaST developer(s). Mapping table console keyboard <-> X keyboard is now available in systemd's /usr/share/systemd/kbd-model-map. Everything YaST specific can now be based on that information. #2: Stefan Dirsch (sndirsch) (2015-07-21 15:23:14) Jiri Suchomel. I've found your email address in lang2keyboard.ycp. Can you help here? #3: Jiří Suchomel (jsuchome) (2015-07-21 16:08:28) (reply to #2) I've already asked for this years ago in fate #309487. So I think it's good there's time for it now. However, I'm not yast2- country maintainer any more. Please ask Jiri Srain or Lukas who should work on YaST side of this. #4: Stefan Dirsch (sndirsch) (2015-07-28 15:28:58)
Hope you didn't miss FATE#318426. A feature often requested by YaST development and finally being possible to implement. But now I would need the input of YaST developers (see my comment #15). Without your input I don't know how to continue there. :-(
Also I don't know what all these different keyboad mapping variants mean in keyboard_raw.ycp. Apart from the "pc104" there is also "macintosh", "type4", "type5", "type5_euro". Are they still being used by YaST?
Any help would be appreciated. Hi Stefan,I'm also adding Ancor, who has changed the code recently and (Major) part of the current implementation has been created by Jiri Suchomel, so I believe he'll be so kind and answer your questions. Moreover, I'm also adding Ancor, who has changed the code recently and thus should also have a knowledge about the implementation there. Bye Lukas Ocilka, Systems Management (Yast) Team Leader
#5: Mindaugas Baranauskas (embar-) (2015-08-18 20:45:27) Nice to hear, that the is progress. I hope in openSUSE Leap 42.1 YaST will provide selection of keyboard layouts, that are X and console compatible (i.e. using console keymaps, converted from X). #6: Stefan Dirsch (sndirsch) (2015-08-19 10:11:23) (reply to #5) Good news. Everything is now put in place for tumbleweed, i.e. package change requrests done (console-setup, kbd, systemd, yast2-country and yast2-x11). Once this is in and has been tested we can continue with Leap/42, then sle12-sp2. #7: Mindaugas Baranauskas (embar-) (2015-08-21 10:41:07) As I see in https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas... (https://build.opensuse.org/package/rdiff/YaST:Head/yast2-country?linkrev=bas...) there is no new keymaps for selection. Can we include all keymaps for selection in YaST, not only ~50. I suggest we can use two columns: one for layouts, one (regenerated after changes in first column) for variants. We may also follow Fedora and patch converted keyboards: at this moment latest Fedora's kbd package will rename fi.map to fi-kotoistus.map, add compose rules to cz layout. See https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) and https://apps.fedoraproject.org/packages/kbd/sources/patches (https://apps.fedoraproject.org/packages/kbd/sources/patches) #8: Stefan Dirsch (sndirsch) (2015-08-21 11:01:07) (reply to #7) Right. We didn't add more keymaps for selection to YaST. More than one keyboard layout per language (with some exceptions) would overburden most of our users, let alone introducing a choosable combination of layout + variant. The changes I did for kbd/systemd didn't land yet in factory. See https://build.opensuse.org/request/show/322479 and https://build.opensuse.org/request/show/323880. Let me know what's still missing there. Submit for yast2-x11 is also still pending. See https://build.opensuse.org/request/show/324126. #9: Mindaugas Baranauskas (embar-) (2015-08-21 11:22:50) (reply to #8) Or maybe can we can implement two modes? 1) select from basic layout (~50) and 2) select from all layouts. Modes could be switched by tab, or by radio button, or by pressing existing "Expert settings" button or by new separate "Details..." button. #11: Mindaugas Baranauskas (embar-) (2015-08-21 11:43:47) (reply to #8) I opened new kbd package and I see, that fi.map is already renamed to fi- kotoistus.map. But there is still some jobs, that Fedora do: * rename dublicated (existing in both kbd and kbd-legacy) layouts, e.g. mv olpc/pt.map olpc/pt-olpc.map * sr-cy copy to i386/qwerty/sr-latin * add compose rules to cz layout #12: Mindaugas Baranauskas (embar-) (2015-08-21 11:52:29) (reply to #11) I was wrong by saying "rename dublicated (existing in both kbd and kbd- legacy) layouts". Fedora only "Rename conflicting keymaps" ( https://apps.fedoraproject.org/packages/kbd/sources/spec (https://apps.fedoraproject.org/packages/kbd/sources/spec) ): mv dvorak/no.map dvorak/no-dvorak.map mv fgGIod/trf.map fgGIod/trf-fgGIod.map mv olpc/es.map olpc/es-olpc.map #already done in our kbd mv olpc/pt.map olpc/pt-olpc.map mv qwerty/cz.map qwerty/cz-qwerty.map #13: Mindaugas Baranauskas (embar-) (2015-08-21 11:54:09) (reply to #12) in last message "#already done in our kbd " was for "mv olpc/es.map olpc/es-olpc.map" only #14: Stefan Dirsch (sndirsch) (2015-08-21 12:05:15) (reply to #13) Mindaugas, before I get anything wrong. Could you do me a favor and make a submitrequest for the remaining changes against home:sndirsch: fate318355/kbd? That's the project, which I use for the development of this FATE request. #15: Mindaugas Baranauskas (embar-) (2015-08-21 13:10:45) (reply to #14) OK, you will find submit request 324843 (https://build.opensuse.org/request/show/324843) We may also update kbd from 2.0.2 to 2.0.3. If any, in future you can look at history of Fedora's kbd package in git also: http://pkgs.fedoraproject.org/cgit/kbd.git/log/ (http://pkgs.fedoraproject.org/cgit/kbd.git/log/) #16: Stefan Dirsch (sndirsch) (2015-08-21 14:09:52) (reply to #15) Thanks. Accepted and forwarded to Base:System, from where it hopefully be forwarded to factory once accepted. I'm aware of the git repo for the RH package sources. ;-) #10: Stefan Dirsch (sndirsch) (2015-08-21 11:41:51) Adding YaST developer. #17: Mindaugas Baranauskas (embar-) (2015-08-21 17:53:36) I a bit tested current versions of packages. I noticed, that in YaST2 marking layout, immediately also changes keyboard layout of all my desktop. I suggest, YaST should isolate this change only for YaST keyboard selection dialog for testing. Some layout selections causes to use US layout: Greek, Russian, Serbian (and also Khmer, Simplified and Traditional Chinese - these seems to be intentionally fallbacks to US). Ukrainian keyboard seems wrong at all - it don't change layout to any layout. YaST stores changes (at least in) /etc/sysconfig/keyboard file (YAST_KEYBOARD variable), but here is obsolele KEYTABLE variable. Changes in YaST don't affect /etc/sysconfig/console variables variables. As we use converted X layout, we need reset them? Or maybe they are obsolete also? #18: Mindaugas Baranauskas (embar-) (2015-08-21 18:25:24) (reply to #17) Ech.. I installed some wrong version of YaST package... Reinstalled. Greek and Serbian seems good. Russian fallbacks to US. Ukrainian keyboard still seems wrong at all - it don't change layout to any layout. #19: Mindaugas Baranauskas (embar-) (2015-08-21 18:59:47) (reply to #17) Played a bit more... /etc/sysconfig/console variables is indeed important in terminal (then go by Ctrl+Alt+F1)! We must: * clear CONSOLE_UNICODEMAP, CONSOLE_SCREENMAP and CONSOLE_MAGIC variables * set CONSOLE_ENCODING="UTF-8" * not sure, which CONSOLE_FONT should be used #20: Mindaugas Baranauskas (embar-) (2015-08-21 19:23:18) (reply to #19) At least with lt and lt-std keymaps, best console fonts are lat4-16 and lat4a-16 #21: Mindaugas Baranauskas (embar-) (2015-08-21 19:38:24) (reply to #19) More findings: Fedora seems to use eurlatgr console font, that covers LatArCyrHeb and plus provides more special characters (according to https://fedoraproject.org/wiki/Changes/NewDefaultConsoleFont). openSUSE has eurlatgr console font as file: ///usr/share/kbd/consolefonts/eurlatgr.psfu.gz I tested it and it seems the best one! Even ←↓↑→ characters are displayed in console with this font. I suugest, we also must set /etc/sysconfig/console CONSOLE_FONT=" eurlatgr" #22: Mindaugas Baranauskas (embar-) (2015-08-22 17:42:53) (reply to #21) EurLatGr provides greater coverage for Latin and Greek characters, but at the cost of Arabic, Cyrillic and Hebrew characters being dropped. So we can use LatArCyrHeb-16 (or LatArCyrHeb-14) font for layouts with Arabic, Cyrillic and Hebrew characters. #23: Stefan Dirsch (sndirsch) (2015-08-24 09:43:30) I believe changing the marking layout immediately is intentional behaviour by YaST, but Ancor can comment on this. Also you cannot change the keyboard layout only for the current YaST window (limitation of X). So for now we cannot change this. Russian falls back to "us,ru", i.e. "us" is first and can be switched to "ru" by using Shift-Shift. I didn't want to change this, since 1) we had issues in the past when using "ru,us" instead (switching didn't work too well), 2) users are running into issues when trying to enter the ASCII password in displaymanager. Ukraine keyboard: We never had a working mapping from Linux console to X11. We definitely should fix it though. Please open a bug for this making sure adding me and Ancor to this bug. Indeed KEYTABLE variable in /etc/sysconfig/keyboard is obsolete. YaST now writes KEYMAP variable directly to /etc/vconsole. During displaymanager startup /etc/X11/xdm/keytable creates the required /etc/X11/xorg.conf.d/90-keytable.conf snippet by using systemd's localectl command. About changing the console font. Your propsal sounds reasonable to me, but is unrelated to this FATE request. Please open a bug for this as well again making sure to add me and Ancor to this bug. Thanks for prompt and thouroughly testing. Very much appreciated! #24: Mindaugas Baranauskas (embar-) (2015-08-24 14:44:42) (reply to #23) Bug for Ukraine keyboard https://bugzilla.opensuse.org/show_bug.cgi?id=942899 (https://bugzilla.opensuse.org/show_bug.cgi?id=942899) Bug for /etc/sysconfig/console: https://bugzilla.opensuse.org/show_bug.cgi?id=942896 (https://bugzilla.opensuse.org/show_bug.cgi?id=942896) -- openSUSE Feature: https://features.opensuse.org/318355
participants (1)
-
fate_noreply@suse.de