Any client that applies keymaps after the device was detected will overwrite this custom keymap. This is the case with e.g. GNOME, so going through the effort of defining a keymap is short-lived.
If a special keymap is required, the XKB options can be set accordingly though they will suffer from the same issue described above. Signed-off-by: Peter Hutterer <[email protected]> --- src/xf86Wacom.c | 147 +------------------------------------------------------ 1 files changed, 1 insertions(+), 146 deletions(-) diff --git a/src/xf86Wacom.c b/src/xf86Wacom.c index 2286385..35b3101 100644 --- a/src/xf86Wacom.c +++ b/src/xf86Wacom.c @@ -359,135 +359,6 @@ void wcmInitialCoordinates(InputInfoPtr pInfo, int axis) return; } -/* Define our own keymap so we can send key-events with our own device and not - * rely on inputInfo.keyboard */ -static KeySym keymap[] = { - /* 0x00 */ NoSymbol, NoSymbol, XK_Escape, NoSymbol, - /* 0x02 */ XK_1, XK_exclam, XK_2, XK_at, - /* 0x04 */ XK_3, XK_numbersign, XK_4, XK_dollar, - /* 0x06 */ XK_5, XK_percent, XK_6, XK_asciicircum, - /* 0x08 */ XK_7, XK_ampersand, XK_8, XK_asterisk, - /* 0x0a */ XK_9, XK_parenleft, XK_0, XK_parenright, - /* 0x0c */ XK_minus, XK_underscore, XK_equal, XK_plus, - /* 0x0e */ XK_BackSpace, NoSymbol, XK_Tab, XK_ISO_Left_Tab, - /* 0x10 */ XK_q, NoSymbol, XK_w, NoSymbol, - /* 0x12 */ XK_e, NoSymbol, XK_r, NoSymbol, - /* 0x14 */ XK_t, NoSymbol, XK_y, NoSymbol, - /* 0x16 */ XK_u, NoSymbol, XK_i, NoSymbol, - /* 0x18 */ XK_o, NoSymbol, XK_p, NoSymbol, - /* 0x1a */ XK_bracketleft, XK_braceleft, XK_bracketright, XK_braceright, - /* 0x1c */ XK_Return, NoSymbol, XK_Control_L, NoSymbol, - /* 0x1e */ XK_a, NoSymbol, XK_s, NoSymbol, - /* 0x20 */ XK_d, NoSymbol, XK_f, NoSymbol, - /* 0x22 */ XK_g, NoSymbol, XK_h, NoSymbol, - /* 0x24 */ XK_j, NoSymbol, XK_k, NoSymbol, - /* 0x26 */ XK_l, NoSymbol, XK_semicolon, XK_colon, - /* 0x28 */ XK_quoteright, XK_quotedbl, XK_quoteleft, XK_asciitilde, - /* 0x2a */ XK_Shift_L, NoSymbol, XK_backslash, XK_bar, - /* 0x2c */ XK_z, NoSymbol, XK_x, NoSymbol, - /* 0x2e */ XK_c, NoSymbol, XK_v, NoSymbol, - /* 0x30 */ XK_b, NoSymbol, XK_n, NoSymbol, - /* 0x32 */ XK_m, NoSymbol, XK_comma, XK_less, - /* 0x34 */ XK_period, XK_greater, XK_slash, XK_question, - /* 0x36 */ XK_Shift_R, NoSymbol, XK_KP_Multiply, NoSymbol, - /* 0x38 */ XK_Alt_L, XK_Meta_L, XK_space, NoSymbol, - /* 0x3a */ XK_Caps_Lock, NoSymbol, XK_F1, NoSymbol, - /* 0x3c */ XK_F2, NoSymbol, XK_F3, NoSymbol, - /* 0x3e */ XK_F4, NoSymbol, XK_F5, NoSymbol, - /* 0x40 */ XK_F6, NoSymbol, XK_F7, NoSymbol, - /* 0x42 */ XK_F8, NoSymbol, XK_F9, NoSymbol, - /* 0x44 */ XK_F10, NoSymbol, XK_Num_Lock, NoSymbol, - /* 0x46 */ XK_Scroll_Lock, NoSymbol, XK_KP_Home, XK_KP_7, - /* 0x48 */ XK_KP_Up, XK_KP_8, XK_KP_Prior, XK_KP_9, - /* 0x4a */ XK_KP_Subtract, NoSymbol, XK_KP_Left, XK_KP_4, - /* 0x4c */ XK_KP_Begin, XK_KP_5, XK_KP_Right, XK_KP_6, - /* 0x4e */ XK_KP_Add, NoSymbol, XK_KP_End, XK_KP_1, - /* 0x50 */ XK_KP_Down, XK_KP_2, XK_KP_Next, XK_KP_3, - /* 0x52 */ XK_KP_Insert, XK_KP_0, XK_KP_Delete, XK_KP_Decimal, - /* 0x54 */ NoSymbol, NoSymbol, XK_F13, NoSymbol, - /* 0x56 */ XK_less, XK_greater, XK_F11, NoSymbol, - /* 0x58 */ XK_F12, NoSymbol, XK_F14, NoSymbol, - /* 0x5a */ XK_F15, NoSymbol, XK_F16, NoSymbol, - /* 0x5c */ XK_F17, NoSymbol, XK_F18, NoSymbol, - /* 0x5e */ XK_F19, NoSymbol, XK_F20, NoSymbol, - /* 0x60 */ XK_KP_Enter, NoSymbol, XK_Control_R, NoSymbol, - /* 0x62 */ XK_KP_Divide, NoSymbol, XK_Print, XK_Sys_Req, - /* 0x64 */ XK_Alt_R, XK_Meta_R, NoSymbol, NoSymbol, - /* 0x66 */ XK_Home, NoSymbol, XK_Up, NoSymbol, - /* 0x68 */ XK_Prior, NoSymbol, XK_Left, NoSymbol, - /* 0x6a */ XK_Right, NoSymbol, XK_End, NoSymbol, - /* 0x6c */ XK_Down, NoSymbol, XK_Next, NoSymbol, - /* 0x6e */ XK_Insert, NoSymbol, XK_Delete, NoSymbol, - /* 0x70 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x72 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x74 */ NoSymbol, NoSymbol, XK_KP_Equal, NoSymbol, - /* 0x76 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x78 */ XK_F21, NoSymbol, XK_F22, NoSymbol, - /* 0x7a */ XK_F23, NoSymbol, XK_F24, NoSymbol, - /* 0x7c */ XK_KP_Separator, NoSymbol, XK_Meta_L, NoSymbol, - /* 0x7e */ XK_Meta_R, NoSymbol, XK_Multi_key, NoSymbol, - /* 0x80 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x82 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x84 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x86 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x88 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x8a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x8c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x8e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x90 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x92 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x94 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x96 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x98 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x9a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x9c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x9e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xa0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xa2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xa4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xa6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xa8 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xaa */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xac */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xae */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xb0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xb2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xb4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xb6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xb8 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xba */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xbc */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xbe */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xc0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xc2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xc4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xc6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xc8 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xca */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xcc */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xce */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xd0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xd2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xd4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xd6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xd8 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xda */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xdc */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xde */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xe0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xe2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xe4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xe6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xe8 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xea */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xec */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xee */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xf0 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xf2 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xf4 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0xf6 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol -}; - /***************************************************************************** * wcmInitialToolSize -- * Initialize logical size and resolution for individual tool. @@ -631,23 +502,7 @@ static int wcmRegisterX11Devices (InputInfoPtr pInfo) #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7 - if (InitKeyboardDeviceStruct(pInfo->dev, NULL, NULL, wcmKbdCtrlCallback)) { -#define SYMS_PER_KEY 2 - KeySymsRec syms; - CARD8 modmap[MAP_LENGTH]; - int num_keys = XkbMaxLegalKeyCode - XkbMinLegalKeyCode + 1; - - syms.map = keymap; - syms.mapWidth = SYMS_PER_KEY; - syms.minKeyCode = XkbMinLegalKeyCode; - syms.maxKeyCode = XkbMaxLegalKeyCode; - - memset(modmap, 0, sizeof(modmap)); - modmap[XkbMinLegalKeyCode + 2] = ShiftMask; - XkbApplyMappingChange(pInfo->dev, &syms, syms.minKeyCode, num_keys, NULL, // modmap, - serverClient); - } else - { + if (!InitKeyboardDeviceStruct(pInfo->dev, NULL, NULL, wcmKbdCtrlCallback)) { xf86Msg(X_ERROR, "%s: unable to init kbd device struct\n", pInfo->name); return FALSE; } -- 1.7.2.2 ------------------------------------------------------------------------------ This SF.net Dev2Dev email is sponsored by: Show off your parallel programming skills. Enter the Intel(R) Threading Challenge 2010. http://p.sf.net/sfu/intel-thread-sfd _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
