sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

commit de1601e0d7cb4d02251ffda0b473c1040c43e710
parent ea1f3406af87ecd227a6e9a2ca41ed6180309c7b
Author: Fyodor Doletov <doletov.fyodor@yandex.ru>
Date:   Thu, 12 Aug 2021 11:26:45 +0300

[dwm][patch][layoutscroll] added patch

Diffstat:
Adwm.suckless.org/patches/layoutscroll/dwm-layoutscroll-6.2.diff | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adwm.suckless.org/patches/layoutscroll/index.md | 15+++++++++++++++
2 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/dwm.suckless.org/patches/layoutscroll/dwm-layoutscroll-6.2.diff b/dwm.suckless.org/patches/layoutscroll/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) + { diff --git a/dwm.suckless.org/patches/layoutscroll/index.md b/dwm.suckless.org/patches/layoutscroll/index.md @@ -0,0 +1,15 @@ +layoutscroll +============ + +Description +----------- +Cycle through all layouts defined in layouts array in config.def.h using MOD+Shift+H and Mod+Shift+L +This patch is different from [cyclelayouts](../cyclelayouts) patch, because it does not append "NULL, NULL" at the end of the layouts array. + +Download +-------- +* [dwm-layoutscroll-6.2.diff](dwm-layoutscroll-6.2.diff) + +Author +-------- +* Fyodor Doletov - <doletov.fyodor@yandex.ru>