Compare commits

...

6 Commits

Author SHA1 Message Date
9edcca1eec made patch configuration 2020-06-25 15:57:20 +02:00
1bfedd8be1 Merge branch 'allpatch'
# Conflicts:
#	config.def.h
2020-06-25 15:53:33 +02:00
894dc6fb87 Merge branch 'baseconf' 2020-06-25 15:52:30 +02:00
06e45c2129 added back firefox rule, but removed tags mask 2020-06-25 15:50:38 +02:00
356c806404 Merge branch 'center' into allpatch 2020-06-25 15:19:08 +02:00
f942d4d2ea applied center patch 2020-06-25 14:35:40 +02:00
2 changed files with 17 additions and 4 deletions

View File

@ -34,8 +34,12 @@ static const Rule rules[] = {
* WM_CLASS(STRING) = instance, class * WM_CLASS(STRING) = instance, class
* WM_NAME(STRING) = title * WM_NAME(STRING) = title
*/ */
/* class instance title tags mask isfloating monitor */ /* class instance title tags mask iscentered isfloating monitor */
{ "Gimp", NULL, NULL, 0, 1, -1 }, { "Gimp", NULL, NULL, 0, 0, 1, -1 },
{ "Firefox", NULL, NULL, 0, 1, 0, -1 },
{ "firefox", NULL, NULL, 0, 1, 0, -1 },
{ "St", NULL, NULL, 0, 1, 0, -1 },
{ "Gcr-prompt", NULL, NULL, 0, 1, 0, -1 },
}; };
/* layout(s) */ /* layout(s) */

13
dwm.c
View File

@ -94,7 +94,7 @@ struct Client {
int basew, baseh, incw, inch, maxw, maxh, minw, minh; int basew, baseh, incw, inch, maxw, maxh, minw, minh;
int bw, oldbw; int bw, oldbw;
unsigned int tags; unsigned int tags;
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; int isfixed, iscentered, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
Client *next; Client *next;
Client *snext; Client *snext;
Monitor *mon; Monitor *mon;
@ -141,6 +141,7 @@ typedef struct {
const char *instance; const char *instance;
const char *title; const char *title;
unsigned int tags; unsigned int tags;
int iscentered;
int isfloating; int isfloating;
int monitor; int monitor;
} Rule; } Rule;
@ -308,6 +309,7 @@ applyrules(Client *c)
XClassHint ch = { NULL, NULL }; XClassHint ch = { NULL, NULL };
/* rule matching */ /* rule matching */
c->iscentered = 0;
c->isfloating = 0; c->isfloating = 0;
c->tags = 0; c->tags = 0;
XGetClassHint(dpy, c->win, &ch); XGetClassHint(dpy, c->win, &ch);
@ -320,6 +322,7 @@ applyrules(Client *c)
&& (!r->class || strstr(class, r->class)) && (!r->class || strstr(class, r->class))
&& (!r->instance || strstr(instance, r->instance))) && (!r->instance || strstr(instance, r->instance)))
{ {
c->iscentered = r->iscentered;
c->isfloating = r->isfloating; c->isfloating = r->isfloating;
c->tags |= r->tags; c->tags |= r->tags;
for (m = mons; m && m->num != r->monitor; m = m->next); for (m = mons; m && m->num != r->monitor; m = m->next);
@ -1134,6 +1137,10 @@ manage(Window w, XWindowAttributes *wa)
updatewindowtype(c); updatewindowtype(c);
updatesizehints(c); updatesizehints(c);
updatewmhints(c); updatewmhints(c);
if (c->iscentered) {
c->x = c->mon->mx + (c->mon->mw - WIDTH(c)) / 2;
c->y = c->mon->my + (c->mon->mh - HEIGHT(c)) / 2;
}
XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask); XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
grabbuttons(c, 0); grabbuttons(c, 0);
if (!c->isfloating) if (!c->isfloating)
@ -2155,9 +2162,11 @@ updatewindowtype(Client *c)
if (state == netatom[NetWMFullscreen]) if (state == netatom[NetWMFullscreen])
setfullscreen(c, 1); setfullscreen(c, 1);
if (wtype == netatom[NetWMWindowTypeDialog]) if (wtype == netatom[NetWMWindowTypeDialog]) {
c->iscentered = 1;
c->isfloating = 1; c->isfloating = 1;
} }
}
void void
updatewmhints(Client *c) updatewmhints(Client *c)