dmenu-nodefaultsel-20240105-9a6ef61.diff (1530B)
1 From 9a6ef6174ade2913e940d453f81c488b47d365fa Mon Sep 17 00:00:00 2001 2 From: vishal <vishal340@github.com> 3 Date: Fri, 5 Jan 2024 16:54:19 +0530 4 Subject: [PATCH] With this patch dmenu will no longer select the first item by 5 default and you can use right and left key for bothmoving in text and drop 6 down. dependencies: grid and gridnav 7 8 --- 9 dmenu.c | 14 +++++++++++--- 10 1 file changed, 11 insertions(+), 3 deletions(-) 11 12 diff --git a/dmenu.c b/dmenu.c 13 index 1a76e1b..050073b 100644 14 --- a/dmenu.c 15 +++ b/dmenu.c 16 @@ -282,7 +282,7 @@ match(void) 17 matches = lsubstr; 18 matchend = substrend; 19 } 20 - curr = sel = matches; 21 + curr = matches; 22 calcoffsets(); 23 } 24 25 @@ -467,8 +467,10 @@ insert: 26 break; 27 case XK_Left: 28 if (columns > 1) { 29 - if (!sel) 30 + if (!sel){ 31 + system("xdotool key KP_Left"); 32 return; 33 + } 34 tmpsel = sel; 35 for (i = 0; i < lines; i++) { 36 if (!tmpsel->left || tmpsel->left->right != tmpsel) { 37 @@ -501,6 +503,8 @@ insert: 38 curr = prev; 39 calcoffsets(); 40 } 41 + else if (sel && !sel->left) 42 + sel = NULL; 43 break; 44 case XK_Next: 45 case XK_KP_Next: 46 @@ -528,8 +532,10 @@ insert: 47 break; 48 case XK_Right: 49 if (columns > 1) { 50 - if (!sel) 51 + if (!sel) { 52 + system("xdotool key KP_Right"); 53 return; 54 + } 55 tmpsel = sel; 56 for (i = 0; i < lines; i++) { 57 if (!tmpsel->right || tmpsel->right->left != tmpsel) { 58 @@ -562,6 +568,8 @@ insert: 59 curr = next; 60 calcoffsets(); 61 } 62 + else if (!sel && curr) 63 + sel = curr; 64 break; 65 case XK_Tab: 66 if (!sel) 67 -- 68 2.43.0 69