From 127d89b4246e3743ac24c425a80733cbf3dd832a Mon Sep 17 00:00:00 2001 From: krolyxon Date: Sun, 5 Jun 2022 13:02:48 +0530 Subject: [PATCH] layoutscroll patch --- README.md | 3 +- config.def.h | 2 + config.h | 2 + dwm | Bin 75184 -> 75248 bytes dwm.c | 22 +++++++++++ patch/dwm-layoutscroll-6.2.diff | 67 ++++++++++++++++++++++++++++++++ 6 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 patch/dwm-layoutscroll-6.2.diff diff --git a/README.md b/README.md index e503ae8..12ce822 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ 3. [scratchpad](https://dwm.suckless.org/patches/scratchpad/) patch for scratchpad 4. [bar height](https://dwm.suckless.org/patches/bar_height/) for changing bar's height 5. [pertag](https://dwm.suckless.org/patches/pertag/) for layout for each tag. -6. [swallow](https://dwm.suckless.org/patches/swallow/) patch for swallowing windows (have reversed the patch right now.) +6. [layoutscroll](https://dwm.suckless.org/patches/layoutscroll/) for scrolling through layouts with ``mod+shift+tab`` +7. [swallow](https://dwm.suckless.org/patches/swallow/) patch for swallowing windows (have reversed the patch right now.) ### MAKE SURE TO INSTALL ``libxft-bgra`` OR DWM WILL CRASH diff --git a/config.def.h b/config.def.h index fa3d86c..3c80a7d 100644 --- a/config.def.h +++ b/config.def.h @@ -93,6 +93,8 @@ static 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_Tab, layoutscroll, {.i = +1 } }, { MODKEY, XK_minus, setgaps, {.i = -1 } }, { MODKEY, XK_equal, setgaps, {.i = +1 } }, { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, diff --git a/config.h b/config.h index fa3d86c..3c80a7d 100644 --- a/config.h +++ b/config.h @@ -93,6 +93,8 @@ static 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_Tab, layoutscroll, {.i = +1 } }, { MODKEY, XK_minus, setgaps, {.i = -1 } }, { MODKEY, XK_equal, setgaps, {.i = +1 } }, { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, diff --git a/dwm b/dwm index 987dd589e53d72ab5e2aa8641b70c11762c72f1b..70ea2f9cc0fd8a6b68973b70bc96a1613fe38124 100755 GIT binary patch delta 17894 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 diff --git a/dwm.c b/dwm.c index 405b49f..331c78b 100644 --- a/dwm.c +++ b/dwm.c @@ -148,6 +148,7 @@ struct Monitor { Monitor *next; Window barwin; const Layout *lt[2]; + int ltcur; /* current layout */ Pertag *pertag; }; @@ -220,6 +221,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 setgaps(const Arg *arg); static void setlayout(const Arg *arg); static void setmfact(const Arg *arg); @@ -675,6 +677,7 @@ createmon(void) m->nmaster = nmaster; m->showbar = showbar; m->topbar = topbar; + m->ltcur = 0; m->gappx = gappx; m->lt[0] = &layouts[0]; m->lt[1] = &layouts[1 % LENGTH(layouts)]; @@ -1600,6 +1603,25 @@ setgaps(const Arg *arg) arrange(selmon); } +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/patch/dwm-layoutscroll-6.2.diff b/patch/dwm-layoutscroll-6.2.diff new file mode 100644 index 0000000..95e621d --- /dev/null +++ b/patch/dwm-layoutscroll-6.2.diff @@ -0,0 +1,67 @@ +diff --git a/config.def.h b/config.def.h +index 4c56466..11ee7b5 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -90,6 +90,8 @@ static 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 1e37fcf..24effbc 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -148,6 +148,7 @@ struct Monitor { + Monitor *next; + Window barwin; + const Layout *lt[2]; ++ int ltcur; /* current layout */ + }; + + typedef struct { +@@ -227,6 +228,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); +@@ -725,6 +727,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); +@@ -1667,6 +1670,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) + {