All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Gladkov <gladkov.alexey@gmail.com>
To: Linux console tools development discussion <kbd@lists.altlinux.org>
Subject: Re: [kbd] [PATCH] loadkeys: Auto-convert “traditional”/Unicode keysyms
Date: Wed, 15 Apr 2009 01:37:32 +0400	[thread overview]
Message-ID: <49E5021C.5040703@gmail.com> (raw)
In-Reply-To: <20090414174549.GA4174@graeme>

[-- Attachment #1: Type: text/plain, Size: 928 bytes --]

14.04.2009 21:45, Michael Schutte wrote:
> The Linux kernel distinguishes between K(KTYP, KVAL) keysyms and Unicode
> characters.  This patch makes loadkeys query the console’s Unicode mode
> and convert between the two keysym types according to the result.  The
> theoretical advantage is that less keymaps need both an 8-bit and a
> Unicode variant (cf. trq[u], ua[-utf]).

I have a problem with your patch:

LANG: ru_RU.UTF-8
keymap: data/keymaps/i386/qwerty/ruwin_cplk-UTF-8.map

The difference between the old and the new behavior is attached. This
is 'dumpkeys -n' output.

For example keycode 52 = U+044e -> U+f44e:

$ /usr/bin/printf '\u044e\n\uf44e\n'
ю


First character is cyrillic 'yu':

http://www.fileformat.info/info/unicode/char/044e/index.htm

Second is:

http://www.fileformat.info/info/unicode/char/f44e/index.htm

And also, you have not updated the documentation for new behaviour.

-- 
Rgrds, legion


[-- Attachment #2: auto-detect-keymaps-ru.diff --]
[-- Type: text/plain, Size: 16736 bytes --]

--- old.dump	2009-04-15 01:03:49 +0400
+++ new.dump	2009-04-15 01:03:53 +0400
@@ -74,81 +74,81 @@
 keycode  15 = 0x0009           0x0009           0x0009           0x0009          
 	alt	keycode  15 = 0x0809          
 	altgr	alt	keycode  15 = 0x0809          
-keycode  16 = +0x0b71          +0x0b51          U+0439           U+0419           0x0011           0x0011           0x0011          
+keycode  16 = +0x0b71          +0x0b51          U+f439           U+f419           0x0011           0x0011           0x0011          
 	alt	keycode  16 = 0x0871          
 	shift	alt	keycode  16 = 0x0851          
 	altgr	alt	keycode  16 = 0x0871          
 	shift	altgr	alt	keycode  16 = 0x0851          
 	control	alt	keycode  16 = 0x0811          
 	altgr	control	alt	keycode  16 = 0x0811          
-keycode  17 = +0x0b77          +0x0b57          U+0446           U+0426           0x0017           0x0017           0x0017          
+keycode  17 = +0x0b77          +0x0b57          U+f446           U+f426           0x0017           0x0017           0x0017          
 	alt	keycode  17 = 0x0877          
 	shift	alt	keycode  17 = 0x0857          
 	altgr	alt	keycode  17 = 0x0877          
 	shift	altgr	alt	keycode  17 = 0x0857          
 	control	alt	keycode  17 = 0x0817          
 	altgr	control	alt	keycode  17 = 0x0817          
-keycode  18 = +0x0b65          +0x0b45          U+0443           U+0423           0x0005           0x0005           0x0005          
+keycode  18 = +0x0b65          +0x0b45          U+f443           U+f423           0x0005           0x0005           0x0005          
 	alt	keycode  18 = 0x0865          
 	shift	alt	keycode  18 = 0x0845          
 	altgr	alt	keycode  18 = 0x0865          
 	shift	altgr	alt	keycode  18 = 0x0845          
 	control	alt	keycode  18 = 0x0805          
 	altgr	control	alt	keycode  18 = 0x0805          
-keycode  19 = +0x0b72          +0x0b52          U+043a           U+041a           0x0012           0x0012           0x0012          
+keycode  19 = +0x0b72          +0x0b52          U+f43a           U+f41a           0x0012           0x0012           0x0012          
 	alt	keycode  19 = 0x0872          
 	shift	alt	keycode  19 = 0x0852          
 	altgr	alt	keycode  19 = 0x0872          
 	shift	altgr	alt	keycode  19 = 0x0852          
 	control	alt	keycode  19 = 0x0812          
 	altgr	control	alt	keycode  19 = 0x0812          
-keycode  20 = +0x0b74          +0x0b54          U+0435           U+0415           0x0014           0x0014           0x0014          
+keycode  20 = +0x0b74          +0x0b54          U+f435           U+f415           0x0014           0x0014           0x0014          
 	alt	keycode  20 = 0x0874          
 	shift	alt	keycode  20 = 0x0854          
 	altgr	alt	keycode  20 = 0x0874          
 	shift	altgr	alt	keycode  20 = 0x0854          
 	control	alt	keycode  20 = 0x0814          
 	altgr	control	alt	keycode  20 = 0x0814          
-keycode  21 = +0x0b79          +0x0b59          U+043d           U+041d           0x0019           0x0019           0x0019          
+keycode  21 = +0x0b79          +0x0b59          U+f43d           U+f41d           0x0019           0x0019           0x0019          
 	alt	keycode  21 = 0x0879          
 	shift	alt	keycode  21 = 0x0859          
 	altgr	alt	keycode  21 = 0x0879          
 	shift	altgr	alt	keycode  21 = 0x0859          
 	control	alt	keycode  21 = 0x0819          
 	altgr	control	alt	keycode  21 = 0x0819          
-keycode  22 = +0x0b75          +0x0b55          U+0433           U+0413           0x0015           0x0015           0x0015          
+keycode  22 = +0x0b75          +0x0b55          U+f433           U+f413           0x0015           0x0015           0x0015          
 	alt	keycode  22 = 0x0875          
 	shift	alt	keycode  22 = 0x0855          
 	altgr	alt	keycode  22 = 0x0875          
 	shift	altgr	alt	keycode  22 = 0x0855          
 	control	alt	keycode  22 = 0x0815          
 	altgr	control	alt	keycode  22 = 0x0815          
-keycode  23 = +0x0b69          +0x0b49          U+0448           U+0428           0x0009           0x0009           0x0009          
+keycode  23 = +0x0b69          +0x0b49          U+f448           U+f428           0x0009           0x0009           0x0009          
 	alt	keycode  23 = 0x0869          
 	shift	alt	keycode  23 = 0x0849          
 	altgr	alt	keycode  23 = 0x0869          
 	shift	altgr	alt	keycode  23 = 0x0849          
 	control	alt	keycode  23 = 0x0809          
 	altgr	control	alt	keycode  23 = 0x0809          
-keycode  24 = +0x0b6f          +0x0b4f          U+0449           U+0429           0x000f           0x000f           0x000f          
+keycode  24 = +0x0b6f          +0x0b4f          U+f449           U+f429           0x000f           0x000f           0x000f          
 	alt	keycode  24 = 0x086f          
 	shift	alt	keycode  24 = 0x084f          
 	altgr	alt	keycode  24 = 0x086f          
 	shift	altgr	alt	keycode  24 = 0x084f          
 	control	alt	keycode  24 = 0x080f          
 	altgr	control	alt	keycode  24 = 0x080f          
-keycode  25 = +0x0b70          +0x0b50          U+0437           U+0417           0x0010           0x0010           0x0010          
+keycode  25 = +0x0b70          +0x0b50          U+f437           U+f417           0x0010           0x0010           0x0010          
 	alt	keycode  25 = 0x0870          
 	shift	alt	keycode  25 = 0x0850          
 	altgr	alt	keycode  25 = 0x0870          
 	shift	altgr	alt	keycode  25 = 0x0850          
 	control	alt	keycode  25 = 0x0810          
 	altgr	control	alt	keycode  25 = 0x0810          
-keycode  26 = 0x005b           0x007b           U+0445           U+0425           0x001b          
+keycode  26 = 0x005b           0x007b           U+f445           U+f425           0x001b          
 	altgr	control	keycode  26 = 0x001b          
 	alt	keycode  26 = 0x085b          
 	altgr	alt	keycode  26 = 0x085b          
-keycode  27 = 0x005d           0x007d           U+044a           U+042a           0x001d          
+keycode  27 = 0x005d           0x007d           U+f44a           U+f42a           0x001d          
 	altgr	control	keycode  27 = 0x001d          
 	alt	keycode  27 = 0x085d          
 	altgr	alt	keycode  27 = 0x085d          
@@ -166,77 +166,77 @@
 	shift	altgr	alt	keycode  29 = 0x0702          
 	control	alt	keycode  29 = 0x0702          
 	altgr	control	alt	keycode  29 = 0x0702          
-keycode  30 = +0x0b61          +0x0b41          U+0444           U+0424           0x0001           0x0001           0x0001          
+keycode  30 = +0x0b61          +0x0b41          U+f444           U+f424           0x0001           0x0001           0x0001          
 	alt	keycode  30 = 0x0861          
 	shift	alt	keycode  30 = 0x0841          
 	altgr	alt	keycode  30 = 0x0861          
 	shift	altgr	alt	keycode  30 = 0x0841          
 	control	alt	keycode  30 = 0x0801          
 	altgr	control	alt	keycode  30 = 0x0801          
-keycode  31 = +0x0b73          +0x0b53          U+044b           U+042b           0x0013           0x0013           0x0013          
+keycode  31 = +0x0b73          +0x0b53          U+f44b           U+f42b           0x0013           0x0013           0x0013          
 	alt	keycode  31 = 0x0873          
 	shift	alt	keycode  31 = 0x0853          
 	altgr	alt	keycode  31 = 0x0873          
 	shift	altgr	alt	keycode  31 = 0x0853          
 	control	alt	keycode  31 = 0x0813          
 	altgr	control	alt	keycode  31 = 0x0813          
-keycode  32 = +0x0b64          +0x0b44          U+0432           U+0412           0x0004           0x0004           0x0004          
+keycode  32 = +0x0b64          +0x0b44          U+f432           U+f412           0x0004           0x0004           0x0004          
 	alt	keycode  32 = 0x0864          
 	shift	alt	keycode  32 = 0x0844          
 	altgr	alt	keycode  32 = 0x0864          
 	shift	altgr	alt	keycode  32 = 0x0844          
 	control	alt	keycode  32 = 0x0804          
 	altgr	control	alt	keycode  32 = 0x0804          
-keycode  33 = +0x0b66          +0x0b46          U+0430           U+0410           0x0006           0x0006           0x0006          
+keycode  33 = +0x0b66          +0x0b46          U+f430           U+f410           0x0006           0x0006           0x0006          
 	alt	keycode  33 = 0x0866          
 	shift	alt	keycode  33 = 0x0846          
 	altgr	alt	keycode  33 = 0x0866          
 	shift	altgr	alt	keycode  33 = 0x0846          
 	control	alt	keycode  33 = 0x0806          
 	altgr	control	alt	keycode  33 = 0x0806          
-keycode  34 = +0x0b67          +0x0b47          U+043f           U+041f           0x0007           0x0007           0x0007          
+keycode  34 = +0x0b67          +0x0b47          U+f43f           U+f41f           0x0007           0x0007           0x0007          
 	alt	keycode  34 = 0x0867          
 	shift	alt	keycode  34 = 0x0847          
 	altgr	alt	keycode  34 = 0x0867          
 	shift	altgr	alt	keycode  34 = 0x0847          
 	control	alt	keycode  34 = 0x0807          
 	altgr	control	alt	keycode  34 = 0x0807          
-keycode  35 = +0x0b68          +0x0b48          U+0440           U+0420           0x0008           0x0008           0x0008          
+keycode  35 = +0x0b68          +0x0b48          U+f440           U+f420           0x0008           0x0008           0x0008          
 	alt	keycode  35 = 0x0868          
 	shift	alt	keycode  35 = 0x0848          
 	altgr	alt	keycode  35 = 0x0868          
 	shift	altgr	alt	keycode  35 = 0x0848          
 	control	alt	keycode  35 = 0x0808          
 	altgr	control	alt	keycode  35 = 0x0808          
-keycode  36 = +0x0b6a          +0x0b4a          U+043e           U+041e           0x000a           0x000a           0x000a          
+keycode  36 = +0x0b6a          +0x0b4a          U+f43e           U+f41e           0x000a           0x000a           0x000a          
 	alt	keycode  36 = 0x086a          
 	shift	alt	keycode  36 = 0x084a          
 	altgr	alt	keycode  36 = 0x086a          
 	shift	altgr	alt	keycode  36 = 0x084a          
 	control	alt	keycode  36 = 0x080a          
 	altgr	control	alt	keycode  36 = 0x080a          
-keycode  37 = +0x0b6b          +0x0b4b          U+043b           U+041b           0x000b           0x000b           0x000b          
+keycode  37 = +0x0b6b          +0x0b4b          U+f43b           U+f41b           0x000b           0x000b           0x000b          
 	alt	keycode  37 = 0x086b          
 	shift	alt	keycode  37 = 0x084b          
 	altgr	alt	keycode  37 = 0x086b          
 	shift	altgr	alt	keycode  37 = 0x084b          
 	control	alt	keycode  37 = 0x080b          
 	altgr	control	alt	keycode  37 = 0x080b          
-keycode  38 = +0x0b6c          +0x0b4c          U+0434           U+0414           0x000c           0x000c           0x000c          
+keycode  38 = +0x0b6c          +0x0b4c          U+f434           U+f414           0x000c           0x000c           0x000c          
 	alt	keycode  38 = 0x086c          
 	shift	alt	keycode  38 = 0x084c          
 	altgr	alt	keycode  38 = 0x086c          
 	shift	altgr	alt	keycode  38 = 0x084c          
 	control	alt	keycode  38 = 0x080c          
 	altgr	control	alt	keycode  38 = 0x080c          
-keycode  39 = 0x003b           0x003a           U+0436           U+0416          
+keycode  39 = 0x003b           0x003a           U+f436           U+f416          
 	alt	keycode  39 = 0x083b          
 	altgr	alt	keycode  39 = 0x083b          
-keycode  40 = 0x0027           0x0022           U+044d           U+042d           0x0007          
+keycode  40 = 0x0027           0x0022           U+f44d           U+f42d           0x0007          
 	altgr	control	keycode  40 = 0x0007          
 	alt	keycode  40 = 0x0827          
 	altgr	alt	keycode  40 = 0x0827          
-keycode  41 = 0x0060           0x007e           U+0451           U+0401           0x0000          
+keycode  41 = 0x0060           0x007e           U+f451           U+f401           0x0000          
 	altgr	control	keycode  41 = 0x0000          
 	alt	keycode  41 = 0x0860          
 	altgr	alt	keycode  41 = 0x0860          
@@ -253,61 +253,61 @@
 	shift	alt	keycode  43 = 0x087c          
 	altgr	alt	keycode  43 = 0x085c          
 	shift	altgr	alt	keycode  43 = 0x087c          
-keycode  44 = +0x0b7a          +0x0b5a          U+044f           U+042f           0x001a           0x001a           0x001a          
+keycode  44 = +0x0b7a          +0x0b5a          U+f44f           U+f42f           0x001a           0x001a           0x001a          
 	alt	keycode  44 = 0x087a          
 	shift	alt	keycode  44 = 0x085a          
 	altgr	alt	keycode  44 = 0x087a          
 	shift	altgr	alt	keycode  44 = 0x085a          
 	control	alt	keycode  44 = 0x081a          
 	altgr	control	alt	keycode  44 = 0x081a          
-keycode  45 = +0x0b78          +0x0b58          U+0447           U+0427           0x0018           0x0018           0x0018          
+keycode  45 = +0x0b78          +0x0b58          U+f447           U+f427           0x0018           0x0018           0x0018          
 	alt	keycode  45 = 0x0878          
 	shift	alt	keycode  45 = 0x0858          
 	altgr	alt	keycode  45 = 0x0878          
 	shift	altgr	alt	keycode  45 = 0x0858          
 	control	alt	keycode  45 = 0x0818          
 	altgr	control	alt	keycode  45 = 0x0818          
-keycode  46 = +0x0b63          +0x0b43          U+0441           U+0421           0x0003           0x0003           0x0003          
+keycode  46 = +0x0b63          +0x0b43          U+f441           U+f421           0x0003           0x0003           0x0003          
 	alt	keycode  46 = 0x0863          
 	shift	alt	keycode  46 = 0x0843          
 	altgr	alt	keycode  46 = 0x0863          
 	shift	altgr	alt	keycode  46 = 0x0843          
 	control	alt	keycode  46 = 0x0803          
 	altgr	control	alt	keycode  46 = 0x0803          
-keycode  47 = +0x0b76          +0x0b56          U+043c           U+041c           0x0016           0x0016           0x0016          
+keycode  47 = +0x0b76          +0x0b56          U+f43c           U+f41c           0x0016           0x0016           0x0016          
 	alt	keycode  47 = 0x0876          
 	shift	alt	keycode  47 = 0x0856          
 	altgr	alt	keycode  47 = 0x0876          
 	shift	altgr	alt	keycode  47 = 0x0856          
 	control	alt	keycode  47 = 0x0816          
 	altgr	control	alt	keycode  47 = 0x0816          
-keycode  48 = +0x0b62          +0x0b42          U+0438           U+0418           0x0002           0x0002           0x0002          
+keycode  48 = +0x0b62          +0x0b42          U+f438           U+f418           0x0002           0x0002           0x0002          
 	alt	keycode  48 = 0x0862          
 	shift	alt	keycode  48 = 0x0842          
 	altgr	alt	keycode  48 = 0x0862          
 	shift	altgr	alt	keycode  48 = 0x0842          
 	control	alt	keycode  48 = 0x0802          
 	altgr	control	alt	keycode  48 = 0x0802          
-keycode  49 = +0x0b6e          +0x0b4e          U+0442           U+0422           0x000e           0x000e           0x000e          
+keycode  49 = +0x0b6e          +0x0b4e          U+f442           U+f422           0x000e           0x000e           0x000e          
 	alt	keycode  49 = 0x086e          
 	shift	alt	keycode  49 = 0x084e          
 	altgr	alt	keycode  49 = 0x086e          
 	shift	altgr	alt	keycode  49 = 0x084e          
 	control	alt	keycode  49 = 0x080e          
 	altgr	control	alt	keycode  49 = 0x080e          
-keycode  50 = +0x0b6d          +0x0b4d          U+044c           U+042c           0x000d           0x000d           0x000d          
+keycode  50 = +0x0b6d          +0x0b4d          U+f44c           U+f42c           0x000d           0x000d           0x000d          
 	alt	keycode  50 = 0x086d          
 	shift	alt	keycode  50 = 0x084d          
 	altgr	alt	keycode  50 = 0x086d          
 	shift	altgr	alt	keycode  50 = 0x084d          
 	control	alt	keycode  50 = 0x080d          
 	altgr	control	alt	keycode  50 = 0x080d          
-keycode  51 = 0x002c           0x003c           U+0431           U+0411          
+keycode  51 = 0x002c           0x003c           U+f431           U+f411          
 	alt	keycode  51 = 0x082c          
 	shift	alt	keycode  51 = 0x083c          
 	altgr	alt	keycode  51 = 0x082c          
 	shift	altgr	alt	keycode  51 = 0x083c          
-keycode  52 = 0x002e           0x003e           U+044e           U+042e           0x020e          
+keycode  52 = 0x002e           0x003e           U+f44e           U+f42e           0x020e          
 	alt	keycode  52 = 0x082e          
 	shift	alt	keycode  52 = 0x083e          
 	altgr	alt	keycode  52 = 0x082e          

  reply	other threads:[~2009-04-14 21:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-14 17:45 [kbd] [PATCH] loadkeys: Auto-convert “traditional”/Unicode keysyms Michael Schutte
2009-04-14 21:37 ` Alexey Gladkov [this message]
2009-04-15 13:53   ` Michael Schutte
2009-04-16  0:07     ` Alexey Gladkov
2009-04-16 15:45       ` Michael Schutte
2009-04-16 23:01         ` Alexey Gladkov
2009-04-17 13:44           ` Alexey Gladkov
2009-04-17 20:01           ` Michael Schutte
2009-04-19 15:59             ` Alexey Gladkov
2009-04-19 16:50               ` Michael Schutte
2009-04-19 17:14                 ` Alexey Gladkov
2009-04-20 18:39                   ` Michael Schutte
2009-04-21 10:08                   ` Alexey Gladkov
2009-04-21 13:20                     ` Michael Schutte
2009-04-16 23:36 ` Alexey Gladkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49E5021C.5040703@gmail.com \
    --to=gladkov.alexey@gmail.com \
    --cc=kbd@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.