[wiki] [sites] [dwm][patches][layoutscroll] add patch for 6.5, fix possible segfault || Fyodor Doletov
commit a7f46eed7ad54c3afc47ca7b130020dd80898d58
Author: Fyodor Doletov <doletov.fyodor_AT_yandex.ru>
Date: Mon Jul 28 05:16:33 2025 +0300
[dwm][patches][layoutscroll] add patch for 6.5, fix possible segfault
diff --git a/dwm.suckless.org/patches/layoutscroll/dwm-layoutscroll-6.5.diff b/dwm.suckless.org/patches/layoutscroll/dwm-layoutscroll-6.5.diff
new file mode 100644
index 00000000..bca5fb33
--- /dev/null
+++ b/dwm.suckless.org/patches/layoutscroll/dwm-layoutscroll-6.5.diff
_AT_@ -0,0 +1,67 @@
+diff --git a/config.def.h b/config.def.h
+index 9efa774..d06afaf 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -85,6 +85,8 @@ static const Key keys[] = {
+ { MODKEY, XK_period, focusmon, {.i = +1 } },
+ { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
+ { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
++ { MODKEY|ShiftMask, XK_h, layoutscroll, {.i = -1 } },
++ { MODKEY|ShiftMask, XK_l, layoutscroll, {.i = +1 } },
+ TAGKEYS( XK_1, 0)
+ TAGKEYS( XK_2, 1)
+ TAGKEYS( XK_3, 2)
+diff --git a/dwm.c b/dwm.c
+index 1443802..b2271d9 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -129,6 +129,7 @@ struct Monitor {
+ Monitor *next;
+ Window barwin;
+ const Layout *lt[2];
++ int ltcur; /* current layout */
+ };
+
+ typedef struct {
+_AT_@ -199,6 +200,7 @@ static void sendmon(Client *c, Monitor *m);
+ static void setclientstate(Client *c, long state);
+ static void setfocus(Client *c);
+ static void setfullscreen(Client *c, int fullscreen);
++static void layoutscroll(const Arg *arg);
+ static void setlayout(const Arg *arg);
+ static void setmfact(const Arg *arg);
+ static void setup(void);
+_AT_@ -640,6 +642,7 @@ createmon(void)
+ m->nmaster = nmaster;
+ m->showbar = showbar;
+ m->topbar = topbar;
++ m->ltcur = 0;
+ m->lt[0] = &layouts[0];
+ m->lt[1] = &layouts[1 % LENGTH(layouts)];
+ strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol);
+_AT_@ -1506,6 +1509,25 @@ setfullscreen(Client *c, int fullscreen)
+ }
+ }
+
++void
++layoutscroll(const Arg *arg)
++{
++ if (!arg || !arg->i)
++ return;
++ int switchto = selmon->ltcur + arg->i;
++ int l = LENGTH(layouts);
++
++ if (switchto >= l)
++ switchto = 0;
++ else if(switchto < 0)
++ switchto = l - 1;
++
++ selmon->ltcur = switchto;
++ Arg arg2 = {.v= &layouts[switchto] };
++ setlayout(&arg2);
++
++}
++
+ void
+ setlayout(const Arg *arg)
+ {
diff --git a/dwm.suckless.org/patches/layoutscroll/index.md b/dwm.suckless.org/patches/layoutscroll/index.md
index 0174877b..ef26ebb2 100644
--- a/dwm.suckless.org/patches/layoutscroll/index.md
+++ b/dwm.suckless.org/patches/layoutscroll/index.md
_AT_@ -9,7 +9,10 @@ This patch is different from [cyclelayouts](../cyclelayouts) patch, because it d
Download
--------
* [dwm-layoutscroll-6.2.diff](dwm-layoutscroll-6.2.diff)
+* [dwm-layoutscroll-6.5.diff](dwm-layoutscroll-6.5.diff)
-Author
+Authors
--------
* Fyodor Doletov - <doletov.fyodor_AT_yandex.ru>
+* JeffOfBread - <JeffOfBreadCoding_AT_gmail.com>
+
Received on Mon Jul 28 2025 - 04:17:36 CEST
This archive was generated by hypermail 2.3.0
: Mon Jul 28 2025 - 04:24:49 CEST