sites

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

dwm-cycleview-20241121-0a129d5f.diff (2008B)


      1 From 0a129d5ff1b94cf29d0896e9b47a3bc08d6a95fc Mon Sep 17 00:00:00 2001
      2 From: Wim Stockman <wim@thinkerwim.org>
      3 Date: Thu, 21 Nov 2024 15:37:49 +0100
      4 Subject: [PATCH] A patch that loops through all tags on a moniter in both
      5  directions
      6 
      7 ---
      8  config.def.h |  2 ++
      9  dwm.c        | 16 ++++++++++++++++
     10  2 files changed, 18 insertions(+)
     11 
     12 diff --git a/config.def.h b/config.def.h
     13 index 9efa774..04bb388 100644
     14 --- a/config.def.h
     15 +++ b/config.def.h
     16 @@ -67,6 +67,8 @@ static const Key keys[] = {
     17  	{ MODKEY,                       XK_b,      togglebar,      {0} },
     18  	{ MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
     19  	{ MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
     20 +	{ MODKEY|ShiftMask,             XK_j,      cycleview,      {1} },
     21 +	{ MODKEY|ShiftMask,             XK_k,      cycleview,      {0} },
     22  	{ MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
     23  	{ MODKEY,                       XK_d,      incnmaster,     {.i = -1 } },
     24  	{ MODKEY,                       XK_h,      setmfact,       {.f = -0.05} },
     25 diff --git a/dwm.c b/dwm.c
     26 index 1443802..2014518 100644
     27 --- a/dwm.c
     28 +++ b/dwm.c
     29 @@ -226,6 +226,7 @@ static void updatetitle(Client *c);
     30  static void updatewindowtype(Client *c);
     31  static void updatewmhints(Client *c);
     32  static void view(const Arg *arg);
     33 +static void cycleview(const Arg *arg);
     34  static Client *wintoclient(Window w);
     35  static Monitor *wintomon(Window w);
     36  static int xerror(Display *dpy, XErrorEvent *ee);
     37 @@ -2049,6 +2050,21 @@ updatewmhints(Client *c)
     38  	}
     39  }
     40  
     41 +void
     42 +cycleview(const Arg *arg) {
     43 +	 unsigned int newtag ;
     44 +	if (arg->ui) { /* if ui is 1 goto the left if 0 goto the right */
     45 +	    newtag = selmon->tagset[selmon->seltags] >> 1;
     46 +	    if (newtag == 0) newtag = (1 << (LENGTH(tags) - 1));
     47 +	}
     48 +	else{
     49 +	    newtag = selmon->tagset[selmon->seltags] << 1;
     50 +	    if (newtag > ( 1 << (LENGTH(tags) - 1))) newtag = 1;
     51 +	}
     52 +    Arg a = { .ui = newtag};
     53 +    view(&a);
     54 +}
     55 +
     56  void
     57  view(const Arg *arg)
     58  {
     59 -- 
     60 2.47.0
     61