tunboolification - dwm - [fork] customized build of dwm, the dynamic window man… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 3c91283ede911916452345d545435b08dce9d556 | |
parent e941181f464e43765bab98509ef6524e688a46ff | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sun, 8 Nov 2015 22:48:43 +0100 | |
unboolification | |
Diffstat: | |
M config.def.h | 14 +++++++------- | |
M dwm.c | 141 +++++++++++++++--------------… | |
2 files changed, 77 insertions(+), 78 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -13,8 +13,8 @@ static const char selbgcolor[] = "#005577"; | |
static const char selfgcolor[] = "#eeeeee"; | |
static const unsigned int borderpx = 1; /* border pixel of windows */ | |
static const unsigned int snap = 32; /* snap pixel */ | |
-static const bool showbar = true; /* false means no bar */ | |
-static const bool topbar = true; /* false means bottom bar */ | |
+static const int showbar = 1; /* 0 means no bar */ | |
+static const int topbar = 1; /* 0 means bottom bar */ | |
/* tagging */ | |
static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; | |
t@@ -25,14 +25,14 @@ static const Rule rules[] = { | |
* WM_NAME(STRING) = title | |
*/ | |
/* class instance title tags mask isfloating monit… | |
- { "Gimp", NULL, NULL, 0, true, -1 }, | |
- { "Firefox", NULL, NULL, 1 << 8, false, -1 }, | |
+ { "Gimp", NULL, NULL, 0, 1, -1 }, | |
+ { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, | |
}; | |
/* layout(s) */ | |
-static const float mfact = 0.55; /* factor of master area size [0.05..0.9… | |
-static const int nmaster = 1; /* number of clients in master area */ | |
-static const bool resizehints = true; /* true means respect size hints in tile… | |
+static const float mfact = 0.55; /* factor of master area size [0.05..0.95… | |
+static const int nmaster = 1; /* number of clients in master area */ | |
+static const int resizehints = 1; /* 1 means respect size hints in tiled re… | |
static const Layout layouts[] = { | |
/* symbol arrange function */ | |
diff --git a/dwm.c b/dwm.c | |
t@@ -24,7 +24,6 @@ | |
#include <locale.h> | |
#include <signal.h> | |
#include <stdarg.h> | |
-#include <stdbool.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
t@@ -93,7 +92,7 @@ struct Client { | |
int basew, baseh, incw, inch, maxw, maxh, minw, minh; | |
int bw, oldbw; | |
unsigned int tags; | |
- bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; | |
+ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; | |
Client *next; | |
Client *snext; | |
Monitor *mon; | |
t@@ -123,8 +122,8 @@ struct Monitor { | |
unsigned int seltags; | |
unsigned int sellt; | |
unsigned int tagset[2]; | |
- bool showbar; | |
- bool topbar; | |
+ int showbar; | |
+ int topbar; | |
Client *clients; | |
Client *sel; | |
Client *stack; | |
t@@ -138,13 +137,13 @@ typedef struct { | |
const char *instance; | |
const char *title; | |
unsigned int tags; | |
- bool isfloating; | |
+ int isfloating; | |
int monitor; | |
} Rule; | |
/* function declarations */ | |
static void applyrules(Client *c); | |
-static bool applysizehints(Client *c, int *x, int *y, int *w, int *h, bool int… | |
+static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int inter… | |
static void arrange(Monitor *m); | |
static void arrangemon(Monitor *m); | |
static void attach(Client *c); | |
t@@ -171,10 +170,10 @@ static void focus(Client *c); | |
static void focusin(XEvent *e); | |
static void focusmon(const Arg *arg); | |
static void focusstack(const Arg *arg); | |
-static bool getrootptr(int *x, int *y); | |
+static int getrootptr(int *x, int *y); | |
static long getstate(Window w); | |
-static bool gettextprop(Window w, Atom atom, char *text, unsigned int size); | |
-static void grabbuttons(Client *c, bool focused); | |
+static int gettextprop(Window w, Atom atom, char *text, unsigned int size); | |
+static void grabbuttons(Client *c, int focused); | |
static void grabkeys(void); | |
static void incnmaster(const Arg *arg); | |
static void keypress(XEvent *e); | |
t@@ -190,17 +189,17 @@ static void pop(Client *); | |
static void propertynotify(XEvent *e); | |
static void quit(const Arg *arg); | |
static Monitor *recttomon(int x, int y, int w, int h); | |
-static void resize(Client *c, int x, int y, int w, int h, bool interact); | |
+static void resize(Client *c, int x, int y, int w, int h, int interact); | |
static void resizeclient(Client *c, int x, int y, int w, int h); | |
static void resizemouse(const Arg *arg); | |
static void restack(Monitor *m); | |
static void run(void); | |
static void scan(void); | |
-static bool sendevent(Client *c, Atom proto); | |
+static int sendevent(Client *c, Atom proto); | |
static void sendmon(Client *c, Monitor *m); | |
static void setclientstate(Client *c, long state); | |
static void setfocus(Client *c); | |
-static void setfullscreen(Client *c, bool fullscreen); | |
+static void setfullscreen(Client *c, int fullscreen); | |
static void setlayout(const Arg *arg); | |
static void setmfact(const Arg *arg); | |
static void setup(void); | |
t@@ -214,10 +213,10 @@ static void togglebar(const Arg *arg); | |
static void togglefloating(const Arg *arg); | |
static void toggletag(const Arg *arg); | |
static void toggleview(const Arg *arg); | |
-static void unfocus(Client *c, bool setfocus); | |
-static void unmanage(Client *c, bool destroyed); | |
+static void unfocus(Client *c, int setfocus); | |
+static void unmanage(Client *c, int destroyed); | |
static void unmapnotify(XEvent *e); | |
-static bool updategeom(void); | |
+static int updategeom(void); | |
static void updatebarpos(Monitor *m); | |
static void updatebars(void); | |
static void updateclientlist(void); | |
t@@ -260,7 +259,7 @@ static void (*handler[LASTEvent]) (XEvent *) = { | |
[UnmapNotify] = unmapnotify | |
}; | |
static Atom wmatom[WMLast], netatom[NetLast]; | |
-static bool running = true; | |
+static int running = 1; | |
static Cur *cursor[CurLast]; | |
static ClrScheme scheme[SchemeLast]; | |
static Display *dpy; | |
t@@ -284,7 +283,7 @@ applyrules(Client *c) { | |
XClassHint ch = { NULL, NULL }; | |
/* rule matching */ | |
- c->isfloating = false; | |
+ c->isfloating = 0; | |
c->tags = 0; | |
XGetClassHint(dpy, c->win, &ch); | |
class = ch.res_class ? ch.res_class : broken; | |
t@@ -310,9 +309,9 @@ applyrules(Client *c) { | |
c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mo… | |
} | |
-bool | |
-applysizehints(Client *c, int *x, int *y, int *w, int *h, bool interact) { | |
- bool baseismin; | |
+int | |
+applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact) { | |
+ int baseismin; | |
Monitor *m = c->mon; | |
/* set minimum possible */ | |
t@@ -419,7 +418,7 @@ buttonpress(XEvent *e) { | |
click = ClkRootWin; | |
/* focus monitor if necessary */ | |
if((m = wintomon(ev->window)) && m != selmon) { | |
- unfocus(selmon->sel, true); | |
+ unfocus(selmon->sel, 1); | |
selmon = m; | |
focus(NULL); | |
} | |
t@@ -470,7 +469,7 @@ cleanup(void) { | |
selmon->lt[selmon->sellt] = &foo; | |
for(m = mons; m; m = m->next) | |
while(m->stack) | |
- unmanage(m->stack, false); | |
+ unmanage(m->stack, 0); | |
XUngrabKey(dpy, AnyKey, AnyModifier, root); | |
while(mons) | |
cleanupmon(mons); | |
t@@ -506,7 +505,7 @@ void | |
clearurgent(Client *c) { | |
XWMHints *wmh; | |
- c->isurgent = false; | |
+ c->isurgent = 0; | |
if(!(wmh = XGetWMHints(dpy, c->win))) | |
return; | |
wmh->flags &= ~XUrgencyHint; | |
t@@ -557,7 +556,7 @@ void | |
configurenotify(XEvent *e) { | |
Monitor *m; | |
XConfigureEvent *ev = &e->xconfigure; | |
- bool dirty; | |
+ int dirty; | |
/* TODO: updategeom handling sucks, needs to be simplified */ | |
if(ev->window == root) { | |
t@@ -650,7 +649,7 @@ destroynotify(XEvent *e) { | |
XDestroyWindowEvent *ev = &e->xdestroywindow; | |
if((c = wintoclient(ev->window))) | |
- unmanage(c, true); | |
+ unmanage(c, 1); | |
} | |
void | |
t@@ -761,7 +760,7 @@ enternotify(XEvent *e) { | |
c = wintoclient(ev->window); | |
m = c ? c->mon : wintomon(ev->window); | |
if(m != selmon) { | |
- unfocus(selmon->sel, true); | |
+ unfocus(selmon->sel, 1); | |
selmon = m; | |
} | |
else if(!c || c == selmon->sel) | |
t@@ -784,7 +783,7 @@ focus(Client *c) { | |
for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext); | |
/* was if(selmon->sel) */ | |
if(selmon->sel && selmon->sel != c) | |
- unfocus(selmon->sel, false); | |
+ unfocus(selmon->sel, 0); | |
if(c) { | |
if(c->mon != selmon) | |
selmon = c->mon; | |
t@@ -792,7 +791,7 @@ focus(Client *c) { | |
clearurgent(c); | |
detachstack(c); | |
attachstack(c); | |
- grabbuttons(c, true); | |
+ grabbuttons(c, 1); | |
XSetWindowBorder(dpy, c->win, scheme[SchemeSel].border->pix); | |
setfocus(c); | |
} | |
t@@ -820,7 +819,7 @@ focusmon(const Arg *arg) { | |
return; | |
if((m = dirtomon(arg->i)) == selmon) | |
return; | |
- unfocus(selmon->sel, false); /* s/true/false/ fixes input focus issues | |
+ unfocus(selmon->sel, 0); /* s/1/0/ fixes input focus issues | |
in gedit and anjuta */ | |
selmon = m; | |
focus(NULL); | |
t@@ -867,13 +866,13 @@ getatomprop(Client *c, Atom prop) { | |
return atom; | |
} | |
-bool | |
+int | |
getrootptr(int *x, int *y) { | |
int di; | |
unsigned int dui; | |
Window dummy; | |
- return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui) … | |
+ return XQueryPointer(dpy, root, &dummy, &dummy, x, y, &di, &di, &dui); | |
} | |
long | |
t@@ -893,18 +892,18 @@ getstate(Window w) { | |
return result; | |
} | |
-bool | |
+int | |
gettextprop(Window w, Atom atom, char *text, unsigned int size) { | |
char **list = NULL; | |
int n; | |
XTextProperty name; | |
if(!text || size == 0) | |
- return false; | |
+ return 0; | |
text[0] = '\0'; | |
XGetTextProperty(dpy, w, &name, atom); | |
if(!name.nitems) | |
- return false; | |
+ return 0; | |
if(name.encoding == XA_STRING) | |
strncpy(text, (char *)name.value, size - 1); | |
else { | |
t@@ -915,11 +914,11 @@ gettextprop(Window w, Atom atom, char *text, unsigned in… | |
} | |
text[size - 1] = '\0'; | |
XFree(name.value); | |
- return true; | |
+ return 1; | |
} | |
void | |
-grabbuttons(Client *c, bool focused) { | |
+grabbuttons(Client *c, int focused) { | |
updatenumlockmask(); | |
{ | |
unsigned int i, j; | |
t@@ -964,13 +963,13 @@ incnmaster(const Arg *arg) { | |
} | |
#ifdef XINERAMA | |
-static bool | |
+static int | |
isuniquegeom(XineramaScreenInfo *unique, size_t n, XineramaScreenInfo *info) { | |
while(n--) | |
if(unique[n].x_org == info->x_org && unique[n].y_org == info->… | |
&& unique[n].width == info->width && unique[n].height == info-… | |
- return false; | |
- return true; | |
+ return 0; | |
+ return 1; | |
} | |
#endif /* XINERAMA */ | |
t@@ -1046,7 +1045,7 @@ manage(Window w, XWindowAttributes *wa) { | |
updatesizehints(c); | |
updatewmhints(c); | |
XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyChangeMas… | |
- grabbuttons(c, false); | |
+ grabbuttons(c, 0); | |
if(!c->isfloating) | |
c->isfloating = c->oldstate = trans != None || c->isfixed; | |
if(c->isfloating) | |
t@@ -1058,7 +1057,7 @@ manage(Window w, XWindowAttributes *wa) { | |
XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* so… | |
setclientstate(c, NormalState); | |
if (c->mon == selmon) | |
- unfocus(selmon->sel, false); | |
+ unfocus(selmon->sel, 0); | |
c->mon->sel = c; | |
arrange(c->mon); | |
XMapWindow(dpy, c->win); | |
t@@ -1098,7 +1097,7 @@ monocle(Monitor *m) { | |
if(n > 0) /* override layout symbol */ | |
snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n); | |
for(c = nexttiled(m->clients); c; c = nexttiled(c->next)) | |
- resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, … | |
+ resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, … | |
} | |
void | |
t@@ -1110,7 +1109,7 @@ motionnotify(XEvent *e) { | |
if(ev->window != root) | |
return; | |
if((m = recttomon(ev->x_root, ev->y_root, 1, 1)) != mon && mon) { | |
- unfocus(selmon->sel, true); | |
+ unfocus(selmon->sel, 1); | |
selmon = m; | |
focus(NULL); | |
} | |
t@@ -1167,7 +1166,7 @@ movemouse(const Arg *arg) { | |
togglefloating(NULL); | |
} | |
if(!selmon->lt[selmon->sellt]->arrange || c->isfloatin… | |
- resize(c, nx, ny, c->w, c->h, true); | |
+ resize(c, nx, ny, c->w, c->h, 1); | |
break; | |
} | |
} while(ev.type != ButtonRelease); | |
t@@ -1231,7 +1230,7 @@ propertynotify(XEvent *e) { | |
void | |
quit(const Arg *arg) { | |
- running = false; | |
+ running = 0; | |
} | |
Monitor * | |
t@@ -1248,7 +1247,7 @@ recttomon(int x, int y, int w, int h) { | |
} | |
void | |
-resize(Client *c, int x, int y, int w, int h, bool interact) { | |
+resize(Client *c, int x, int y, int w, int h, int interact) { | |
if(applysizehints(c, &x, &y, &w, &h, interact)) | |
resizeclient(c, x, y, w, h); | |
} | |
t@@ -1309,7 +1308,7 @@ resizemouse(const Arg *arg) { | |
togglefloating(NULL); | |
} | |
if(!selmon->lt[selmon->sellt]->arrange || c->isfloatin… | |
- resize(c, c->x, c->y, nw, nh, true); | |
+ resize(c, c->x, c->y, nw, nh, 1); | |
break; | |
} | |
} while(ev.type != ButtonRelease); | |
t@@ -1387,7 +1386,7 @@ void | |
sendmon(Client *c, Monitor *m) { | |
if(c->mon == m) | |
return; | |
- unfocus(c, true); | |
+ unfocus(c, 1); | |
detach(c); | |
detachstack(c); | |
c->mon = m; | |
t@@ -1406,11 +1405,11 @@ setclientstate(Client *c, long state) { | |
PropModeReplace, (unsigned char *)data, 2); | |
} | |
-bool | |
+int | |
sendevent(Client *c, Atom proto) { | |
int n; | |
Atom *protocols; | |
- bool exists = false; | |
+ int exists = 0; | |
XEvent ev; | |
if(XGetWMProtocols(dpy, c->win, &protocols, &n)) { | |
t@@ -1442,22 +1441,22 @@ setfocus(Client *c) { | |
} | |
void | |
-setfullscreen(Client *c, bool fullscreen) { | |
+setfullscreen(Client *c, int fullscreen) { | |
if(fullscreen && !c->isfullscreen) { | |
XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, | |
PropModeReplace, (unsigned char*)&netatom[NetW… | |
- c->isfullscreen = true; | |
+ c->isfullscreen = 1; | |
c->oldstate = c->isfloating; | |
c->oldbw = c->bw; | |
c->bw = 0; | |
- c->isfloating = true; | |
+ c->isfloating = 1; | |
resizeclient(c, c->mon->mx, c->mon->my, c->mon->mw, c->mon->mh… | |
XRaiseWindow(dpy, c->win); | |
} | |
else if(!fullscreen && c->isfullscreen){ | |
XChangeProperty(dpy, c->win, netatom[NetWMState], XA_ATOM, 32, | |
PropModeReplace, (unsigned char*)0, 0); | |
- c->isfullscreen = false; | |
+ c->isfullscreen = 0; | |
c->isfloating = c->oldstate; | |
c->bw = c->oldbw; | |
c->x = c->oldx; | |
t@@ -1562,7 +1561,7 @@ showhide(Client *c) { | |
if(ISVISIBLE(c)) { /* show clients top down */ | |
XMoveWindow(dpy, c->win, c->x, c->y); | |
if((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !… | |
- resize(c, c->x, c->y, c->w, c->h, false); | |
+ resize(c, c->x, c->y, c->w, c->h, 0); | |
showhide(c->snext); | |
} | |
else { /* hide clients bottom up */ | |
t@@ -1625,12 +1624,12 @@ tile(Monitor *m) { | |
for(i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->ne… | |
if(i < m->nmaster) { | |
h = (m->wh - my) / (MIN(n, m->nmaster) - i); | |
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c-… | |
+ resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c-… | |
my += HEIGHT(c); | |
} | |
else { | |
h = (m->wh - ty) / (n - i); | |
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->b… | |
+ resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->b… | |
ty += HEIGHT(c); | |
} | |
} | |
t@@ -1652,7 +1651,7 @@ togglefloating(const Arg *arg) { | |
selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isf… | |
if(selmon->sel->isfloating) | |
resize(selmon->sel, selmon->sel->x, selmon->sel->y, | |
- selmon->sel->w, selmon->sel->h, false); | |
+ selmon->sel->w, selmon->sel->h, 0); | |
arrange(selmon); | |
} | |
t@@ -1682,10 +1681,10 @@ toggleview(const Arg *arg) { | |
} | |
void | |
-unfocus(Client *c, bool setfocus) { | |
+unfocus(Client *c, int setfocus) { | |
if(!c) | |
return; | |
- grabbuttons(c, false); | |
+ grabbuttons(c, 0); | |
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm].border->pix); | |
if(setfocus) { | |
XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime); | |
t@@ -1694,7 +1693,7 @@ unfocus(Client *c, bool setfocus) { | |
} | |
void | |
-unmanage(Client *c, bool destroyed) { | |
+unmanage(Client *c, int destroyed) { | |
Monitor *m = c->mon; | |
XWindowChanges wc; | |
t@@ -1727,7 +1726,7 @@ unmapnotify(XEvent *e) { | |
if(ev->send_event) | |
setclientstate(c, WithdrawnState); | |
else | |
- unmanage(c, false); | |
+ unmanage(c, 0); | |
} | |
} | |
t@@ -1776,9 +1775,9 @@ updateclientlist() { | |
(unsigned char *) &(c->win), 1); | |
} | |
-bool | |
+int | |
updategeom(void) { | |
- bool dirty = false; | |
+ int dirty = 0; | |
#ifdef XINERAMA | |
if(XineramaIsActive(dpy)) { | |
t@@ -1809,7 +1808,7 @@ updategeom(void) { | |
|| (unique[i].x_org != m->mx || unique[i].y_or… | |
|| unique[i].width != m->mw || unique[i].h… | |
{ | |
- dirty = true; | |
+ dirty = 1; | |
m->num = i; | |
m->mx = m->wx = unique[i].x_org; | |
m->my = m->wy = unique[i].y_org; | |
t@@ -1822,7 +1821,7 @@ updategeom(void) { | |
for(i = nn; i < n; i++) { | |
for(m = mons; m && m->next; m = m->next); | |
while(m->clients) { | |
- dirty = true; | |
+ dirty = 1; | |
c = m->clients; | |
m->clients = c->next; | |
detachstack(c); | |
t@@ -1844,7 +1843,7 @@ updategeom(void) { | |
if(!mons) | |
mons = createmon(); | |
if(mons->mw != sw || mons->mh != sh) { | |
- dirty = true; | |
+ dirty = 1; | |
mons->mw = mons->ww = sw; | |
mons->mh = mons->wh = sh; | |
updatebarpos(mons); | |
t@@ -1943,9 +1942,9 @@ updatewindowtype(Client *c) { | |
Atom wtype = getatomprop(c, netatom[NetWMWindowType]); | |
if(state == netatom[NetWMFullscreen]) | |
- setfullscreen(c, true); | |
+ setfullscreen(c, 1); | |
if(wtype == netatom[NetWMWindowTypeDialog]) | |
- c->isfloating = true; | |
+ c->isfloating = 1; | |
} | |
void | |
t@@ -1958,11 +1957,11 @@ updatewmhints(Client *c) { | |
XSetWMHints(dpy, c->win, wmh); | |
} | |
else | |
- c->isurgent = (wmh->flags & XUrgencyHint) ? true : fal… | |
+ c->isurgent = (wmh->flags & XUrgencyHint) ? 1 : 0; | |
if(wmh->flags & InputHint) | |
c->neverfocus = !wmh->input; | |
else | |
- c->neverfocus = false; | |
+ c->neverfocus = 0; | |
XFree(wmh); | |
} | |
} |