diff --git a/overlays/overridesandshit.nix b/overlays/overridesandshit.nix index 3e8c85e..d85cd59 100644 --- a/overlays/overridesandshit.nix +++ b/overlays/overridesandshit.nix @@ -1,9 +1,10 @@ final: prev: { dmenu = prev.dmenu.overrideAttrs (oldAttrs: rec { + version = "5.2"; src = builtins.fetchTarball { - url = "https://dl.suckless.org/tools/dmenu-5.1.tar.gz"; - sha256 = "1zwl0qlc4mmr973km03lmnfxjibdh2inwzb0vr6pvrfhrm0glvrk"; + url = "https://dl.suckless.org/tools/dmenu-${version}.tar.gz"; + sha256 = "1rxxc3qdb5qvwg284f0hximg9953fnvlymxwmi1zlqkqbs8qbizk"; }; patches = [ ./patches/dmenu.patch ]; }); @@ -17,9 +18,10 @@ final: prev: { }); st = prev.st.overrideAttrs (oldAttrs: rec { + version = "0.9"; src = builtins.fetchTarball { - url = "https://dl.suckless.org/st/st-0.8.5.tar.gz"; - sha256 = "0iy7sj40m5x7wr4qkicijckk3cb0h9815mzacfjb3xrlrvpx6hm5"; + url = "https://dl.suckless.org/st/st-${version}.tar.gz"; + sha256 = "1bdhh5lnhiz7q4ihig1f5q0ay5glsqxhpxpnsfqxwffqqwmy1vlh"; }; patches = [ ./patches/st.patch ]; }); diff --git a/overlays/patches/dmenu.patch b/overlays/patches/dmenu.patch index cacf477..73c256c 100755 --- a/overlays/patches/dmenu.patch +++ b/overlays/patches/dmenu.patch @@ -1,6 +1,6 @@ -diff --color -u a/config.def.h b/config.def.h ---- a/config.def.h 2020-09-02 22:07:07.000000000 +0530 -+++ b/config.def.h 2021-05-21 00:20:28.562140000 +0530 +diff --color -ru dmenu-5.2/config.def.h dmenu-5.2-a/config.def.h +--- dmenu-5.2/config.def.h 2022-10-04 23:06:58.000000000 +0530 ++++ dmenu-5.2-a/config.def.h 2022-11-25 02:20:05.393693557 +0530 @@ -2,16 +2,21 @@ /* Default settings; can be overriden by command line. */ @@ -32,10 +32,10 @@ diff --color -u a/config.def.h b/config.def.h static const char worddelimiters[] = " "; +/* Size of the window border */ +static const unsigned int border_width = 4; -Only in b: config.def.h.orig -diff --color -u a/dmenu.1 b/dmenu.1 ---- a/dmenu.1 2020-09-02 22:07:07.000000000 +0530 -+++ b/dmenu.1 2020-12-29 02:11:41.804718200 +0530 +Only in dmenu-5.2-a: config.h +diff --color -ru dmenu-5.2/dmenu.1 dmenu-5.2-a/dmenu.1 +--- dmenu-5.2/dmenu.1 2022-10-04 23:06:58.000000000 +0530 ++++ dmenu-5.2-a/dmenu.1 2022-11-25 02:20:05.393693557 +0530 @@ -40,6 +40,9 @@ .B \-b dmenu appears at the bottom of the screen. @@ -46,9 +46,9 @@ diff --color -u a/dmenu.1 b/dmenu.1 .B \-f dmenu grabs the keyboard before reading stdin if not reading from a tty. This is faster, but will lock up X until stdin reaches end\-of\-file. -diff --color -u a/dmenu.c b/dmenu.c ---- a/dmenu.c 2020-09-02 22:07:07.000000000 +0530 -+++ b/dmenu.c 2020-12-29 02:24:03.168766600 +0530 +diff --color -ru dmenu-5.2/dmenu.c dmenu-5.2-a/dmenu.c +--- dmenu-5.2/dmenu.c 2022-10-04 23:06:58.000000000 +0530 ++++ dmenu-5.2-a/dmenu.c 2022-11-25 02:22:42.610351072 +0530 @@ -26,8 +26,7 @@ #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad) @@ -59,7 +59,7 @@ diff --color -u a/dmenu.c b/dmenu.c struct item { char *text; struct item *left, *right; -@@ -89,6 +88,15 @@ +@@ -96,6 +95,15 @@ break; } @@ -75,7 +75,7 @@ diff --color -u a/dmenu.c b/dmenu.c static void cleanup(void) { -@@ -113,6 +121,43 @@ +@@ -130,6 +138,43 @@ return NULL; } @@ -119,7 +119,7 @@ diff --color -u a/dmenu.c b/dmenu.c static int drawitem(struct item *item, int x, int y, int w) { -@@ -123,7 +168,9 @@ +@@ -140,7 +185,9 @@ else drw_setscheme(drw, scheme[SchemeNorm]); @@ -130,7 +130,7 @@ diff --color -u a/dmenu.c b/dmenu.c } static void -@@ -501,6 +548,119 @@ +@@ -529,6 +576,119 @@ } static void @@ -250,7 +250,7 @@ diff --color -u a/dmenu.c b/dmenu.c paste(void) { char *p, *q; -@@ -561,6 +721,9 @@ +@@ -582,6 +742,9 @@ break; cleanup(); exit(1); @@ -260,7 +260,7 @@ diff --color -u a/dmenu.c b/dmenu.c case Expose: if (ev.xexpose.count == 0) drw_map(drw, win, 0, 0, mw, mh); -@@ -611,6 +774,7 @@ +@@ -632,6 +795,7 @@ bh = drw->fonts->h + 2; lines = MAX(lines, 0); mh = (lines + 1) * bh; @@ -268,8 +268,8 @@ diff --color -u a/dmenu.c b/dmenu.c #ifdef XINERAMA i = 0; if (parentwin == root && (info = XineramaQueryScreens(dpy, &n))) { -@@ -637,9 +801,16 @@ - if (INTERSECT(x, y, 1, 1, info[i])) +@@ -658,9 +822,16 @@ + if (INTERSECT(x, y, 1, 1, info[i]) != 0) break; - x = info[i].x_org; @@ -288,7 +288,7 @@ diff --color -u a/dmenu.c b/dmenu.c XFree(info); } else #endif -@@ -647,21 +818,30 @@ +@@ -668,21 +839,29 @@ if (!XGetWindowAttributes(dpy, parentwin, &wa)) die("could not get embedding window attributes: 0x%lx", parentwin); @@ -307,16 +307,16 @@ diff --color -u a/dmenu.c b/dmenu.c + } } - promptw = (prompt && *prompt) ? TEXTW(prompt) - lrpad / 4 : 0; - inputw = MIN(inputw, mw/3); + inputw = mw / 3; /* input width: ~33% of monitor width */ match(); /* create menu window */ 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, + swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | + ButtonPressMask; - swa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask; -- win = XCreateWindow(dpy, parentwin, x, y, mw, mh, 0, + win = XCreateWindow(dpy, parentwin, x, y, mw, mh, border_width, CopyFromParent, CopyFromParent, CopyFromParent, CWOverrideRedirect | CWBackPixel | CWEventMask, &swa); @@ -324,7 +324,7 @@ diff --color -u a/dmenu.c b/dmenu.c XSetClassHint(dpy, win, &ch); -@@ -709,6 +889,8 @@ +@@ -729,6 +908,8 @@ topbar = 0; else if (!strcmp(argv[i], "-f")) /* grabs keyboard before reading stdin */ fast = 1; @@ -333,6 +333,3 @@ diff --color -u a/dmenu.c b/dmenu.c else if (!strcmp(argv[i], "-i")) { /* case-insensitive item matching */ fstrncmp = strncasecmp; fstrstr = cistrstr; -Only in b: dmenu.c.orig -Only in a: dmenu_path -Only in a: dmenu_run diff --git a/overlays/patches/st.patch b/overlays/patches/st.patch index 87bb14b..2f879a8 100755 --- a/overlays/patches/st.patch +++ b/overlays/patches/st.patch @@ -1,6 +1,6 @@ -diff --color -u b/config.def.h a/config.def.h ---- b/config.def.h 2022-03-18 10:26:17.487413585 +0530 -+++ a/config.def.h 2022-03-18 11:11:09.497847262 +0530 +diff --color -ru st-0.9/config.def.h st-0.9-a/config.def.h +--- st-0.9/config.def.h 2022-10-04 23:11:26.000000000 +0530 ++++ st-0.9-a/config.def.h 2022-11-25 02:12:19.384259019 +0530 @@ -3,9 +3,10 @@ /* * appearance @@ -148,9 +148,9 @@ diff --color -u b/config.def.h a/config.def.h }; /* -diff --color -u b/st.c a/st.c ---- b/st.c 2022-03-18 10:26:17.488413654 +0530 -+++ a/st.c 2022-03-18 10:59:06.308482438 +0530 +diff --color -ru st-0.9/st.c st-0.9-a/st.c +--- st-0.9/st.c 2022-10-04 23:11:26.000000000 +0530 ++++ st-0.9-a/st.c 2022-11-25 02:12:19.384259019 +0530 @@ -35,6 +35,7 @@ #define ESC_ARG_SIZ 16 #define STR_BUF_SIZ ESC_BUF_SIZ @@ -179,7 +179,7 @@ diff --color -u b/st.c a/st.c int *dirty; /* dirtyness of lines */ TCursor c; /* cursor */ int ocx; /* old cursor col */ -@@ -184,8 +191,8 @@ +@@ -185,8 +192,8 @@ static void tputtab(int); static void tputc(Rune); static void treset(void); @@ -190,7 +190,7 @@ diff --color -u b/st.c a/st.c static void tsetattr(const int *, int); static void tsetchar(Rune, const Glyph *, int, int); static void tsetdirt(int, int); -@@ -416,10 +423,10 @@ +@@ -409,10 +416,10 @@ { int i = term.col; @@ -203,7 +203,7 @@ diff --color -u b/st.c a/st.c --i; return i; -@@ -528,7 +535,7 @@ +@@ -521,7 +528,7 @@ * Snap around if the word wraps around at the end or * beginning of a line. */ @@ -212,7 +212,7 @@ diff --color -u b/st.c a/st.c prevdelim = ISDELIM(prevgp->u); for (;;) { newx = *x + direction; -@@ -543,14 +550,14 @@ +@@ -536,14 +543,14 @@ yt = *y, xt = *x; else yt = newy, xt = newx; @@ -229,7 +229,7 @@ diff --color -u b/st.c a/st.c delim = ISDELIM(gp->u); if (!(gp->mode & ATTR_WDUMMY) && (delim != prevdelim || (delim && gp->u != prevgp->u))) -@@ -571,14 +578,14 @@ +@@ -564,14 +571,14 @@ *x = (direction < 0) ? 0 : term.col - 1; if (direction < 0) { for (; *y > 0; *y += direction) { @@ -246,7 +246,7 @@ diff --color -u b/st.c a/st.c & ATTR_WRAP)) { break; } -@@ -609,13 +616,13 @@ +@@ -602,13 +609,13 @@ } if (sel.type == SEL_RECTANGULAR) { @@ -263,7 +263,7 @@ diff --color -u b/st.c a/st.c while (last >= gp && last->u == ' ') --last; -@@ -851,6 +858,9 @@ +@@ -844,6 +851,9 @@ ttywrite(const char *s, size_t n, int may_echo) { const char *next; @@ -273,7 +273,7 @@ diff --color -u b/st.c a/st.c if (may_echo && IS_SET(MODE_ECHO)) twrite(s, n, 1); -@@ -1062,13 +1072,53 @@ +@@ -1055,13 +1065,53 @@ } void @@ -328,7 +328,7 @@ diff --color -u b/st.c a/st.c tsetdirt(orig, term.bot-n); tclearregion(0, term.bot-n+1, term.col-1, term.bot); -@@ -1078,17 +1128,28 @@ +@@ -1071,17 +1121,28 @@ term.line[i-n] = temp; } @@ -359,7 +359,7 @@ diff --color -u b/st.c a/st.c tclearregion(0, orig, term.col-1, orig+n-1); tsetdirt(orig+n, term.bot); -@@ -1098,7 +1159,8 @@ +@@ -1091,7 +1152,8 @@ term.line[i+n] = temp; } @@ -369,7 +369,7 @@ diff --color -u b/st.c a/st.c } void -@@ -1127,7 +1189,7 @@ +@@ -1120,7 +1182,7 @@ int y = term.c.y; if (y == term.bot) { @@ -378,7 +378,7 @@ diff --color -u b/st.c a/st.c } else { y++; } -@@ -1292,14 +1354,14 @@ +@@ -1285,14 +1347,14 @@ tinsertblankline(int n) { if (BETWEEN(term.c.y, term.top, term.bot)) @@ -395,7 +395,7 @@ diff --color -u b/st.c a/st.c } int32_t -@@ -1736,11 +1798,11 @@ +@@ -1729,11 +1791,11 @@ break; case 'S': /* SU -- Scroll line up */ DEFAULT(csiescseq.arg[0], 1); @@ -409,7 +409,7 @@ diff --color -u b/st.c a/st.c break; case 'L': /* IL -- Insert blank lines */ DEFAULT(csiescseq.arg[0], 1); -@@ -2330,7 +2392,7 @@ +@@ -2296,7 +2358,7 @@ return 0; case 'D': /* IND -- Linefeed */ if (term.c.y == term.bot) { @@ -418,7 +418,7 @@ diff --color -u b/st.c a/st.c } else { tmoveto(term.c.x, term.c.y+1); } -@@ -2343,7 +2405,7 @@ +@@ -2309,7 +2371,7 @@ break; case 'M': /* RI -- Reverse index */ if (term.c.y == term.top) { @@ -427,7 +427,7 @@ diff --color -u b/st.c a/st.c } else { tmoveto(term.c.x, term.c.y-1); } -@@ -2557,7 +2619,7 @@ +@@ -2523,7 +2585,7 @@ void tresize(int col, int row) { @@ -436,7 +436,7 @@ diff --color -u b/st.c a/st.c int minrow = MIN(row, term.row); int mincol = MIN(col, term.col); int *bp; -@@ -2594,6 +2656,14 @@ +@@ -2560,6 +2622,14 @@ term.dirty = xrealloc(term.dirty, row * sizeof(*term.dirty)); term.tabs = xrealloc(term.tabs, col * sizeof(*term.tabs)); @@ -451,7 +451,7 @@ diff --color -u b/st.c a/st.c /* resize each row to new width, zero-pad if needed */ for (i = 0; i < minrow; i++) { term.line[i] = xrealloc(term.line[i], col * sizeof(Glyph)); -@@ -2652,7 +2722,7 @@ +@@ -2618,7 +2688,7 @@ continue; term.dirty[y] = 0; @@ -460,7 +460,7 @@ diff --color -u b/st.c a/st.c } } -@@ -2673,8 +2743,9 @@ +@@ -2639,8 +2709,9 @@ cx--; drawregion(0, 0, term.col, term.row); @@ -472,9 +472,9 @@ diff --color -u b/st.c a/st.c term.ocx = cx; term.ocy = term.c.y; xfinishdraw(); -diff --color -u b/st.h a/st.h ---- b/st.h 2022-03-18 10:26:17.488413654 +0530 -+++ a/st.h 2022-03-18 11:04:56.429522959 +0530 +diff --color -ru st-0.9/st.h st-0.9-a/st.h +--- st-0.9/st.h 2022-10-04 23:11:26.000000000 +0530 ++++ st-0.9-a/st.h 2022-11-25 02:12:19.385259029 +0530 @@ -81,6 +81,8 @@ void redraw(void); void draw(void); @@ -484,7 +484,7 @@ diff --color -u b/st.h a/st.h void printscreen(const Arg *); void printsel(const Arg *); void sendbreak(const Arg *); -@@ -122,6 +124,7 @@ +@@ -120,6 +122,7 @@ extern int allowaltscreen; extern int allowwindowops; extern char *termname; @@ -492,9 +492,9 @@ diff --color -u b/st.h a/st.h extern unsigned int tabspaces; extern unsigned int defaultfg; extern unsigned int defaultbg; -diff --color -u b/x.c a/x.c ---- b/x.c 2022-03-18 10:26:17.489413722 +0530 -+++ a/x.c 2022-03-18 11:04:56.429522959 +0530 +diff --color -ru st-0.9/x.c st-0.9-a/x.c +--- st-0.9/x.c 2022-10-04 23:11:26.000000000 +0530 ++++ st-0.9-a/x.c 2022-11-25 02:12:19.385259029 +0530 @@ -55,6 +55,7 @@ static void clippaste(const Arg *); static void numlock(const Arg *); @@ -513,7 +513,7 @@ diff --color -u b/x.c a/x.c static void xsetenv(void); @@ -254,6 +256,8 @@ - static int oldbutton = 3; /* button event on startup: 3 = release */ + static uint buttons; /* bit field of pressed buttons */ +int usealtcolors = 0; /* 1 to use alternate palette */ + @@ -543,7 +543,7 @@ diff --color -u b/x.c a/x.c cresize(0, 0); redraw(); xhints(); -@@ -750,6 +763,11 @@ +@@ -766,6 +779,11 @@ return x == 0 ? 0 : 0x3737 + 0x2828 * x; } @@ -555,7 +555,7 @@ diff --color -u b/x.c a/x.c int xloadcolor(int i, const char *name, Color *ncolor) { -@@ -768,7 +786,7 @@ +@@ -784,7 +802,7 @@ return XftColorAllocValue(xw.dpy, xw.vis, xw.cmap, &color, ncolor); } else @@ -564,7 +564,7 @@ diff --color -u b/x.c a/x.c } return XftColorAllocName(xw.dpy, xw.vis, xw.cmap, name, ncolor); -@@ -791,8 +809,8 @@ +@@ -807,8 +825,8 @@ for (i = 0; i < dc.collen; i++) if (!xloadcolor(i, NULL, &dc.col[i])) { @@ -575,7 +575,7 @@ diff --color -u b/x.c a/x.c else die("could not allocate color %d\n", i); } -@@ -1034,6 +1052,67 @@ +@@ -1050,6 +1068,67 @@ FcPatternDestroy(pattern); } @@ -643,7 +643,7 @@ diff --color -u b/x.c a/x.c void xunloadfont(Font *f) { -@@ -1131,6 +1210,10 @@ +@@ -1147,6 +1226,10 @@ usedfont = (opt_font == NULL)? font : opt_font; xloadfonts(usedfont, 0); @@ -654,7 +654,7 @@ diff --color -u b/x.c a/x.c /* colors */ xw.cmap = XDefaultColormap(xw.dpy, xw.scr); xloadcols(); -@@ -1184,13 +1267,13 @@ +@@ -1200,13 +1283,13 @@ cursor = XCreateFontCursor(xw.dpy, mouseshape); XDefineCursor(xw.dpy, xw.win, cursor); @@ -670,7 +670,7 @@ diff --color -u b/x.c a/x.c xmousebg.red = 0x0000; xmousebg.green = 0x0000; xmousebg.blue = 0x0000; -@@ -1398,7 +1481,7 @@ +@@ -1414,7 +1497,7 @@ /* Change basic system colors [0-7] to bright system colors [8-15] */ if ((base.mode & ATTR_BOLD_FAINT) == ATTR_BOLD && BETWEEN(base.fg, 0, 7)) @@ -679,7 +679,7 @@ diff --color -u b/x.c a/x.c if (IS_SET(MODE_REVERSE)) { if (fg == &dc.col[defaultfg]) { -@@ -1626,6 +1709,8 @@ +@@ -1642,6 +1725,8 @@ int xstartdraw(void) {