All of lore.kernel.org
 help / color / mirror / Atom feed
From: tike64@gmail.com
To: linux-kernel@vger.kernel.org
Subject: KDGKBENT and unicode
Date: Wed, 24 Sep 2008 16:25:08 +0300	[thread overview]
Message-ID: <48DA3FB4.1060207@gmail.com> (raw)

Dear linux-kernel,

I am trying to read keyboard in raw mode (K_MEDIUMRAW, to be exact). I 
hope to avoid reading all the keymaps from the kernel to the application 
for keycode translation. Therefore I call KDGKBENT ioctl for every 
keycode I get from the tty. Basically this works except, when the 
translation result is an unicode keysym or should I say the unicode 
value happens to be greater than 0xFF, I get K_HOLE.

This observation seems to be in harmony with the drivers/char/vt_ioctl.c 
code. There I learned that, if I had the keyboard in the K_UNICODE mode, 
I could get directly the 16 bit unicode values.

So I have two options:

1) Read the keymaps in K_UNICODE mode and do the translations myself 
while in K_MEDIUMRAW mode

2) For each keycode switch to K_UNICODE mode, ask the translation from 
kernel, switch back to K_MEDIUMRAW mode and read the next keycode (the 
continuous switching might have severe side effects).

The question is am I correct so far or am I miserably confused? Aren't 
there any smarter ways to do the translation?

The next question probably must be how do I handle CAPS with kernel 
keymaps? As the CAPS sensitivity is encoded in the type field of keysym 
value, it is lost when the value is 16 bit unicode. I am seeing this 
phenomenon in ordinary VT when I manage to load some keysyms as 16 bit 
unicode.

--

Timo

                 reply	other threads:[~2008-09-24 13:59 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=48DA3FB4.1060207@gmail.com \
    --to=tike64@gmail.com \
    --cc=linux-kernel@vger.kernel.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.