Merge remote-tracking branch 'upstream/master'
This commit is contained in:
19
README.org
19
README.org
@@ -1150,7 +1150,6 @@ Awesomebar takes precedence over fancybar.
|
|||||||
|
|
||||||
https://dwm.suckless.org/patches/awesomebar/
|
https://dwm.suckless.org/patches/awesomebar/
|
||||||
|
|
||||||
|
|
||||||
#+BEGIN_SRC c :tangle patches.def.h
|
#+BEGIN_SRC c :tangle patches.def.h
|
||||||
#define BAR_AWESOMEBAR_PATCH 0
|
#define BAR_AWESOMEBAR_PATCH 0
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@@ -1682,6 +1681,8 @@ This patch adds back in the workaround for a BadLength error in the Xft library
|
|||||||
|
|
||||||
*** Padding
|
*** Padding
|
||||||
|
|
||||||
|
**** Main
|
||||||
|
|
||||||
This patch adds vertical and horizontal space between the statusbar and the edge of the screen.
|
This patch adds vertical and horizontal space between the statusbar and the edge of the screen.
|
||||||
|
|
||||||
https://dwm.suckless.org/patches/barpadding/
|
https://dwm.suckless.org/patches/barpadding/
|
||||||
@@ -1690,6 +1691,22 @@ https://dwm.suckless.org/patches/barpadding/
|
|||||||
#define BAR_PADDING_PATCH 0
|
#define BAR_PADDING_PATCH 0
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
**** Vanity Gaps
|
||||||
|
|
||||||
|
Same as barpadding patch but specifically tailored for the vanitygaps patch in that the outer bar padding is derived from the vanitygaps settings. In addition to this the bar padding is toggled in unison when vanitygaps are toggled. Increasing or decreasing gaps during runtime will not affect the bar padding.
|
||||||
|
|
||||||
|
#+BEGIN_SRC c :tangle patches.def.h
|
||||||
|
#define BAR_PADDING_VANITYGAPS_PATCH 0
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
**** Smart
|
||||||
|
|
||||||
|
Smart bar padding patch that automatically adjusts the padding when there is only one client on the monitor. Works well with vanitygaps and barpadding patches.
|
||||||
|
|
||||||
|
#+BEGIN_SRC c :tangle patches.def.h
|
||||||
|
#define BAR_PADDING_SMART_PATCH 0
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
*** Pango
|
*** Pango
|
||||||
|
|
||||||
This patch adds simple markup for status messages using pango markup.
|
This patch adds simple markup for status messages using pango markup.
|
||||||
|
109
dwm.c
109
dwm.c
@@ -688,6 +688,9 @@ static void maprequest(XEvent *e);
|
|||||||
static void motionnotify(XEvent *e);
|
static void motionnotify(XEvent *e);
|
||||||
static void movemouse(const Arg *arg);
|
static void movemouse(const Arg *arg);
|
||||||
static Client *nexttiled(Client *c);
|
static Client *nexttiled(Client *c);
|
||||||
|
#if NOBORDER_PATCH
|
||||||
|
static int noborder(Client *c);
|
||||||
|
#endif // NOBORDER_PATCH
|
||||||
#if !ZOOMSWAP_PATCH || TAGINTOSTACK_ALLMASTER_PATCH || TAGINTOSTACK_ONEMASTER_PATCH
|
#if !ZOOMSWAP_PATCH || TAGINTOSTACK_ALLMASTER_PATCH || TAGINTOSTACK_ONEMASTER_PATCH
|
||||||
static void pop(Client *c);
|
static void pop(Client *c);
|
||||||
#endif // !ZOOMSWAP_PATCH / TAGINTOSTACK_ALLMASTER_PATCH / TAGINTOSTACK_ONEMASTER_PATCH
|
#endif // !ZOOMSWAP_PATCH / TAGINTOSTACK_ALLMASTER_PATCH / TAGINTOSTACK_ONEMASTER_PATCH
|
||||||
@@ -1108,6 +1111,11 @@ arrange(Monitor *m)
|
|||||||
void
|
void
|
||||||
arrangemon(Monitor *m)
|
arrangemon(Monitor *m)
|
||||||
{
|
{
|
||||||
|
#if BAR_PADDING_SMART_PATCH
|
||||||
|
updatebarpos(selmon);
|
||||||
|
for (Bar *bar = selmon->bar; bar; bar = bar->next)
|
||||||
|
XMoveResizeWindow(dpy, bar->win, bar->bx, bar->by, bar->bw, bar->bh);
|
||||||
|
#endif // BAR_PADDING_SMART_PATCH
|
||||||
#if TAB_PATCH
|
#if TAB_PATCH
|
||||||
updatebarpos(m);
|
updatebarpos(m);
|
||||||
XMoveResizeWindow(dpy, m->tabwin, m->wx, m->ty, m->ww, th);
|
XMoveResizeWindow(dpy, m->tabwin, m->wx, m->ty, m->ww, th);
|
||||||
@@ -1461,6 +1469,15 @@ configure(Client *c)
|
|||||||
ce.width = c->w;
|
ce.width = c->w;
|
||||||
ce.height = c->h;
|
ce.height = c->h;
|
||||||
ce.border_width = c->bw;
|
ce.border_width = c->bw;
|
||||||
|
|
||||||
|
#if NOBORDER_PATCH
|
||||||
|
if (noborder(c)) {
|
||||||
|
ce.width += c->bw * 2;
|
||||||
|
ce.height += c->bw * 2;
|
||||||
|
ce.border_width = 0;
|
||||||
|
}
|
||||||
|
#endif // NOBORDER_PATCH
|
||||||
|
|
||||||
ce.above = None;
|
ce.above = None;
|
||||||
ce.override_redirect = False;
|
ce.override_redirect = False;
|
||||||
XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
|
XSendEvent(dpy, c->win, False, StructureNotifyMask, (XEvent *)&ce);
|
||||||
@@ -2857,6 +2874,52 @@ nexttiled(Client *c)
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if NOBORDER_PATCH
|
||||||
|
int
|
||||||
|
noborder(Client *c)
|
||||||
|
{
|
||||||
|
int monocle_layout = 0;
|
||||||
|
|
||||||
|
#if MONOCLE_LAYOUT
|
||||||
|
if (&monocle == c->mon->lt[c->mon->sellt]->arrange)
|
||||||
|
monocle_layout = 1;
|
||||||
|
#endif // MONOCLE_LAYOUT
|
||||||
|
|
||||||
|
#if DECK_LAYOUT
|
||||||
|
if (&deck == c->mon->lt[c->mon->sellt]->arrange && c->mon->nmaster == 0)
|
||||||
|
monocle_layout = 1;
|
||||||
|
#endif // DECK_LAYOUT
|
||||||
|
|
||||||
|
#if FLEXTILE_DELUXE_LAYOUT
|
||||||
|
if (&flextile == c->mon->lt[c->mon->sellt]->arrange && (
|
||||||
|
(c->mon->ltaxis[LAYOUT] == NO_SPLIT && c->mon->ltaxis[MASTER] == MONOCLE) ||
|
||||||
|
(c->mon->ltaxis[STACK] == MONOCLE && c->mon->nmaster == 0)
|
||||||
|
)) {
|
||||||
|
monocle_layout = 1;
|
||||||
|
}
|
||||||
|
#endif //FLEXTILE_DELUXE_LAYOUT
|
||||||
|
|
||||||
|
if (!monocle_layout && (nexttiled(c->mon->clients) != c || nexttiled(c->next)))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (c->isfloating)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (!c->mon->lt[c->mon->sellt]->arrange)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
#if FAKEFULLSCREEN_CLIENT_PATCH && !FAKEFULLSCREEN_PATCH
|
||||||
|
if (c->fakefullscreen != 1 && c->isfullscreen)
|
||||||
|
return 0;
|
||||||
|
#elif !FAKEFULLSCREEN_PATCH
|
||||||
|
if (c->isfullscreen)
|
||||||
|
return 0;
|
||||||
|
#endif // FAKEFULLSCREEN_CLIENT_PATCH
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
#endif // NOBORDER_PATCH
|
||||||
|
|
||||||
#if !ZOOMSWAP_PATCH || TAGINTOSTACK_ALLMASTER_PATCH || TAGINTOSTACK_ONEMASTER_PATCH
|
#if !ZOOMSWAP_PATCH || TAGINTOSTACK_ALLMASTER_PATCH || TAGINTOSTACK_ONEMASTER_PATCH
|
||||||
void
|
void
|
||||||
pop(Client *c)
|
pop(Client *c)
|
||||||
@@ -3011,31 +3074,9 @@ resizeclient(Client *c, int x, int y, int w, int h)
|
|||||||
drawroundedcorners(c);
|
drawroundedcorners(c);
|
||||||
#endif // ROUNDED_CORNERS_PATCH
|
#endif // ROUNDED_CORNERS_PATCH
|
||||||
#if NOBORDER_PATCH
|
#if NOBORDER_PATCH
|
||||||
if (((nexttiled(c->mon->clients) == c && !nexttiled(c->next))
|
if (noborder(c)) {
|
||||||
#if MONOCLE_LAYOUT
|
wc.width += c->bw * 2;
|
||||||
|| &monocle == c->mon->lt[c->mon->sellt]->arrange
|
wc.height += c->bw * 2;
|
||||||
#endif // MONOCLE_LAYOUT
|
|
||||||
#if DECK_LAYOUT
|
|
||||||
|| (&deck == c->mon->lt[c->mon->sellt]->arrange &&
|
|
||||||
c->mon->nmaster == 0)
|
|
||||||
#endif // DECK_LAYOUT
|
|
||||||
#if FLEXTILE_DELUXE_LAYOUT
|
|
||||||
|| (&flextile == c->mon->lt[c->mon->sellt]->arrange && (
|
|
||||||
(c->mon->ltaxis[LAYOUT] == NO_SPLIT &&
|
|
||||||
c->mon->ltaxis[MASTER] == MONOCLE) ||
|
|
||||||
(c->mon->ltaxis[STACK] == MONOCLE &&
|
|
||||||
c->mon->nmaster == 0)))
|
|
||||||
#endif //FLEXTILE_DELUXE_LAYOUT
|
|
||||||
)
|
|
||||||
#if FAKEFULLSCREEN_CLIENT_PATCH && !FAKEFULLSCREEN_PATCH
|
|
||||||
&& (c->fakefullscreen == 1 || !c->isfullscreen)
|
|
||||||
#else
|
|
||||||
&& !c->isfullscreen
|
|
||||||
#endif // FAKEFULLSCREEN_CLIENT_PATCH
|
|
||||||
&& !c->isfloating
|
|
||||||
&& c->mon->lt[c->mon->sellt]->arrange) {
|
|
||||||
c->w = wc.width += c->bw * 2;
|
|
||||||
c->h = wc.height += c->bw * 2;
|
|
||||||
wc.border_width = 0;
|
wc.border_width = 0;
|
||||||
}
|
}
|
||||||
#endif // NOBORDER_PATCH
|
#endif // NOBORDER_PATCH
|
||||||
@@ -4664,12 +4705,30 @@ updatebarpos(Monitor *m)
|
|||||||
if (enablegaps)
|
if (enablegaps)
|
||||||
#endif // PERTAG_VANITYGAPS_PATCH
|
#endif // PERTAG_VANITYGAPS_PATCH
|
||||||
{
|
{
|
||||||
|
#if BAR_PADDING_SMART_PATCH
|
||||||
|
unsigned int n; Client *c;
|
||||||
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
|
if (n > 1) {
|
||||||
y_pad = gappoh;
|
y_pad = gappoh;
|
||||||
x_pad = gappov;
|
x_pad = gappov;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
y_pad = gappoh;
|
||||||
|
x_pad = gappov;
|
||||||
|
#endif // BAR_PADDING_SMART_PATCH
|
||||||
|
}
|
||||||
#elif BAR_PADDING_PATCH
|
#elif BAR_PADDING_PATCH
|
||||||
|
#if BAR_PADDING_SMART_PATCH
|
||||||
|
unsigned int n; Client *c;
|
||||||
|
for (n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), n++);
|
||||||
|
if (n > 1) {
|
||||||
y_pad = vertpad;
|
y_pad = vertpad;
|
||||||
x_pad = sidepad;
|
x_pad = sidepad;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
y_pad = vertpad;
|
||||||
|
x_pad = sidepad;
|
||||||
|
#endif // BAR_PADDING_SMART_PATCH
|
||||||
#endif // BAR_PADDING_PATCH | BAR_PADDING_VANITYGAPS_PATCH
|
#endif // BAR_PADDING_PATCH | BAR_PADDING_VANITYGAPS_PATCH
|
||||||
|
|
||||||
#if INSETS_PATCH
|
#if INSETS_PATCH
|
||||||
|
@@ -91,6 +91,10 @@
|
|||||||
|
|
||||||
#define BAR_PADDING_PATCH 0
|
#define BAR_PADDING_PATCH 0
|
||||||
|
|
||||||
|
#define BAR_PADDING_VANITYGAPS_PATCH 0
|
||||||
|
|
||||||
|
#define BAR_PADDING_SMART_PATCH 0
|
||||||
|
|
||||||
#define BAR_PANGO_PATCH 0
|
#define BAR_PANGO_PATCH 0
|
||||||
|
|
||||||
#define BAR_STATICSTATUS_PATCH 0
|
#define BAR_STATICSTATUS_PATCH 0
|
||||||
|
Reference in New Issue
Block a user