diff --git a/suckless/dwm/config.h b/suckless/dwm/config.h deleted file mode 100644 index abb5b226..00000000 --- a/suckless/dwm/config.h +++ /dev/null @@ -1,120 +0,0 @@ -/* See LICENSE file for copyright and license details. */ - -#include "exitdwm.c" - -/* appearance */ -static const unsigned int borderpx = 4; /* border pixel of windows */ -static const unsigned int snap = 32; /* snap pixel */ -static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */ -static const unsigned int systrayonleft = 1; /* 0: systray in the right corner, >0: systray on left of status text */ -static const unsigned int systrayspacing = 2; /* systray spacing */ -static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ -static const int showsystray = 1; /* 0 means no systray */ -static const int showbar = 1; /* 0 means no bar */ -static const int topbar = 1; /* 0 means bottom bar */ -static const char *fonts[] = { "JetBrainsMono NF:size=20" }; -static const char *colors[][3] = { - /* fg bg border */ - [SchemeNorm] = { "#ebdbb2", "#282828", "#1d2021" }, - [SchemeSel] = { "#282828", "#ebdbb2", "#ebdbb2" }, -}; - -/* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; - -static const Rule rules[] = { - /* xprop(1): - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ - /* class instance title tags mask isfloating CenterThisWindow? monitor */ - { "st", NULL, NULL, 0, 0, 1, -1 }, - { "Gimp", NULL, NULL, 0, 1, 0, -1 }, - { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1 }, -}; - -/* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ -static const int nmaster = 1; /* number of clients in master area */ -static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ -static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */ - -static const Layout layouts[] = { - /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "><>", NULL }, /* no layout function means floating behavior */ - { "[M]", monocle }, -}; - -/* key definitions */ -#define MODKEY Mod1Mask -#define TAGKEYS(KEY,TAG) \ - { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ - { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ - { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ - { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, - -/* helper for spawning shell commands in the pre dwm-5.0 fashion */ -#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } - -/* commands */ -static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ -static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, NULL }; -static const char *termcmd[] = { "st", NULL }; -static const char *slockcmd[] = { "slock", NULL }; - -static const Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, - { MODKEY|ShiftMask, XK_l, spawn, {.v = slockcmd } }, - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, - { MODKEY, XK_l, setmfact, {.f = +0.05} }, - { MODKEY, XK_Return, zoom, {0} }, - { MODKEY, XK_Tab, view, {0} }, - { MODKEY|ShiftMask, XK_c, killclient, {0} }, - { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, - { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, - { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, - { MODKEY, XK_space, setlayout, {0} }, - { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, - { MODKEY, XK_0, view, {.ui = ~0 } }, - { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, - { MODKEY, XK_comma, focusmon, {.i = -1 } }, - { MODKEY, XK_period, focusmon, {.i = +1 } }, - { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, - { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, - TAGKEYS( XK_1, 0) - TAGKEYS( XK_2, 1) - TAGKEYS( XK_3, 2) - TAGKEYS( XK_4, 3) - TAGKEYS( XK_5, 4) - TAGKEYS( XK_6, 5) - TAGKEYS( XK_7, 6) - TAGKEYS( XK_8, 7) - TAGKEYS( XK_9, 8) - { MODKEY|ShiftMask, XK_e, exitdwm, {0} }, -}; - -/* button definitions */ -/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ -static const Button buttons[] = { - /* click event mask button function argument */ - { ClkLtSymbol, 0, Button1, setlayout, {0} }, - { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, - { ClkWinTitle, 0, Button2, zoom, {0} }, - { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, - { ClkClientWin, MODKEY, Button1, movemouse, {0} }, - { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, - { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, - { ClkTagBar, 0, Button1, view, {0} }, - { ClkTagBar, 0, Button3, toggleview, {0} }, - { ClkTagBar, MODKEY, Button1, tag, {0} }, - { ClkTagBar, MODKEY, Button3, toggletag, {0} }, -}; - diff --git a/suckless/st/config.def.h b/suckless/st/config.def.h index a6556240..677758a9 100644 --- a/suckless/st/config.def.h +++ b/suckless/st/config.def.h @@ -147,12 +147,6 @@ static unsigned int defaultrcs = 257; */ static unsigned int cursorshape = 2; -/* - * Whether to use pixel geometry or cell geometry - */ - -static Geometry geometry = CellGeometry; - /* * Default columns and rows numbers */ @@ -160,13 +154,6 @@ static Geometry geometry = CellGeometry; static unsigned int cols = 80; static unsigned int rows = 24; -/* - * Default width and height (including borders!) - */ - -static unsigned int width = 564; -static unsigned int height = 364; - /* * Default colour and shape of the mouse cursor */ diff --git a/suckless/st/config.h b/suckless/st/config.h index a6556240..677758a9 100644 --- a/suckless/st/config.h +++ b/suckless/st/config.h @@ -147,12 +147,6 @@ static unsigned int defaultrcs = 257; */ static unsigned int cursorshape = 2; -/* - * Whether to use pixel geometry or cell geometry - */ - -static Geometry geometry = CellGeometry; - /* * Default columns and rows numbers */ @@ -160,13 +154,6 @@ static Geometry geometry = CellGeometry; static unsigned int cols = 80; static unsigned int rows = 24; -/* - * Default width and height (including borders!) - */ - -static unsigned int width = 564; -static unsigned int height = 364; - /* * Default colour and shape of the mouse cursor */ diff --git a/suckless/st/patches/st-anygeometry-0.8.1.diff b/suckless/st/patches/st-anygeometry-0.8.1.diff deleted file mode 100644 index b04d36c6..00000000 --- a/suckless/st/patches/st-anygeometry-0.8.1.diff +++ /dev/null @@ -1,123 +0,0 @@ -From 6a5a862569912e34febe2dbd5244062013840204 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jos=C3=A9=20Miguel=20S=C3=A1nchez=20Garc=C3=ADa?= - -Date: Thu, 13 Aug 2020 11:02:01 +0000 -Subject: [PATCH] add -G to set pixel-based geometry - ---- - config.def.h | 13 +++++++++++++ - x.c | 36 ++++++++++++++++++++++++++++++++---- - 2 files changed, 45 insertions(+), 4 deletions(-) - -diff --git a/config.def.h b/config.def.h -index 6f05dce..bea316a 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -141,6 +141,12 @@ static unsigned int defaultrcs = 257; - */ - static unsigned int cursorshape = 2; - -+/* -+ * Whether to use pixel geometry or cell geometry -+ */ -+ -+static Geometry geometry = CellGeometry; -+ - /* - * Default columns and rows numbers - */ -@@ -148,6 +154,13 @@ static unsigned int cursorshape = 2; - static unsigned int cols = 80; - static unsigned int rows = 24; - -+/* -+ * Default width and height (including borders!) -+ */ -+ -+static unsigned int width = 564; -+static unsigned int height = 364; -+ - /* - * Default colour and shape of the mouse cursor - */ -diff --git a/x.c b/x.c -index 210f184..29e35d0 100644 ---- a/x.c -+++ b/x.c -@@ -45,6 +45,11 @@ typedef struct { - signed char appcursor; /* application cursor */ - } Key; - -+typedef enum { -+ PixelGeometry, -+ CellGeometry -+} Geometry; -+ - /* X modifiers */ - #define XK_ANY_MOD UINT_MAX - #define XK_NO_MOD 0 -@@ -1096,7 +1101,7 @@ xicdestroy(XIC xim, XPointer client, XPointer call) - } - - void --xinit(int cols, int rows) -+xinit(int w, int h) - { - XGCValues gcvalues; - Cursor cursor; -@@ -1121,8 +1126,16 @@ xinit(int cols, int rows) - xloadcols(); - - /* adjust fixed window geometry */ -- win.w = 2 * borderpx + cols * win.cw; -- win.h = 2 * borderpx + rows * win.ch; -+ switch (geometry) { -+ case CellGeometry: -+ win.w = 2 * borderpx + w * win.cw; -+ win.h = 2 * borderpx + h * win.ch; -+ break; -+ case PixelGeometry: -+ win.w = w; -+ win.h = h; -+ break; -+ } - if (xw.gm & XNegative) - xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; - if (xw.gm & YNegative) -@@ -2001,6 +2014,12 @@ main(int argc, char *argv[]) - case 'g': - xw.gm = XParseGeometry(EARGF(usage()), - &xw.l, &xw.t, &cols, &rows); -+ geometry = CellGeometry; -+ break; -+ case 'G': -+ xw.gm = XParseGeometry(EARGF(usage()), -+ &xw.l, &xw.t, &width, &height); -+ geometry = PixelGeometry; - break; - case 'i': - xw.isfixed = 1; -@@ -2037,10 +2056,19 @@ run: - - setlocale(LC_CTYPE, ""); - XSetLocaleModifiers(""); -+ switch (geometry) { -+ case CellGeometry: -+ xinit(cols, rows); -+ break; -+ case PixelGeometry: -+ xinit(width, height); -+ cols = (win.w - 2 * borderpx) / win.cw; -+ rows = (win.h - 2 * borderpx) / win.ch; -+ break; -+ } - cols = MAX(cols, 1); - rows = MAX(rows, 1); - tnew(cols, rows); -- xinit(cols, rows); - xsetenv(); - selinit(); - run(); --- -2.28.0 - diff --git a/suckless/st/patches/st-anysize-20220718-baa9357.diff b/suckless/st/patches/st-anysize-20220718-baa9357.diff new file mode 100644 index 00000000..675ffdfb --- /dev/null +++ b/suckless/st/patches/st-anysize-20220718-baa9357.diff @@ -0,0 +1,164 @@ +From 8dcdc4b21a73268e167d98aa30f24315c7f3b7ff Mon Sep 17 00:00:00 2001 +From: Bakkeby +Date: Mon, 18 Jul 2022 16:52:03 +0200 +Subject: [PATCH] Adding anysize patch + +--- + x.c | 56 ++++++++++++++++++++++++++++++-------------------------- + 1 file changed, 30 insertions(+), 26 deletions(-) + +diff --git a/x.c b/x.c +index 2a3bd38..f534347 100644 +--- a/x.c ++++ b/x.c +@@ -81,6 +81,7 @@ typedef XftGlyphFontSpec GlyphFontSpec; + typedef struct { + int tw, th; /* tty width and height */ + int w, h; /* window width and height */ ++ int hborderpx, vborderpx; + int ch; /* char height */ + int cw; /* char width */ + int mode; /* window state/mode flags */ +@@ -331,7 +332,7 @@ ttysend(const Arg *arg) + int + evcol(XEvent *e) + { +- int x = e->xbutton.x - borderpx; ++ int x = e->xbutton.x - win.hborderpx; + LIMIT(x, 0, win.tw - 1); + return x / win.cw; + } +@@ -339,7 +340,7 @@ evcol(XEvent *e) + int + evrow(XEvent *e) + { +- int y = e->xbutton.y - borderpx; ++ int y = e->xbutton.y - win.vborderpx; + LIMIT(y, 0, win.th - 1); + return y / win.ch; + } +@@ -739,6 +740,9 @@ cresize(int width, int height) + col = MAX(1, col); + row = MAX(1, row); + ++ win.hborderpx = (win.w - col * win.cw) / 2; ++ win.vborderpx = (win.h - row * win.ch) / 2; ++ + tresize(col, row); + xresize(col, row); + ttyresize(win.tw, win.th); +@@ -869,8 +873,8 @@ xhints(void) + sizeh->flags = PSize | PResizeInc | PBaseSize | PMinSize; + sizeh->height = win.h; + sizeh->width = win.w; +- sizeh->height_inc = win.ch; +- sizeh->width_inc = win.cw; ++ sizeh->height_inc = 1; ++ sizeh->width_inc = 1; + sizeh->base_height = 2 * borderpx; + sizeh->base_width = 2 * borderpx; + sizeh->min_height = win.ch + 2 * borderpx; +@@ -1152,8 +1156,8 @@ xinit(int cols, int rows) + xloadcols(); + + /* adjust fixed window geometry */ +- win.w = 2 * borderpx + cols * win.cw; +- win.h = 2 * borderpx + rows * win.ch; ++ win.w = 2 * win.hborderpx + 2 * borderpx + cols * win.cw; ++ win.h = 2 * win.vborderpx + 2 * borderpx + rows * win.ch; + if (xw.gm & XNegative) + xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; + if (xw.gm & YNegative) +@@ -1242,7 +1246,7 @@ xinit(int cols, int rows) + int + xmakeglyphfontspecs(XftGlyphFontSpec *specs, const Glyph *glyphs, int len, int x, int y) + { +- float winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, xp, yp; ++ float winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, xp, yp; + ushort mode, prevmode = USHRT_MAX; + Font *font = &dc.font; + int frcflags = FRC_NORMAL; +@@ -1375,7 +1379,7 @@ void + xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, int y) + { + int charlen = len * ((base.mode & ATTR_WIDE) ? 2 : 1); +- int winx = borderpx + x * win.cw, winy = borderpx + y * win.ch, ++ int winx = win.hborderpx + x * win.cw, winy = win.vborderpx + y * win.ch, + width = charlen * win.cw; + Color *fg, *bg, *temp, revfg, revbg, truefg, truebg; + XRenderColor colfg, colbg; +@@ -1465,17 +1469,17 @@ xdrawglyphfontspecs(const XftGlyphFontSpec *specs, Glyph base, int len, int x, i + + /* Intelligent cleaning up of the borders. */ + if (x == 0) { +- xclear(0, (y == 0)? 0 : winy, borderpx, ++ xclear(0, (y == 0)? 0 : winy, win.hborderpx, + winy + win.ch + +- ((winy + win.ch >= borderpx + win.th)? win.h : 0)); ++ ((winy + win.ch >= win.vborderpx + win.th)? win.h : 0)); + } +- if (winx + width >= borderpx + win.tw) { ++ if (winx + width >= win.hborderpx + win.tw) { + xclear(winx + width, (y == 0)? 0 : winy, win.w, +- ((winy + win.ch >= borderpx + win.th)? win.h : (winy + win.ch))); ++ ((winy + win.ch >= win.vborderpx + win.th)? win.h : (winy + win.ch))); + } + if (y == 0) +- xclear(winx, 0, winx + width, borderpx); +- if (winy + win.ch >= borderpx + win.th) ++ xclear(winx, 0, winx + width, win.vborderpx); ++ if (winy + win.ch >= win.vborderpx + win.th) + xclear(winx, winy + win.ch, winx + width, win.h); + + /* Clean up the region we want to draw to. */ +@@ -1569,35 +1573,35 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og) + case 3: /* Blinking Underline */ + case 4: /* Steady Underline */ + XftDrawRect(xw.draw, &drawcol, +- borderpx + cx * win.cw, +- borderpx + (cy + 1) * win.ch - \ ++ win.hborderpx + cx * win.cw, ++ win.vborderpx + (cy + 1) * win.ch - \ + cursorthickness, + win.cw, cursorthickness); + break; + case 5: /* Blinking bar */ + case 6: /* Steady bar */ + XftDrawRect(xw.draw, &drawcol, +- borderpx + cx * win.cw, +- borderpx + cy * win.ch, ++ win.hborderpx + cx * win.cw, ++ win.vborderpx + cy * win.ch, + cursorthickness, win.ch); + break; + } + } else { + XftDrawRect(xw.draw, &drawcol, +- borderpx + cx * win.cw, +- borderpx + cy * win.ch, ++ win.hborderpx + cx * win.cw, ++ win.vborderpx + cy * win.ch, + win.cw - 1, 1); + XftDrawRect(xw.draw, &drawcol, +- borderpx + cx * win.cw, +- borderpx + cy * win.ch, ++ win.hborderpx + cx * win.cw, ++ win.vborderpx + cy * win.ch, + 1, win.ch - 1); + XftDrawRect(xw.draw, &drawcol, +- borderpx + (cx + 1) * win.cw - 1, +- borderpx + cy * win.ch, ++ win.hborderpx + (cx + 1) * win.cw - 1, ++ win.vborderpx + cy * win.ch, + 1, win.ch - 1); + XftDrawRect(xw.draw, &drawcol, +- borderpx + cx * win.cw, +- borderpx + (cy + 1) * win.ch - 1, ++ win.hborderpx + cx * win.cw, ++ win.vborderpx + (cy + 1) * win.ch - 1, + win.cw, 1); + } + } +-- +2.37.1 + diff --git a/suckless/st/x.c b/suckless/st/x.c index e31a0e76..978a8fc5 100644 --- a/suckless/st/x.c +++ b/suckless/st/x.c @@ -45,11 +45,6 @@ typedef struct { signed char appcursor; /* application cursor */ } Key; -typedef enum { - PixelGeometry, - CellGeometry -} Geometry; - /* X modifiers */ #define XK_ANY_MOD UINT_MAX #define XK_NO_MOD 0 @@ -1132,7 +1127,7 @@ xicdestroy(XIC xim, XPointer client, XPointer call) } void -xinit(int w, int h) +xinit(int cols, int rows) { XGCValues gcvalues; Cursor cursor; @@ -1157,16 +1152,8 @@ xinit(int w, int h) xloadcols(); /* adjust fixed window geometry */ - switch (geometry) { - case CellGeometry: - win.w = 2 * borderpx + w * win.cw; - win.h = 2 * borderpx + h * win.ch; - break; - case PixelGeometry: - win.w = w; - win.h = h; - break; - } + win.w = 2 * borderpx + cols * win.cw; + win.h = 2 * borderpx + rows * win.ch; if (xw.gm & XNegative) xw.l += DisplayWidth(xw.dpy, xw.scr) - win.w - 2; if (xw.gm & YNegative) @@ -2081,12 +2068,6 @@ main(int argc, char *argv[]) case 'g': xw.gm = XParseGeometry(EARGF(usage()), &xw.l, &xw.t, &cols, &rows); - geometry = CellGeometry; - break; - case 'G': - xw.gm = XParseGeometry(EARGF(usage()), - &xw.l, &xw.t, &width, &height); - geometry = PixelGeometry; break; case 'i': xw.isfixed = 1; @@ -2123,19 +2104,10 @@ run: setlocale(LC_CTYPE, ""); XSetLocaleModifiers(""); - switch (geometry) { - case CellGeometry: - xinit(cols, rows); - break; - case PixelGeometry: - xinit(width, height); - cols = (win.w - 2 * borderpx) / win.cw; - rows = (win.h - 2 * borderpx) / win.ch; - break; - } cols = MAX(cols, 1); rows = MAX(rows, 1); tnew(cols, rows); + xinit(cols, rows); xsetenv(); selinit(); run();