all repos — dmenu @ cd2133a5f66b42f992a9a1b92bbbce11dc26b941

my build of dmenu

add support for more keypad keys

The keypad Enter key was already supported. On some keyboard layouts like my
laptop the page-up and page-down key is more comfortable to use.
This adds a few lines but no complexity.
Hiltjo Posthuma hiltjo@codemadness.org
Mon, 09 Aug 2021 18:39:25 +0200
commit

cd2133a5f66b42f992a9a1b92bbbce11dc26b941

parent

c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe

1 files changed, 11 insertions(+), 0 deletions(-)

jump to
M dmenu.cdmenu.c

@@ -360,9 +360,11 @@ XConvertSelection(dpy, (ev->state & ShiftMask) ? clip : XA_PRIMARY,

utf8, utf8, win, CurrentTime); return; case XK_Left: + case XK_KP_Left: movewordedge(-1); goto draw; case XK_Right: + case XK_KP_Right: movewordedge(+1); goto draw; case XK_Return:

@@ -400,6 +402,7 @@ if (!iscntrl(*buf))

insert(buf, len); break; case XK_Delete: + case XK_KP_Delete: if (text[cursor] == '\0') return; cursor = nextrune(+1);

@@ -410,6 +413,7 @@ return;

insert(NULL, nextrune(-1) - cursor); break; case XK_End: + case XK_KP_End: if (text[cursor] != '\0') { cursor = strlen(text); break;

@@ -429,6 +433,7 @@ case XK_Escape:

cleanup(); exit(1); case XK_Home: + case XK_KP_Home: if (sel == matches) { cursor = 0; break;

@@ -437,6 +442,7 @@ sel = curr = matches;

calcoffsets(); break; case XK_Left: + case XK_KP_Left: if (cursor > 0 && (!sel || !sel->left || lines > 0)) { cursor = nextrune(-1); break;

@@ -445,18 +451,21 @@ if (lines > 0)

return; /* fallthrough */ case XK_Up: + case XK_KP_Up: if (sel && sel->left && (sel = sel->left)->right == curr) { curr = prev; calcoffsets(); } break; case XK_Next: + case XK_KP_Next: if (!next) return; sel = curr = next; calcoffsets(); break; case XK_Prior: + case XK_KP_Prior: if (!prev) return; sel = curr = prev;

@@ -473,6 +482,7 @@ if (sel)

sel->out = 1; break; case XK_Right: + case XK_KP_Right: if (text[cursor] != '\0') { cursor = nextrune(+1); break;

@@ -481,6 +491,7 @@ if (lines > 0)

return; /* fallthrough */ case XK_Down: + case XK_KP_Down: if (sel && sel->right && (sel = sel->right) == next) { curr = next; calcoffsets();