Has anyone else had trouble with UTF-8 mode on the Linux console?

I'm using a sensible font (lat1u-16.psf.gz and iso01.f16.psf.gz, both of
which have an embedded SFM/unimap).  I'm using the keymap
/usr/share/keymaps/i386/qwerty/uk.kmap.gz (standard UK QWERTY), which
appears to be ISO-8859 encoded (according to file).

If I start the system and log into a console, I can type as you would
expect:

           +-----------+-----------+
           | Unshifted |  Shifted  |
+----------+-----------+-----------+
| Caps On  | ABCDEF    | abcdef    |
+----------+-----------+-----------+
| Caps Off | abcdef    | ABCDEF    |
+----------+-----------+-----------+

The system default locale is C, and so the console is put into byte
mode at boot.

If I now put the terminal into UTF-8 mode:
  $ unicode_start
I now see this:

           +-----------+-----------+
           | Unshifted |  Shifted  |
+----------+-----------+-----------+
| Caps On  | ABcDeF    | abCdEf    |
+----------+-----------+-----------+
| Caps Off | abcdef    | ABCDEF    |
+----------+-----------+-----------+

The letters 'C' and 'E' have become inverted when caps-lock is on.
Reloading the keymap (with loadkeys) has no effect.  If I switch
back to byte mode with
  $ unicode_stop
the change is still in effect, but if I reload the keymap (with
loadkeys) then the keyboard operation is restored to normality.


I checked the Linux keyboard and console HOWTO, but didn't find
anything appropriate.

I'm using:
Linux 2.6.[6-8] and current 2.4 kernels
console-tools 0.2.3


The only difference I can see between 'C' and 'E' and the other letters
is their lines in the keymap:

keymaps 0-2,4-6,8-9,12
[...]
keycode  16 = q
keycode  17 = w
keycode  18 = +e                +E                currency
Control_e        Control_e        Control_e        Meta_e
Meta_E           Meta_Control_e
keycode  19 = r
keycode  20 = t
[...]
keycode  44 = z
keycode  45 = x
keycode  46 = +c                +C                cent
Control_c        Control_c        Control_c        Meta_c
Meta_C           Meta_Control_c
keycode  47 = v
keycode  48 = b
[...]

They have a whole stack of modifiers, but I'm not sure what these do.
Changing the "+E" and "+C" to "+e" and "+c" only resulted in an
unusable keymap (I thought they might need inverting).


Has anyone else seen this behaviour or is able to replicate the above?
Can anyone suggest a fix for it?


Many thanks,
Roger

-- 
Roger Leigh

                Printing on GNU/Linux?  http://gimp-print.sourceforge.net/
                GPG Public Key: 0x25BFB848.  Please sign and encrypt your mail.

--
Linux-UTF8:   i18n of Linux on all levels
Archive:      http://mail.nl.linux.org/linux-utf8/

Reply via email to