dwm-multimon-4-status_all-6.4.patch - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       dwm-multimon-4-status_all-6.4.patch (3946B)
       ---
            1 From 34d7ca93ff7fff443f9cf0ce6ba6da6acbcfe06c Mon Sep 17 00:00:00 2001
            2 From: "Gary B. Genett" <me@garybgenett.net>
            3 Date: Sun, 19 Feb 2023 08:59:36 -0800
            4 Subject: added statusall toggle
            5 MIME-Version: 1.0
            6 Content-Type: multipart/mixed; boundary="------------2.37.4"
            7 
            8 This is a multi-part message in MIME format.
            9 --------------2.37.4
           10 Content-Type: text/plain; charset=UTF-8; format=fixed
           11 Content-Transfer-Encoding: 8bit
           12 
           13 ---
           14  config.def.h | 1 +
           15  dwm.c        | 4 ++--
           16  2 files changed, 3 insertions(+), 2 deletions(-)
           17 
           18 
           19 --------------2.37.4
           20 Content-Type: text/x-patch; name="0004-added-statusall-toggle.patch"
           21 Content-Transfer-Encoding: 8bit
           22 Content-Disposition: attachment; filename="0004-added-statusall-toggle.patch"
           23 
           24 diff --git a/config.def.h b/config.def.h
           25 index a664c793845c4c7c0ebe8ac69c96885c76193819..fcfe8245a438686f276ffc9a4df17695382ed58b 100644
           26 --- a/config.def.h
           27 +++ b/config.def.h
           28 @@ -29,20 +29,21 @@ static const Rule rules[] = {
           29          /* class      instance    title       tags mask     isfloating   monitor */
           30          { "Gimp",     NULL,       NULL,       0,            1,           -1 },
           31          { "Firefox",  NULL,       NULL,       1 << 8,       0,           -1 },
           32  };
           33  
           34  /* layout(s) */
           35  static const float mfact     = 0.55; /* factor of master area size [0.05..0.95] */
           36  static const int nmaster     = 1;    /* number of clients in master area */
           37  static const int nviews      = 3;    /* mask of tags highlighted by default (tags 1-4) */
           38  static const int resizehints = 1;    /* 1 means respect size hints in tiled resizals */
           39 +static const int statusall   = 1;    /* 1 means status is shown in all bars, not just active monitor */
           40  static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
           41  
           42  static const float facts[1];    //static const float facts[]     = {     0,     0.5 }; // = mfact   // 50%
           43  static const int masters[1];    //static const int masters[]     = {     0,      -1 }; // = nmaster // vertical stacking (for rotated monitor)
           44  static const int views[1];      //static const int views[]       = {     0,      ~0 }; // = nviews  // all tags
           45  /* invert tags after nviews */  /* array dimentions can both be as big as needed */  // final highlighted tags
           46  static const int toggles[1][1]; //static const int toggles[2][2] = { {0,8}, {~0,~0} }; // 2-4+9     // all (leave as views above)
           47  static const int toggles[1][1] = {{~0}};
           48  
           49  static const Layout layouts[] = {
           50          /* symbol     arrange function */
           51 diff --git a/dwm.c b/dwm.c
           52 index 93da0f4565d7a17ef96a1b167cfcb2c9f0ac6ad3..77ff310e03edbf42ac2dd55471962ce259b63071 100644
           53 --- a/dwm.c
           54 +++ b/dwm.c
           55 @@ -709,21 +709,21 @@ drawbar(Monitor *m)
           56          int x, w, tw = 0;
           57          int boxs = drw->fonts->h / 9;
           58          int boxw = drw->fonts->h / 6 + 2;
           59          unsigned int i, occ = 0, urg = 0;
           60          Client *c;
           61  
           62          if (!m->showbar)
           63                  return;
           64  
           65          /* draw status first so it can be overdrawn by tags later */
           66 -        if (m == selmon) { /* status is only drawn on selected monitor */
           67 +        if (m == selmon || statusall) { /* status is only drawn on selected monitor */
           68                  drw_setscheme(drw, scheme[SchemeNorm]);
           69                  tw = TEXTW(stext) - lrpad + 2; /* 2px right padding */
           70                  drw_text(drw, m->ww - tw, 0, tw, bh, 0, stext, 0);
           71          }
           72  
           73          for (c = m->clients; c; c = c->next) {
           74                  occ |= c->tags;
           75                  if (c->isurgent)
           76                          urg |= c->tags;
           77          }
           78 @@ -2017,21 +2017,21 @@ updatesizehints(Client *c)
           79                  c->maxa = c->mina = 0.0;
           80          c->isfixed = (c->maxw && c->maxh && c->maxw == c->minw && c->maxh == c->minh);
           81          c->hintsvalid = 1;
           82  }
           83  
           84  void
           85  updatestatus(void)
           86  {
           87          if (!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
           88                  strcpy(stext, "dwm-"VERSION);
           89 -        drawbar(selmon);
           90 +        statusall ? drawbars() : drawbar(selmon);
           91  }
           92  
           93  void
           94  updatetitle(Client *c)
           95  {
           96          if (!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name))
           97                  gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name);
           98          if (c->name[0] == '\0') /* hack to mark broken clients */
           99                  strcpy(c->name, broken);
          100  }
          101 
          102 --------------2.37.4--
          103 
          104