Linux console tools development discussion
 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
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 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

Linux console tools development discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/kbd/0 kbd/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 kbd kbd/ http://lore.altlinux.org/kbd \
		kbd@lists.altlinux.org kbd@lists.altlinux.ru kbd@lists.altlinux.com
	public-inbox-index kbd

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.kbd


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git