URI: 
       add support for more keypad keys - dmenu - dynamic menu
  HTML git clone git://git.suckless.org/dmenu
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit cd2133a5f66b42f992a9a1b92bbbce11dc26b941
   DIR parent c585e8e498ec6f9c423ab8ea07cf853ee5b05fbe
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Mon,  9 Aug 2021 18:39:25 +0200
       
       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.
       
       Diffstat:
         M dmenu.c                             |      11 +++++++++++
       
       1 file changed, 11 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/dmenu.c b/dmenu.c
       @@ -360,9 +360,11 @@ keypress(XKeyEvent *ev)
                                                  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 @@ insert:
                                insert(buf, len);
                        break;
                case XK_Delete:
       +        case XK_KP_Delete:
                        if (text[cursor] == '\0')
                                return;
                        cursor = nextrune(+1);
       @@ -410,6 +413,7 @@ insert:
                        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 @@ insert:
                        cleanup();
                        exit(1);
                case XK_Home:
       +        case XK_KP_Home:
                        if (sel == matches) {
                                cursor = 0;
                                break;
       @@ -437,6 +442,7 @@ insert:
                        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 @@ insert:
                                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 @@ insert:
                                sel->out = 1;
                        break;
                case XK_Right:
       +        case XK_KP_Right:
                        if (text[cursor] != '\0') {
                                cursor = nextrune(+1);
                                break;
       @@ -481,6 +491,7 @@ insert:
                                return;
                        /* fallthrough */
                case XK_Down:
       +        case XK_KP_Down:
                        if (sel && sel->right && (sel = sel->right) == next) {
                                curr = next;
                                calcoffsets();