this is the code that cause the problem:
/* Hack for international/modeshift things.
* If we can't type this keysym with just a keycode or shift
+keycode,
* let's pretend we didn't find the keycode and request
* a keybinding.
*
* Should fix these bugs:
*
http://code.google.com/p/semicomplete/issues/detail?id=21
*
http://code.google.com/p/semicomplete/issues/detail?id=13
*
* This hack seems better (less code) than walking the keymap to
find
* which modifiers are required to type with this keycode to
invoke
* this keysym.
*/
int offset = 0;
/* I can't find a constant in Xlib that is 0x2000 (or 1 << 13)
* Maybe it's in Xkb? Either way, 0x2000 is the state shown by
xev(1)
* when we are shifted. Example:
* % setxkbmap -option * grp:switch,grp:shifts_toggle us,se
* Then hit both shift-keys simultaneously to switch to 'se' key
layout */
if (input_state & 0x2000) { /* keymap shifted via xkb */
offset = 2;
}
if (XKeycodeToKeysym(xdo->xdpy, key, 0 + offset) != sym
&& XKeycodeToKeysym(xdo->xdpy, key, 1 + offset) != sym) {
key = 0;
}
removing this code fix the problem. my keyboard layout is French/
Canadian, but i have also SCIM install to write kanji (Japanese).