Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Samuel Thibault, le mer. 06 juin 2018 15:19:07 +0200, a ecrit: > Samuel Thibault, le ven. 01 juin 2018 16:28:23 +0200, a ecrit: > > Anton Zinoviev, le ven. 01 juin 2018 17:22:06 +0300, a ecrit: > > > On Fri, Jun 01, 2018 at 04:10:36PM +0200, Samuel Thibault wrote: > > > > U+015A would be what you'd expect for a latin1 language (^ + S), and I > > > > guess due to rule ordering, the existing rule doesn't get overrident by > > > > the rule you introduced, so we need to explicitly remove the existing > > > > rule. > > > > > > And what should the future console-setup do with compose+^+S when the > > > encoding is UTF-8? How is this problem solved in X? > > > > Well, in X XK_dead_caron is separate from XK_dead_circumflex. The issue > > with Linux is that it only has a few dead keys. Maybe we should just go > > and define all X11 deadkeys in Linux (there are like 55 of them, that > > will fit), to be done with the issue. > > FTR in the bug report, I have submitted a patch to the LKML on Sun, 3 > Jun ("kbd: complete dead keys definitions"). FTR, it is currently in v4.19-rc7, so it will extremely likely be in 4.19. Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Samuel Thibault, le ven. 01 juin 2018 16:28:23 +0200, a ecrit: > Anton Zinoviev, le ven. 01 juin 2018 17:22:06 +0300, a ecrit: > > On Fri, Jun 01, 2018 at 04:10:36PM +0200, Samuel Thibault wrote: > > > U+015A would be what you'd expect for a latin1 language (^ + S), and I > > > guess due to rule ordering, the existing rule doesn't get overrident by > > > the rule you introduced, so we need to explicitly remove the existing > > > rule. > > > > And what should the future console-setup do with compose+^+S when the > > encoding is UTF-8? How is this problem solved in X? > > Well, in X XK_dead_caron is separate from XK_dead_circumflex. The issue > with Linux is that it only has a few dead keys. Maybe we should just go > and define all X11 deadkeys in Linux (there are like 55 of them, that > will fit), to be done with the issue. FTR in the bug report, I have submitted a patch to the LKML on Sun, 3 Jun ("kbd: complete dead keys definitions"). Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Fri, Jun 01, 2018 at 04:28:23PM +0200, Samuel Thibault wrote: > > Maybe we should just go and define all X11 deadkeys in Linux (there > are like 55 of them, that will fit), to be done with the issue. Either this, or console-setup can have a hardcoded list of "Latin2" layouts. Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Anton Zinoviev, le ven. 01 juin 2018 17:22:06 +0300, a ecrit: > On Fri, Jun 01, 2018 at 04:10:36PM +0200, Samuel Thibault wrote: > > U+015A would be what you'd expect for a latin1 language (^ + S), and I > > guess due to rule ordering, the existing rule doesn't get overrident by > > the rule you introduced, so we need to explicitly remove the existing > > rule. > > And what should the future console-setup do with compose+^+S when the > encoding is UTF-8? How is this problem solved in X? Well, in X XK_dead_caron is separate from XK_dead_circumflex. The issue with Linux is that it only has a few dead keys. Maybe we should just go and define all X11 deadkeys in Linux (there are like 55 of them, that will fit), to be done with the issue. Now, whenever there are still shortcut conflicts, languages have their own compose file in /usr/share/X11/local/$LANG.UTF-8/Compose Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Fri, Jun 01, 2018 at 04:10:36PM +0200, Samuel Thibault wrote: > > U+015A would be what you'd expect for a latin1 language (^ + S), and I > guess due to rule ordering, the existing rule doesn't get overrident by > the rule you introduced, so we need to explicitly remove the existing > rule. And what should the future console-setup do with compose+^+S when the encoding is UTF-8? How is this problem solved in X? Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Jan Rafaj, le ven. 01 juin 2018 16:06:34 +0200, a ecrit: > the following ones still do not produce the > corresponding caron-ified characters as they should - I have no idea why: > > compose '^' 'S' to U+0160 # instead produces U+015A (0xC59A) U+015A would be what you'd expect for a latin1 language (^ + S), and I guess due to rule ordering, the existing rule doesn't get overrident by the rule you introduced, so we need to explicitly remove the existing rule. Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Thu, 31 May 2018, Samuel Thibault wrote: Anton Zinoviev, le ven. 01 juin 2018 00:48:18 +0300, a ecrit: If a bug makes a package totally unusable, but otherwise harmless, then this bug is (usually) not going to be fixed in the stable release. Mmm, I believe that sentence enters the "important" area, or even more: 4 important a bug which has a major effect on the usability of a package, without rendering it completely unusable to everyone. For me, I took a liberty to mark it 'important' just becouse something, that appeared to work in former Debian releases (console with ability to write czech characters), has suddenly stopped working and I wasnt able to obtain satisfactory results that would mitigate the problem - from that, I thought it would somehow fall under the 'important' definition. But feel free to change... Now, to my latest post. I did thorough checking of all the compose definitions I've suggested to add, and have noticed that the following ones still do not produce the corresponding caron-ified characters as they should - I have no idea why: compose '^' 'S' to U+0160 # instead produces U+015A (0xC59A) compose '^' 's' to U+0161 # instead produces U+00A8 (0xC2A8) compose '^' 'Z' to U+017D # instead produces U+00B4 (0xC2B4) compose '^' 'z' to U+017E # instead produces U+00B8 (0xC2B8) All the other compose definitions produce correct results. If you could also please look for the reason of this. Thanks, Jan
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Anton Zinoviev, le ven. 01 juin 2018 00:48:18 +0300, a ecrit: > If a bug makes a package totally unusable, but otherwise harmless, > then this bug is (usually) not going to be fixed in the stable > release. Mmm, I believe that sentence enters the "important" area, or even more: 4 important a bug which has a major effect on the usability of a package, without rendering it completely unusable to everyone. while 2 grave makes the package in question unusable by most or all users, or causes data loss, or introduces a security hole allowing access to the accounts of users who use the package. Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Hello guys, Thanks for your valuable input, and for shedding more light on the inners of the current localisation approach. The layouts from the 'kbd' package do not work with UTF-8 input. I've used them in the past with 1-byte input forced in the kernel by adding the 'vt.default_utf8=0' boot parameter.. Anton, thanks for suggesting the workaround. However, adding the kmap "snapped" with ckbcomp and hand-modified afterwards as a value to 'KMAP=' in the /etc/default/keyboard is not really a workaround, since this overrides whatever that the user may have set in the XKBOPTIONS (such as grp switching/toggling), effectively leaving her/him with only the localised KMAP loaded. Nevertheless, the hand-modification you've suggested for me was the missing key in the puzzle - please see further. With all the above said, I've been able to create a (hopefully) complete set of all the missing compose defs for the czech letters. Please see the attached file. If you could append this to the /etc/console-setup/compose.ISO-8859-2.inc file. This will add all the missing definitions, enabling the user to input all the czech letters on a cz keyboard layout, provided that (s)he has defined either 'Lat2' or 'ISO-8859-2' for the 'CODESET=' in the /etc/default/console-setup . I think this could be fixed right in the Stretch. With kind regards, Jan compose '^' 'C' to U+010C compose '^' 'c' to U+010D compose '^' 'D' to U+010E compose '^' 'd' to U+010F compose '^' 'E' to U+011A compose '^' 'e' to U+011B compose '^' 'L' to U+013D compose '^' 'l' to U+013E compose '^' 'N' to U+0147 compose '^' 'n' to U+0148 compose '^' 'R' to U+0158 compose '^' 'r' to U+0159 compose '^' 'S' to U+0160 compose '^' 's' to U+0161 compose '^' 'T' to U+0164 compose '^' 't' to U+0165 compose '^' 'Z' to U+017D compose '^' 'z' to U+017E compose ''' 'A' to U+00C1 compose ''' 'E' to U+00C9 compose ''' 'I' to U+00CD compose ''' 'O' to U+00D3 compose ''' 'U' to U+00DA compose ''' 'Y' to U+00DD compose ''' 'a' to U+00E1 compose ''' 'e' to U+00E9 compose ''' 'i' to U+00ED compose ''' 'o' to U+00F3 compose ''' 'u' to U+00FA compose ''' 'y' to U+00FD compose ''' 'C' to U+0106 compose ''' 'c' to U+0107 compose ''' 'L' to U+0139 compose ''' 'l' to U+013A compose ''' 'N' to U+0143 compose ''' 'n' to U+0144 compose ''' 'R' to U+0154 compose ''' 'r' to U+0155 compose ''' 'S' to U+015A compose ''' 's' to U+015B compose ''' 'Z' to U+0179 compose ''' 'z' to U+017A
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Thu, May 31, 2018 at 11:12:43PM +0300, Anton Zinoviev wrote: > > only important bugs are fixed I realised the word 'important' was very inapropriate in this context. What is unimportant for one user can be very important for another. So by 'important' bugs I meant things about unauthorized access or corruption/deletion of data. If a bug makes a package totally unusable, but otherwise harmless, then this bug is (usually) not going to be fixed in the stable release. Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Mon, May 28, 2018 at 12:25:04PM +0200, Jan Rafaj wrote: > > Anton, thanks for suggesting the workaround. However, adding the kmap > "snapped" with ckbcomp and hand-modified afterwards as a value to 'KMAP=' in > the /etc/default/keyboard is not really a workaround, since > this overrides whatever that the user may have set in the XKBOPTIONS (such > as grp switching/toggling), effectively leaving her/him with only the > localised KMAP loaded. Instead of the command ckbcomp cz >cz.kmap which I suggested in my previous message, you can use something like ckbcomp cz dvorak-ucw grp:win_menu_switch lv3:menu_switch >cz.kmap See `ckbcomp -help` or `man ckbcomp`. > With all the above said, I've been able to create a (hopefully) complete > set of all the missing compose defs for the czech letters. Thanks, this will be useful. > I think this could be fixed right in the Stretch. When I have time I will upload a fixed package to Unstable. I am not sure, but I think only important bugs are fixed in the stable releases of Debian. Unless there is some change in the policies of Debian of which I am not aware (which is not impossible, to be honest...). Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Mon, 28 May 2018, Jan Rafaj wrote: attached file. If you could append this to the /etc/console-setup/compose.ISO-8859-2.inc file. This will add all the missing definitions, enabling the user to input all the czech letters on a cz keyboard layout, provided that (s)he has defined either 'Lat2' or 'ISO-8859-2' for the 'CODESET=' in the /etc/default/console-setup . I'm taking back the "provided that (s)he has defined either 'Lat2' or 'ISO-8859-2' for the 'CODESET=' in the /etc/default/console-setup". I've been really only able to come up with this workaround: 1. do just once: cat bug-899979-missing-compose-defs-for-czech-console-kb >> \ /etc/console-setup/compose.ISO-8859-2.inc 2. add to /etc/rc.local : sed -ri 's|^(CHARMAP=").*|\1ISO-8859-2"|' /etc/default/console-setup setupcon sed -ri 's|^(CHARMAP=").*|\1UTF-8"|' /etc/default/console-setup setupcon 3. reboot Jan
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Hello guys, Thanks for your valuable input, and for shedding more light on the inners of the current localisation approach. The layouts from the 'kbd' package do not work with UTF-8 input. I've used them in the past with 1-byte input forced in the kernel by adding the 'vt.default_utf8=0' boot parameter.. Anton, thanks for suggesting the workaround. However, adding the kmap "snapped" with ckbcomp and hand-modified afterwards as a value to 'KMAP=' in the /etc/default/keyboard is not really a workaround, since this overrides whatever that the user may have set in the XKBOPTIONS (such as grp switching/toggling), effectively leaving her/him with only the localised KMAP loaded. Nevertheless, the hand-modification you've suggested for me was the missing key in the puzzle - please see further. With all the above said, I've been able to create a (hopefully) complete set of all the missing compose defs for the czech letters. Please see the attached file. If you could append this to the /etc/console-setup/compose.ISO-8859-2.inc file. This will add all the missing definitions, enabling the user to input all the czech letters on a cz keyboard layout, provided that (s)he has defined either 'Lat2' or 'ISO-8859-2' for the 'CODESET=' in the /etc/default/console-setup . I think this could be fixed right in the Stretch. With kind regards, Jan compose '^' 'C' to U+010C compose '^' 'c' to U+010D compose '^' 'D' to U+010E compose '^' 'd' to U+010F compose '^' 'E' to U+011A compose '^' 'e' to U+011B compose '^' 'L' to U+013D compose '^' 'l' to U+013E compose '^' 'N' to U+0147 compose '^' 'n' to U+0148 compose '^' 'R' to U+0158 compose '^' 'r' to U+0159 compose '^' 'S' to U+0160 compose '^' 's' to U+0161 compose '^' 'T' to U+0164 compose '^' 't' to U+0165 compose '^' 'Z' to U+017D compose '^' 'z' to U+017E compose ''' 'A' to U+00C1 compose ''' 'E' to U+00C9 compose ''' 'I' to U+00CD compose ''' 'O' to U+00D3 compose ''' 'U' to U+00DA compose ''' 'Y' to U+00DD compose ''' 'a' to U+00E1 compose ''' 'e' to U+00E9 compose ''' 'i' to U+00ED compose ''' 'o' to U+00F3 compose ''' 'u' to U+00FA compose ''' 'y' to U+00FD compose ''' 'C' to U+0106 compose ''' 'c' to U+0107 compose ''' 'L' to U+0139 compose ''' 'l' to U+013A compose ''' 'N' to U+0143 compose ''' 'n' to U+0144 compose ''' 'R' to U+0154 compose ''' 'r' to U+0155 compose ''' 'S' to U+015A compose ''' 's' to U+015B compose ''' 'Z' to U+0179 compose ''' 'z' to U+017A
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Anton Zinoviev, le dim. 27 mai 2018 20:05:30 +0300, a ecrit: > Ah, I didn't know that the compose sequences are used for the dead keys. Dead keys simply produce compose + '`' or '\'' or '^' or '~' or '"' or ',' yes. > Compose sequences in console-setup are encoding-based. See for example > /etc/console-setup/compose.ISO-8859-2.inc. Dcaron is not there. Is it created by hand? All decomposable latin2 characters should be added there then. Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Sat, May 26, 2018 at 01:17:03PM +0200, Samuel Thibault wrote: > > Keymaps do have e.g. > > ./keymaps/i386/qwerty/et.kmap:compose '^' 'S' to Scaron > > I don't remember whether console-setup generates compose sequences, but > it should be feasible. Ah, I didn't know that the compose sequences are used for the dead keys. Compose sequences in console-setup are encoding-based. See for example /etc/console-setup/compose.ISO-8859-2.inc. However at present there is no file compose.UTF-8.inc and even if there is one ckbcomp will not use it. On Thu, May 24, 2018 at 10:46:36AM +0200, Jan Rafaj wrote: > > Please suggest a fix or a workaround. Thanks. This bug should be fixed in a future version of console-setup. But for the time being I can suggest the following fix. Run (as root) cd /etc/console-setup/ ckbcomp cz >cz.kmap Open the created file cz.kmap in a text editor and add the following two lines at the end: compose '^' 'd' to U+010F compose '^' 'D' to U+010E Run (as root) in order to confirm that the new layout works as it should: loadkeys cz.kmap If it does, then add in the file /etc/default/keyboard the following line: KMAP=/etc/console-setup/cz.kmap Remove this line from /etc/default/keyboard when you receive a message that the bug has been fixed. Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Hello, Anton Zinoviev, le sam. 26 mai 2018 12:20:59 +0300, a ecrit: > I have some doubts that the dead keys are > usable with non-Latin1 symbols on the console. Keymaps do have e.g. ./keymaps/i386/qwerty/et.kmap:compose '^' 'S' to Scaron I don't remember whether console-setup generates compose sequences, but it should be feasible. There are 6 available dead keys (`, ', ^, ~, ", ,), console-setup could allocate them dynamically for the Xkb-provided deadkey definitions, and use unicode normalization decompositions with combining characters to generate all compose sequences that can be typed. Samuel
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
On Thu, May 24, 2018 at 10:46:36AM +0200, Jan Rafaj wrote: > > I have confirmed that the problem described exists for the "bksl", > "qwerty" and "qwerty_bksl" keyboard variants, as well as XKBVARIANT "" > (in the /etc/default/keyboard). > > The problem described above appeared since the switch from the kbd > package to the keyboard-configuration/console-setup packages, and did not > exist in Debian < 9. The original keyboard layouts of kbd are in the package console-data. Can you install this package and see if some of the Czech layouts works properly with UTF-8 encoding. I have some doubts that the dead keys are usable with non-Latin1 symbols on the console. You can try the various Czech layouts with one of the following six commands: loadkeys cz-lat2.kmap.gz loadkeys cz-us-qwerty.kmap.gz loadkeys cz-lat2-prog.kmap.gz loadkeys cz-us-qwertz.kmap.gz loadkeys sunt5-cz-us.kmap.gz loadkeys sunt5-us-cz.kmap.gz Anton Zinoviev
Bug#899979: keyboard-configuration: the caron dead-key of the czech keyboard on the console does not work as expected
Package: keyboard-configuration Version: 1.164 Severity: important Tags: l10n Dear Maintainer, *** Reporter, please consider answering these questions, where appropriate *** * What led up to the situation? * What exactly did you do (or not do) that was effective (or ineffective)? * What was the outcome of this action? * What outcome did you expect instead? *** End of the template - remove these template lines *** Severity: important When on the console, while switched to the czech keyboard layout, the keyboard button used as the dead key for the caron (the one marked with "+" next to the backspace on the international PC keyboard) does not produce characters with the caron above the letter. Prerequisite: toggle the keyboard from us to cz by once pressing CTRL and SHIFT together Current behavior: when pressing SHIFT and + together, followed by pressing "d", produces: ^d when holding SHIFT, and pressing + followed by pressing "d", produces: ^D Expected behavior: when pressing SHIFT and + together, followed by pressing "d", should produce a character with the UTF-8 code 0xC48F: ď when holding SHIFT, and pressing + followed by pressing "d", should produce a character with the UTF-8 code 0xC48E: Ď The effect is the same for the "t", "n", "c" and any other character in the czech alphabet that has the variant with the caron above the letter, capitals including, and when one tries to write that character using the caron dead key on the czech keyboard. So, for example, instead of: ť ň č Č I get: ^t ^n ^c ^C The above has been observed with the following setup: $ cat /etc/debian_version 9.4 $ uname -a Linux tst 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux $ cat /proc/cmdline BOOT_IMAGE=/boot/vmlinuz-4.9.0-6-amd64 root=UUID=2bc1c9e8-e157-4d42-90b7-24e165cccf87 ro nomodeset $ COLUMNS=200 dpkg -l keyboard-configuration console-setup Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-==---= ii console-setup 1.164all console font and keymap setup program ii keyboard-configuration 1.164all system-wide keyboard preferences $ cat /etc/default/keyboard # KEYBOARD CONFIGURATION FILE # Consult the keyboard(5) manual page. XKBMODEL="pc105" XKBLAYOUT="us,cz" XKBVARIANT=",qwerty" XKBOPTIONS="grp:alt_shift_toggle" BACKSPACE="guess" $ cat /etc/default/console-setup # CONFIGURATION FILE FOR SETUPCON # Consult the console-setup(5) manual page. ACTIVE_CONSOLES="/dev/tty[1-6]" CHARMAP="UTF-8" CODESET="Lat2" FONTFACE="VGA" FONTSIZE="8x16" $ cat /etc/default/locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 --- I have confirmed that the problem described exists for the "bksl", "qwerty" and "qwerty_bksl" keyboard variants, as well as XKBVARIANT "" (in the /etc/default/keyboard). The problem described above appeared since the switch from the kbd package to the keyboard-configuration/console-setup packages, and did not exist in Debian < 9. Please suggest a fix or a workaround. Thanks. -- System Information: Debian Release: 9.4 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-6-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages keyboard-configuration depends on: ii debconf 1.5.61 ii liblocale-gettext-perl 1.07-3+b1 keyboard-configuration recommends no packages. keyboard-configuration suggests no packages. Versions of packages console-setup depends on: ii console-setup-linux 1.164 ii debconf 1.5.61 ii xkb-data 2.19-1+deb9u1 Versions of packages console-setup suggests: ii locales 2.24-11+deb9u3 ii lsb-base 9.20161125 Versions of packages console-setup-linux depends on: ii init-system-helpers 1.48 ii initscripts 2.88dsf-59.9 ii kbd 2.0.3-2+b1 Versions of packages console-setup-linux suggests: ii console-setup 1.164 Versions of packages keyboard-configuration is related to: ii console-common0.7.89 ii console-data 2:1.12-5 pn console-tools pn gnome-control-center ii kbd 2.0.3-2+b1 ii systemd 232-25+deb9u3 -- debconf information excluded