Introduction
Introduction Statistics Contact Development Disclaimer Help
fix uppercase in armenian (and perhaps some other) layouts - svkbd - simple vir…
git clone git://git.suckless.org/svkbd
Log
Files
Refs
README
LICENSE
---
commit 92795b2a0ac2f9c2a26bcdf8752e8f0ab7c11675
parent ff704d5d1e801f9783a9453972978d7db26d44a2
Author: norayr chilingarian <[email protected]>
Date: Sun, 3 Dec 2023 20:22:04 +0400
fix uppercase in armenian (and perhaps some other) layouts
"This patch fixes uppercase in armenian (and perhaps some other) layouts. svkbd
was previously registering a key in one modification (xorg accepts up to 4
modifications). with this patch svkbd registers 2 modifications - upper and
lower case. function tmp_remap changed in a way that if the key is not found in
a current layout, it is temporary added to it. for cyrillic layout uppercase
(when shift is pressed) letters were showing anyway, because those are somehow
found (modified) by xorg. but for armenian layout that did not work. now works."
Patch by նորայր <[email protected]>
Diffstat:
M svkbd.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
---
diff --git a/svkbd.c b/svkbd.c
@@ -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, s…
XSync(dpy, False);
+ printdbg("Temporary map keysym %ld (%ld, %ld) to keycode %d\n", keysym…
return tmp_keycode;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.