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:
Storm Dragon committed 2026-10-29 18:01:42 -04:00
1 parent 47f18fdd28
commit 15e04aa8f8
47 files changed
+1560 -351

No files matched your search

+12 -1
View File
@@ -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;