UTF-8 keyboard?

Shachar Shemesh sun at shemesh.biz
Sat Jun 21 15:42:11 CDT 2003


Hi all,

A while back someone (I think it was Alexander) mentioned something 
about UTF-8 working for keyboard detection and entering info. That same 
mistyrious someone said it was in XOO, and will be merged when Alexander 
finishes his merges.

I just tried it with latest CVS, and I am getting mixed results. If I'm 
using an unknown encoding, when I run wine with +keyboard, I get:

> trace:keyboard:X11DRV_KEYBOARD_DetectLayout matches=22, mismatches=25, 
> seq=21, score=-56
> trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is 
> "Israeli keyboard layout"
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF 
> assigned to keycode 54:
> trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 
> assigned to keycode 73:
> trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 
> assigned to keycode 75:
> trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
> trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN 
> and UP messages.
> trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of 
> toggle key. InputKeyStateTable[0x90] = 0x1
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000ff7f
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x00000cf9
> err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CF9 
> (hebrew_shin) :
> err:keyboard:X11DRV_ToUnicode 
> (virtKey=41,scanCode=1E,keycode=26,state=2010)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x00000cec
> err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CEC 
> (hebrew_lamed) :
> err:keyboard:X11DRV_ToUnicode 
> (virtKey=4B,scanCode=25,keycode=2D,state=2010)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x00000ce5
> err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CE5 
> (hebrew_waw) :
> err:keyboard:X11DRV_ToUnicode 
> (virtKey=55,scanCode=16,keycode=1E,state=2010)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x00000ced
> err:keyboard:X11DRV_ToUnicode Please report: no char for keysym 0CED 
> (hebrew_finalmem) :
> err:keyboard:X11DRV_ToUnicode 
> (virtKey=4F,scanCode=18,keycode=20,state=2010)

When I run it with en_US.UTF-8, I get:

> trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is 
> "Israeli keyboard layout"
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF 
> assigned to keycode 54:
> trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 
> assigned to keycode 73:
> trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 
> assigned to keycode 75:
> trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
> trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN 
> and UP messages.
> trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of 
> toggle key. InputKeyStateTable[0x90] = 0x1
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000ff7f
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)

That is - no errors, but I don't get any characters on screen either.

When running this with locale he_IL, I get this:

> trace:keyboard:X11DRV_KEYBOARD_DetectLayout detected layout is 
> "Israeli keyboard layout"
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key DF 
> assigned to keycode 54:
> trace:keyboard:X11DRV_InitKeyboard (FF9D (KP_Begin) FFB5 (KP_5) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E0 
> assigned to keycode 73:
> trace:keyboard:X11DRV_InitKeyboard (FFEB (Super_L) FFEB (Super_L) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000fe08
> trace:keyboard:X11DRV_InitKeyboard OEM specific virtual key E1 
> assigned to keycode 75:
> trace:keyboard:X11DRV_InitKeyboard (FF67 (Menu) FF67 (Menu) 0 
> (NoSymbol) 0 (NoSymbol) )
> trace:keyboard:X11DRV_KeyEvent Adjusting NumLock state.
> trace:keyboard:KEYBOARD_GenerateMsg OFF + Keypress => generating DOWN 
> and UP messages.
> trace:keyboard:KEYBOARD_GenerateMsg INTERM : don't treat release of 
> toggle key. InputKeyStateTable[0x90] = 0x1
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 77 (0x4D)
> trace:keyboard:KEYBOARD_MapDeadKeysym no character for dead keysym 
> 0x0000ff7f
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 38 (0x26)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 45 (0x2D)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 30 (0x1E)
> trace:keyboard:X11DRV_ToUnicode NumLockMask = 0010
> trace:keyboard:X11DRV_ToUnicode AltGrMask = 2000
> trace:keyboard:X11DRV_ToUnicode Found keycode 32 (0x20)

Characters do appear on screen, this time. Could it just be that edit 
control (I'm using notepad to test this) does not support UTF-8?

             Shachar

-- 
Shachar Shemesh
Open Source integration consultant
Home page & resume - http://www.shemesh.biz/





More information about the wine-devel mailing list