From 5b707cea9131b1a459b9b8aeb7f73ee7492ff8dd Mon Sep 17 00:00:00 2001 From: Charles Cabergs Date: Sun, 9 Aug 2020 22:43:01 +0200 Subject: Added vim bindings Ctrl-j/k --- dmenu.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/dmenu.c b/dmenu.c index 65f25ce..60b2a1c 100644 --- a/dmenu.c +++ b/dmenu.c @@ -334,17 +334,17 @@ keypress(XKeyEvent *ev) case XK_g: ksym = XK_Escape; break; case XK_h: ksym = XK_BackSpace; break; case XK_i: ksym = XK_Tab; break; - case XK_j: /* fallthrough */ + /* case XK_j: #<{(| fallthrough |)}># */ case XK_J: /* fallthrough */ case XK_m: /* fallthrough */ case XK_M: ksym = XK_Return; ev->state &= ~ControlMask; break; case XK_n: ksym = XK_Down; break; case XK_p: ksym = XK_Up; break; - case XK_k: /* delete right */ - text[cursor] = '\0'; - match(); - break; + /* case XK_k: #<{(| delete right |)}># */ + /* text[cursor] = '\0'; */ + /* match(); */ + /* break; */ case XK_u: /* delete left */ insert(NULL, 0 - cursor); break; @@ -371,6 +371,22 @@ keypress(XKeyEvent *ev) case XK_bracketleft: cleanup(); exit(1); + + // ADDED Ctrl-j/k for selection + case XK_j: + /* case XK_Down: */ + if (sel && sel->right && (sel = sel->right) == next) { + curr = next; + calcoffsets(); + } + break; + case XK_k: + if (sel && sel->left && (sel = sel->left)->right == curr) { + curr = prev; + calcoffsets(); + } + break; + default: return; } -- cgit