summaryrefslogtreecommitdiff
path: root/diffs
diff options
context:
space:
mode:
Diffstat (limited to 'diffs')
-rw-r--r--diffs/dmenu-border-20201112-1a13d04.diff50
-rw-r--r--diffs/dmenu-caseinsensitive-20200523-db6093f.diff42
-rw-r--r--diffs/dmenu-fuzzyhighlight-4.9.diff152
3 files changed, 244 insertions, 0 deletions
diff --git a/diffs/dmenu-border-20201112-1a13d04.diff b/diffs/dmenu-border-20201112-1a13d04.diff
new file mode 100644
index 0000000..bea0cee
--- /dev/null
+++ b/diffs/dmenu-border-20201112-1a13d04.diff
@@ -0,0 +1,50 @@
+From d0c3fc8a634c153856cd41438f705175a21ec69a Mon Sep 17 00:00:00 2001
+From: braskin <benjaminiraskin@gmail.com>
+Date: Thu, 12 Nov 2020 10:13:29 -0500
+Subject: [PATCH] fixed border width draw for topbar
+
+---
+ config.def.h | 3 +++
+ dmenu.c | 6 +++++-
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/config.def.h b/config.def.h
+index 1edb647..dd3eb31 100644
+--- a/config.def.h
++++ b/config.def.h
+@@ -21,3 +21,6 @@ static unsigned int lines = 0;
+ * for example: " /?\"&[]"
+ */
+ static const char worddelimiters[] = " ";
++
++/* Size of the window border */
++static unsigned int border_width = 0;
+diff --git a/dmenu.c b/dmenu.c
+index 65f25ce..716e655 100644
+--- a/dmenu.c
++++ b/dmenu.c
+@@ -659,9 +659,11 @@ setup(void)
+ swa.override_redirect = True;
+ swa.background_pixel = scheme[SchemeNorm][ColBg].pixel;
+ swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask;
+- win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0,
++ win = XCreateWindow(dpy, parentwin, x, y - (topbar ? 0 : border_width * 2), mw - border_width * 2, mh, border_width,
+ CopyFromParent, CopyFromParent, CopyFromParent,
+ CWOverrideRedirect | CWBackPixel | CWEventMask, &swa);
++ if (border_width)
++ XSetWindowBorder(dpy, win, scheme[SchemeSel][ColBg].pixel);
+ XSetClassHint(dpy, win, &ch);
+
+
+@@ -733,6 +735,8 @@ main(int argc, char *argv[])
+ colors[SchemeSel][ColFg] = argv[++i];
+ else if (!strcmp(argv[i], "-w")) /* embedding window id */
+ embed = argv[++i];
++ else if (!strcmp(argv[i], "-bw"))
++ border_width = atoi(argv[++i]); /* border width */
+ else
+ usage();
+
+--
+2.25.1
+
diff --git a/diffs/dmenu-caseinsensitive-20200523-db6093f.diff b/diffs/dmenu-caseinsensitive-20200523-db6093f.diff
new file mode 100644
index 0000000..939a2e8
--- /dev/null
+++ b/diffs/dmenu-caseinsensitive-20200523-db6093f.diff
@@ -0,0 +1,42 @@
+From 54acbdf72083a5eae5783eed42e162424ab2cec2 Mon Sep 17 00:00:00 2001
+From: Kim Torgersen <kim@torgersen.se>
+Date: Sat, 23 May 2020 14:48:28 +0200
+Subject: [PATCH] case-insensitive item matching default, case-sensitive option
+ (-s)
+
+---
+ dmenu.c | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/dmenu.c b/dmenu.c
+index 65f25ce..855df59 100644
+--- a/dmenu.c
++++ b/dmenu.c
+@@ -55,8 +55,9 @@ static Clr *scheme[SchemeLast];
+
+ #include "config.h"
+
+-static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
+-static char *(*fstrstr)(const char *, const char *) = strstr;
++static char * cistrstr(const char *s, const char *sub);
++static int (*fstrncmp)(const char *, const char *, size_t) = strncasecmp;
++static char *(*fstrstr)(const char *, const char *) = cistrstr;
+
+ static void
+ appenditem(struct item *item, struct item **list, struct item **last)
+@@ -709,9 +710,9 @@ main(int argc, char *argv[])
+ topbar = 0;
+ else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */
+ fast = 1;
+- else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */
+- fstrncmp = strncasecmp;
+- fstrstr = cistrstr;
++ else if (!strcmp(argv[i], "-s")) { /* case-sensitive item matching */
++ fstrncmp = strncmp;
++ fstrstr = strstr;
+ } else if (i + 1 == argc)
+ usage();
+ /* these options take one argument */
+--
+2.26.2
+
diff --git a/diffs/dmenu-fuzzyhighlight-4.9.diff b/diffs/dmenu-fuzzyhighlight-4.9.diff
new file mode 100644
index 0000000..58d5c6f
--- /dev/null
+++ b/diffs/dmenu-fuzzyhighlight-4.9.diff
@@ -0,0 +1,152 @@
+Author: Chris Noxz <chris@noxz.tech>
+note: This patch is meant to be used together with fuzzymatch
+
+diff -upN dmenu-4.9/config.def.h dmenu-4.9-fuzzyhighlight/config.def.h
+--- dmenu-4.9/config.def.h 2019-02-02 13:55:02.000000000 +0100
++++ dmenu-4.9-fuzzyhighlight/config.def.h 2020-04-04 10:26:36.990890854 +0200
+@@ -11,6 +11,8 @@ static const char *colors[SchemeLast][2]
+ /* fg bg */
+ [SchemeNorm] = { "#bbbbbb", "#222222" },
+ [SchemeSel] = { "#eeeeee", "#005577" },
++ [SchemeSelHighlight] = { "#ffc978", "#005577" },
++ [SchemeNormHighlight] = { "#ffc978", "#222222" },
+ [SchemeOut] = { "#000000", "#00ffff" },
+ };
+ /* -l option; if nonzero, dmenu uses vertical list with given number of lines */
+diff -upN dmenu-4.9/dmenu.1 dmenu-4.9-fuzzyhighlight/dmenu.1
+--- dmenu-4.9/dmenu.1 2019-02-02 13:55:02.000000000 +0100
++++ dmenu-4.9-fuzzyhighlight/dmenu.1 2020-04-04 10:30:16.430054933 +0200
+@@ -20,6 +20,14 @@ dmenu \- dynamic menu
+ .IR color ]
+ .RB [ \-sf
+ .IR color ]
++.RB [ \-nhb
++.IR color ]
++.RB [ \-nhf
++.IR color ]
++.RB [ \-shb
++.IR color ]
++.RB [ \-shf
++.IR color ]
+ .RB [ \-w
+ .IR windowid ]
+ .P
+@@ -75,6 +83,18 @@ defines the selected background color.
+ .BI \-sf " color"
+ defines the selected foreground color.
+ .TP
++.BI \-nhb " color"
++defines the normal highlight background color.
++.TP
++.BI \-nhf " color"
++defines the normal highlight foreground color.
++.TP
++.BI \-shb " color"
++defines the selected highlight background color.
++.TP
++.BI \-shf " color"
++defines the selected highlight foreground color.
++.TP
+ .B \-v
+ prints version information to stdout, then exits.
+ .TP
+diff -upN dmenu-4.9/dmenu.c dmenu-4.9-fuzzyhighlight/dmenu.c
+--- dmenu-4.9/dmenu.c 2019-02-02 13:55:02.000000000 +0100
++++ dmenu-4.9-fuzzyhighlight/dmenu.c 2020-04-04 10:27:43.888026309 +0200
+@@ -26,7 +26,9 @@
+ #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad)
+
+ /* enums */
+-enum { SchemeNorm, SchemeSel, SchemeOut, SchemeLast }; /* color schemes */
++enum { SchemeNorm, SchemeSel, SchemeNormHighlight, SchemeSelHighlight,
++ SchemeOut, SchemeLast }; /* color schemes */
++
+
+ struct item {
+ char *text;
+@@ -113,9 +115,49 @@ cistrstr(const char *s, const char *sub)
+ return NULL;
+ }
+
++static void
++drawhighlights(struct item *item, int x, int y, int maxw)
++{
++ int i, indent;
++ char *highlight;
++ char c;
++
++ if (!(strlen(item->text) && strlen(text)))
++ return;
++
++ drw_setscheme(drw, scheme[item == sel
++ ? SchemeSelHighlight
++ : SchemeNormHighlight]);
++ for (i = 0, highlight = item->text; *highlight && text[i];) {
++ if (*highlight == text[i]) {
++ /* get indentation */
++ c = *highlight;
++ *highlight = '\0';
++ indent = TEXTW(item->text);
++ *highlight = c;
++
++ /* highlight character */
++ c = highlight[1];
++ highlight[1] = '\0';
++ drw_text(
++ drw,
++ x + indent - (lrpad / 2),
++ y,
++ MIN(maxw - indent, TEXTW(highlight) - lrpad),
++ bh, 0, highlight, 0
++ );
++ highlight[1] = c;
++ i++;
++ }
++ highlight++;
++ }
++}
++
++
+ static int
+ drawitem(struct item *item, int x, int y, int w)
+ {
++ int r;
+ if (item == sel)
+ drw_setscheme(drw, scheme[SchemeSel]);
+ else if (item->out)
+@@ -123,7 +165,9 @@ drawitem(struct item *item, int x, int y
+ else
+ drw_setscheme(drw, scheme[SchemeNorm]);
+
+- return drw_text(drw, x, y, w, bh, lrpad / 2, item->text, 0);
++ r = drw_text(drw, x, y, w, bh, lrpad / 2, item->text, 0);
++ drawhighlights(item, x, y, w);
++ return r;
+ }
+
+ static void
+@@ -683,7 +727,8 @@ static void
+ usage(void)
+ {
+ fputs("usage: dmenu [-bfiv] [-l lines] [-p prompt] [-fn font] [-m monitor]\n"
+- " [-nb color] [-nf color] [-sb color] [-sf color] [-w windowid]\n", stderr);
++ " [-nb color] [-nf color] [-sb color] [-sf color]\n"
++ " [-nhb color] [-nhf color] [-shb color] [-shf color] [-w windowid]\n", stderr);
+ exit(1);
+ }
+
+@@ -724,6 +769,14 @@ main(int argc, char *argv[])
+ colors[SchemeSel][ColBg] = argv[++i];
+ else if (!strcmp(argv[i], "-sf")) /* selected foreground color */
+ colors[SchemeSel][ColFg] = argv[++i];
++ else if (!strcmp(argv[i], "-nhb")) /* normal hi background color */
++ colors[SchemeNormHighlight][ColBg] = argv[++i];
++ else if (!strcmp(argv[i], "-nhf")) /* normal hi foreground color */
++ colors[SchemeNormHighlight][ColFg] = argv[++i];
++ else if (!strcmp(argv[i], "-shb")) /* selected hi background color */
++ colors[SchemeSelHighlight][ColBg] = argv[++i];
++ else if (!strcmp(argv[i], "-shf")) /* selected hi foreground color */
++ colors[SchemeSelHighlight][ColFg] = argv[++i];
+ else if (!strcmp(argv[i], "-w")) /* embedding window id */
+ embed = argv[++i];
+ else