---
svkbd.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/svkbd.c b/svkbd.c
index e4dbd15..cce2463 100644
--- a/svkbd.c
+++ b/svkbd.c
_AT_@ -481,9 +481,18 @@ press(Key *k, KeySym buttonmod)
int
tmp_remap(KeySym keysym)
{
- XChangeKeyboardMapping(dpy, tmp_keycode, 1, &keysym, 1);
+ /* map lower and upper case of keysym to the temporary keycode */
+ KeySym syms[2];
+ XConvertCase(keysym, &syms[0], &syms[1]);
+
+ /* if keysym is capital letter then swap upper and lower case */
+ if (keysym == syms[1])
+ syms[1] = syms[0], syms[0] = keysym;
+
+ XChangeKeyboardMapping(dpy, tmp_keycode, syms[0] == syms[1] ? 1 : 2, syms, 1);
XSync(dpy, False);
+ printdbg("Temorary map keysym %ld (%ld, %ld) to keycode %d\n", keysym, syms[0], syms[1], tmp_keycode);
return tmp_keycode;
}
--
2.41.0
Received on Sun Dec 03 2023 - 17:22:04 CET
This archive was generated by hypermail 2.3.0 : Sun Dec 03 2023 - 18:00:36 CET