Donald Chai a écrit :
I'm glad it works well for you, this minor change should work for
matching on substrings as well:
diff -r 9b203c5c180d dmenu.c
--- a/dmenu.c Sat Apr 18 12:50:12 2009 +0100
+++ b/dmenu.c Thu Aug 13 11:24:18 2009 -0700
@@ -69,6 +69,7 @@
/* variables */
static char *maxname = NULL;
static char *prompt = NULL;
+static Bool autoconfirm = False;
static char text[4096];
static int cmdw = 0;
static int promptw = 0;
@@ -514,6 +515,12 @@
}
curr = prev = next = sel = item;
calcoffsets();
+
+ if(autoconfirm && item && !item->right) {
+ fprintf(stdout, "%s", item->text);
+ fflush(stdout);
+ running = False;
+ }
}
void
@@ -674,6 +681,8 @@
fstrncmp = strncasecmp;
fstrstr = cistrstr;
}
+ else if(!strcmp(argv[i], "-a"))
+ autoconfirm = True;
else if(!strcmp(argv[i], "-b"))
topbar = False;
else if(!strcmp(argv[i], "-fn")) {
He He, this one is also good,
I think that actually both methods have advantages,
I use the one on top, your second proposal with the -a option in dmenu_run,
to browse my whole path as in a large list, it gives more chances
that many item begin similar so the substring selector helps a lot.
I use your first proposal on short lists as it lowers the number of item
faster
than your second proposal and make it possible to select item in 1 or 2
keystrokes on <50 items list.
I just have to give attention to name item with different first letters.
Thank you again for these two patchs ( and also for the sh script tip). :)