Default laptop key set to capslock. Keys that can be set to fenrir key or script key selectable via checkbox.
This commit is contained in:
1 parent
47f18fdd28
commit
15e04aa8f8
47 files changed
+1560
-351
No files matched your search
@@ -218,7 +218,7 @@ static void install_grabs(TerminalX *x) {
|
||||
x->numlock |= 1u << mask;
|
||||
XFreeModifiermap(modifiers);
|
||||
}
|
||||
KeySym keys[] = {XK_Insert, XK_Super_L, XK_Super_R, XK_Meta_L, XK_Meta_R,
|
||||
KeySym keys[] = {XK_Insert,
|
||||
XK_KP_Insert, XK_KP_End, XK_KP_Down, XK_KP_Page_Down, XK_KP_Left,
|
||||
XK_KP_Begin, XK_KP_Right, XK_KP_Home, XK_KP_Up, XK_KP_Page_Up,
|
||||
XK_KP_Delete, XK_KP_Enter, XK_KP_Add, XK_KP_Subtract, XK_KP_Divide,
|
||||
@@ -243,6 +243,16 @@ static void install_grabs(TerminalX *x) {
|
||||
}
|
||||
}
|
||||
}
|
||||
int terminal_x_caps_lock(TerminalX *x, int enabled) {
|
||||
if (!XkbLockModifiers(x->display, XkbUseCoreKbd, LockMask, enabled ? LockMask : 0)) return -EIO;
|
||||
XSync(x->display, False);
|
||||
return 0;
|
||||
}
|
||||
int terminal_x_toggle_caps(TerminalX *x) {
|
||||
XkbStateRec state;
|
||||
if (XkbGetState(x->display, XkbUseCoreKbd, &state) != Success) return -EIO;
|
||||
return terminal_x_caps_lock(x, !(state.locked_mods & LockMask));
|
||||
}
|
||||
int terminal_x_script_keys(TerminalX *x, const int *keys, int count) {
|
||||
if (count < 0 || count > KEY_MAX+1) return -EINVAL;
|
||||
XErrorHandler previous = begin_trap(x->display);
|
||||
@@ -443,6 +453,7 @@ int terminal_key_code(unsigned long symbol, int keycode) {
|
||||
case XK_Page_Up: return KEY_PAGEUP;
|
||||
case XK_Page_Down: return KEY_PAGEDOWN;
|
||||
case XK_Insert: return KEY_INSERT;
|
||||
case XK_Caps_Lock: return KEY_CAPSLOCK;
|
||||
case XK_Multi_key: return KEY_COMPOSE;
|
||||
case XK_Menu: return KEY_MENU;
|
||||
case XK_Super_L: case XK_Meta_L: return KEY_LEFTMETA;
|
||||
|
||||
Reference in new issue
Block a user