From c094ed24735b8bac3c6c7773c76e608cdf3f3354 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 27 Apr 2008 18:36:11 +0100 Subject: [PATCH 01/16] simplification of view() as proposed by anydot --- dwm.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/dwm.c b/dwm.c index 3717b90..ee0c810 100644 --- a/dwm.c +++ b/dwm.c @@ -1828,16 +1828,9 @@ updatewmhints(Client *c) { void view(const char *arg) { - Bool tmp[LENGTH(tags)]; - unsigned int i; - - for(i = 0; i < LENGTH(tags); i++) - tmp[i] = (NULL == arg); - tmp[idxoftag(arg)] = True; - - seltags ^= 1; /* toggle sel tagset */ - if(memcmp(tagset[seltags ^ 1], tmp, TAGSZ) != 0) - memcpy(tagset[seltags], tmp, TAGSZ); + seltags ^= 1; + memset(tagset[seltags], (NULL == arg), TAGSZ); + tagset[seltags][idxoftag(arg)] = True; arrange(); } -- 2.20.1 From 86c4797f2cd1e0d7fdbb4ebe83066762062e4217 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Tue, 6 May 2008 15:13:36 +0100 Subject: [PATCH 02/16] applied JUCE patch --- config.def.h | 2 ++ dwm.c | 1 + 2 files changed, 3 insertions(+) diff --git a/config.def.h b/config.def.h index 42f00ae..ed3f624 100644 --- a/config.def.h +++ b/config.def.h @@ -22,10 +22,12 @@ Rule rules[] = { /* func name bx by bw wx wy ww wh mx my mw mh tx ty tw th mox moy mow moh */ #define MFACT 0.55 /* master width factor [0.1 .. 0.9] */ DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, mfact*ww, wh, mx+mw, wy, ww-mw, wh, wx, wy, ww, wh) +DEFGEOM(dual, 0, 0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh, 1280, 0, ww-mw, sh, mx, my, mw, mh) Geom geoms[] = { /* symbol function */ { "[]", single }, /* first entry is default */ + { "[][]", dual }, }; /* layout(s) */ diff --git a/dwm.c b/dwm.c index ee0c810..760ba27 100644 --- a/dwm.c +++ b/dwm.c @@ -1851,6 +1851,7 @@ xerror(Display *dpy, XErrorEvent *ee) { || (ee->request_code == X_PolyFillRectangle && ee->error_code == BadDrawable) || (ee->request_code == X_PolySegment && ee->error_code == BadDrawable) || (ee->request_code == X_ConfigureWindow && ee->error_code == BadMatch) + || (ee->request_code == X_GrabButton && ee->error_code == BadAccess) || (ee->request_code == X_GrabKey && ee->error_code == BadAccess) || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable)) return 0; -- 2.20.1 From b848f4bda8861115c04aecd9fd87baf928d931de Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Tue, 6 May 2008 15:52:44 +0100 Subject: [PATCH 03/16] applied the proposal by nsz --- dwm.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/dwm.c b/dwm.c index 760ba27..997a220 100644 --- a/dwm.c +++ b/dwm.c @@ -112,7 +112,7 @@ typedef struct { const char *symbol; void (*arrange)(void); Bool isfloating; -} Layout; +} Layout; typedef struct { const char *class; @@ -241,13 +241,15 @@ Client *stack = NULL; Cursor cursor[CurLast]; Display *dpy; DC dc = {0}; +Geom geoms[]; +Geom *geom = geoms; +Layout layouts[]; +Layout *lt = layouts; Window root, barwin; /* configuration, allows nested code to access above variables */ #include "config.h" #define TAGSZ (LENGTH(tags) * sizeof(Bool)) -Layout *lt = layouts; -Geom *geom = geoms; /* function implementations */ -- 2.20.1 From 5602f44b29b5c9a9b66b012b34f5749929c5cd31 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 14:40:37 +0100 Subject: [PATCH 04/16] implemented exact focus next, if arg != NULL to focus{next,prev} --- config.def.h | 2 ++ config.mk | 4 ++-- dwm.1 | 6 ++++++ dwm.c | 32 +++++++++++++++++--------------- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/config.def.h b/config.def.h index ed3f624..d7824e3 100644 --- a/config.def.h +++ b/config.def.h @@ -53,7 +53,9 @@ Key keys[] = { "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, { MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" }, { MODKEY, XK_j, focusnext, NULL }, + { MODKEY|ShiftMask, XK_j, focusnext, "exact" }, { MODKEY, XK_k, focusprev, NULL }, + { MODKEY|ShiftMask, XK_k, focusprev, "exact" }, { MODKEY, XK_r, reapply, NULL }, { MODKEY, XK_h, setmfact, "-0.05" }, { MODKEY, XK_l, setmfact, "+0.05" }, diff --git a/config.mk b/config.mk index b18ad33..f2750fb 100644 --- a/config.mk +++ b/config.mk @@ -17,8 +17,8 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 # flags CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\" LDFLAGS = -s ${LIBS} -#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" -#LDFLAGS = -g ${LIBS} +CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" +LDFLAGS = -g ${LIBS} # Solaris #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" diff --git a/dwm.1 b/dwm.1 index a9f8cee..fc750de 100644 --- a/dwm.1 +++ b/dwm.1 @@ -66,9 +66,15 @@ Toggles between geometries. .B Mod1\-j Focus next window. .TP +.B Mod1\-Shift\-j +Focus next window with exactly the same tags as the current one. +.TP .B Mod1\-k Focus previous window. .TP +.B Mod1\-Shift\-k +Focus previous window with exactly the same tags as the current one. +.TP .B Mod1\-h Decrease master area size. .TP diff --git a/dwm.c b/dwm.c index 997a220..56ca615 100644 --- a/dwm.c +++ b/dwm.c @@ -160,7 +160,7 @@ void initfont(const char *fontstr); Bool isoccupied(unsigned int t); Bool isprotodel(Client *c); Bool isurgent(unsigned int t); -Bool isvisible(Client *c); +Bool isvisible(Client *c, Bool *cmp); void keypress(XEvent *e); void killclient(const char *arg); void manage(Window w, XWindowAttributes *wa); @@ -287,7 +287,7 @@ arrange(void) { Client *c; for(c = clients; c; c = c->next) - if(isvisible(c)) { + if(isvisible(c, NULL)) { unban(c); if(lt->isfloating || c->isfloating) resize(c, c->fx, c->fy, c->fw, c->fh, True); @@ -469,7 +469,7 @@ configurerequest(XEvent *e) { if((ev->value_mask & (CWX|CWY)) && !(ev->value_mask & (CWWidth|CWHeight))) configure(c); - if(isvisible(c)) + if(isvisible(c, NULL)) XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); } else @@ -536,7 +536,7 @@ drawbar(void) { drawtext(geom->symbol, dc.norm, False); dc.x += bgw; } - for(c = stack; c && !isvisible(c); c = c->snext); + for(c = stack; c && !isvisible(c, NULL); c = c->snext); for(i = 0; i < LENGTH(tags); i++) { dc.w = textw(tags[i]); if(tagset[seltags][i]) { @@ -676,8 +676,8 @@ expose(XEvent *e) { void focus(Client *c) { - if(!c || (c && !isvisible(c))) - for(c = stack; c && !isvisible(c); c = c->snext); + if(!c || (c && !isvisible(c, NULL))) + for(c = stack; c && !isvisible(c, NULL); c = c->snext); if(sel && sel != c) { grabbuttons(sel, False); XSetWindowBorder(dpy, sel->win, dc.norm[ColBorder]); @@ -711,9 +711,9 @@ focusnext(const char *arg) { if(!sel) return; - for(c = sel->next; c && !isvisible(c); c = c->next); + for(c = sel->next; c && !isvisible(c, arg ? sel->tags : NULL); c = c->next); if(!c) - for(c = clients; c && !isvisible(c); c = c->next); + for(c = clients; c && !isvisible(c, arg ? sel->tags : NULL); c = c->next); if(c) { focus(c); restack(); @@ -726,10 +726,10 @@ focusprev(const char *arg) { if(!sel) return; - for(c = sel->prev; c && !isvisible(c); c = c->prev); + for(c = sel->prev; c && !isvisible(c, arg ? sel->tags : NULL); c = c->prev); if(!c) { for(c = clients; c && c->next; c = c->next); - for(; c && !isvisible(c); c = c->prev); + for(; c && !isvisible(c, arg ? sel->tags : NULL); c = c->prev); } if(c) { focus(c); @@ -930,11 +930,13 @@ isurgent(unsigned int t) { } Bool -isvisible(Client *c) { +isvisible(Client *c, Bool *cmp) { unsigned int i; + if(!cmp) + cmp = tagset[seltags]; for(i = 0; i < LENGTH(tags); i++) - if(c->tags[i] && tagset[seltags][i]) + if(c->tags[i] && cmp[i]) return True; return False; } @@ -1061,7 +1063,7 @@ monocle(void) { Client *c; for(c = clients; c; c = c->next) - if((lt->isfloating || !c->isfloating) && isvisible(c)) + if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) resize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw, RESIZEHINTS); } @@ -1115,7 +1117,7 @@ movemouse(Client *c) { Client * nexttiled(Client *c) { - for(; c && (c->isfloating || !isvisible(c)); c = c->next); + for(; c && (c->isfloating || !isvisible(c, NULL)); c = c->next); return c; } @@ -1292,7 +1294,7 @@ restack(void) { wc.stack_mode = Below; wc.sibling = barwin; for(c = stack; c; c = c->snext) - if(!c->isfloating && isvisible(c)) { + if(!c->isfloating && isvisible(c, NULL)) { XConfigureWindow(dpy, c->win, CWSibling|CWStackMode, &wc); wc.sibling = c->win; } -- 2.20.1 From 93a4fe1052e1271f7b4f519b4f2de4e3f4e15edc Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 14:54:45 +0100 Subject: [PATCH 05/16] cleaned up config.def.h --- config.def.h | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/config.def.h b/config.def.h index d7824e3..0b5d9e4 100644 --- a/config.def.h +++ b/config.def.h @@ -22,12 +22,10 @@ Rule rules[] = { /* func name bx by bw wx wy ww wh mx my mw mh tx ty tw th mox moy mow moh */ #define MFACT 0.55 /* master width factor [0.1 .. 0.9] */ DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, mfact*ww, wh, mx+mw, wy, ww-mw, wh, wx, wy, ww, wh) -DEFGEOM(dual, 0, 0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh, 1280, 0, ww-mw, sh, mx, my, mw, mh) Geom geoms[] = { /* symbol function */ { "[]", single }, /* first entry is default */ - { "[][]", dual }, }; /* layout(s) */ @@ -37,12 +35,8 @@ Geom geoms[] = { Layout layouts[] = { /* symbol function isfloating */ { "[]=", tilev, False }, /* first entry is default */ - { "<>=", tilev, True }, - { "[]|", tileh, False }, - { "<>|", tileh, True }, - { "><>", NULL, True }, - { "[m]", monocle, False }, - { "[M]", monocle, True }, + { "><>", NULL, True }, + { "", monocle, True }, }; /* key definitions */ -- 2.20.1 From 7eb26288fc6aa4c8850f41d475230b1619df622b Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 20:20:53 +0100 Subject: [PATCH 06/16] removed Geom stuff, introduced updategeom() again, still view is somewhat broken? --- config.def.h | 12 +---- dwm.1 | 3 -- dwm.c | 122 +++++++++++++++++++++------------------------------ 3 files changed, 52 insertions(+), 85 deletions(-) diff --git a/config.def.h b/config.def.h index 0b5d9e4..c8e88de 100644 --- a/config.def.h +++ b/config.def.h @@ -18,17 +18,8 @@ Rule rules[] = { { "Gimp", NULL, NULL, NULL, True }, }; -/* geometries, s{x,y,w,h} and bh are already initualized here */ -/* func name bx by bw wx wy ww wh mx my mw mh tx ty tw th mox moy mow moh */ -#define MFACT 0.55 /* master width factor [0.1 .. 0.9] */ -DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, mfact*ww, wh, mx+mw, wy, ww-mw, wh, wx, wy, ww, wh) - -Geom geoms[] = { - /* symbol function */ - { "[]", single }, /* first entry is default */ -}; - /* layout(s) */ +#define MFACT 0.55 /* master width factor [0.1 .. 0.9] */ #define RESIZEHINTS True /* False - respect size hints in tiled resizals */ #define SNAP 32 /* snap pixel */ @@ -58,7 +49,6 @@ Key keys[] = { { MODKEY|ShiftMask, XK_c, killclient, NULL }, { MODKEY, XK_space, setlayout, NULL }, { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, - { MODKEY|ControlMask, XK_space, setgeom, NULL }, { MODKEY, XK_0, view, NULL }, { MODKEY, XK_1, view, tags[0] }, { MODKEY, XK_2, view, tags[1] }, diff --git a/dwm.1 b/dwm.1 index fc750de..8b53942 100644 --- a/dwm.1 +++ b/dwm.1 @@ -60,9 +60,6 @@ Start .B Mod1\-space Toggles between layouts. .TP -.B Mod1\-Control\-space -Toggles between geometries. -.TP .B Mod1\-j Focus next window. .TP diff --git a/dwm.c b/dwm.c index 56ca615..6ef2ab2 100644 --- a/dwm.c +++ b/dwm.c @@ -41,21 +41,13 @@ #include /* macros */ -#define MAX(a, b) ((a)>(b)?(a):(b)) -#define MIN(a, b) ((a)<(b)?(a):(b)) -#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask) -#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask)) -#define LENGTH(x) (sizeof x / sizeof x[0]) -#define MAXTAGLEN 16 -#define MOUSEMASK (BUTTONMASK|PointerMotionMask) -#define DEFGEOM(GEONAME,BX,BY,BW,WX,WY,WW,WH,MX,MY,MW,MH,TX,TY,TW,TH,MOX,MOY,MOW,MOH) \ -void GEONAME(void) { \ - bx = (BX); by = (BY); bw = (BW); \ - wx = (WX); wy = (WY); ww = (WW); wh = (WH); \ - mx = (MX); my = (MY); mw = (MW); mh = (MH); \ - tx = (TX); ty = (TY); tw = (TW); th = (TH); \ - mox = (MOX); moy = (MOY); mow = (MOW); moh = (MOH); \ -} +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask) +#define CLEANMASK(mask) (mask & ~(numlockmask|LockMask)) +#define LENGTH(x) (sizeof x / sizeof x[0]) +#define MAXTAGLEN 16 +#define MOUSEMASK (BUTTONMASK|PointerMotionMask) /* enums */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ @@ -96,11 +88,6 @@ typedef struct { } font; } DC; /* draw context */ -typedef struct { - const char *symbol; - void (*apply)(void); -} Geom; - typedef struct { unsigned long mod; KeySym keysym; @@ -178,7 +165,6 @@ void restack(void); void run(void); void scan(void); void setclientstate(Client *c, long state); -void setgeom(const char *arg); void setlayout(const char *arg); void setmfact(const char *arg); void setup(void); @@ -198,7 +184,8 @@ void toggleview(const char *arg); void unban(Client *c); void unmanage(Client *c); void unmapnotify(XEvent *e); -void updatebarpos(void); +void updatebar(void); +void updategeom(void); void updatesizehints(Client *c); void updatetitle(Client *c); void updatewmhints(Client *c); @@ -213,7 +200,7 @@ void zoom(const char *arg); char stext[256]; int screen, sx, sy, sw, sh; int (*xerrorxlib)(Display *, XErrorEvent *); -int bx, by, bw, bh, blw, bgw, mx, my, mw, mh, mox, moy, mow, moh, tx, ty, tw, th, wx, wy, ww, wh; +int bx, by, bw, bh, blw, mx, my, mw, mh, tx, ty, tw, th, wx, wy, ww, wh; int seltags = 0; double mfact; unsigned int numlockmask = 0; @@ -241,8 +228,6 @@ Client *stack = NULL; Cursor cursor[CurLast]; Display *dpy; DC dc = {0}; -Geom geoms[]; -Geom *geom = geoms; Layout layouts[]; Layout *lt = layouts; Window root, barwin; @@ -330,14 +315,10 @@ buttonpress(XEvent *e) { XButtonPressedEvent *ev = &e->xbutton; if(ev->window == barwin) { - if((ev->x < bgw) && ev->button == Button1) { - setgeom(NULL); - return; - } - x = bgw; + x = 0; for(i = 0; i < LENGTH(tags); i++) { x += textw(tags[i]); - if(ev->x >= bgw && ev->x < x) { + if(ev->x < x) { if(ev->button == Button1) { if(ev->state & MODKEY) tag(tags[i]); @@ -440,7 +421,9 @@ configurenotify(XEvent *e) { if(ev->window == root && (ev->width != sw || ev->height != sh)) { sw = ev->width; sh = ev->height; - setgeom(geom->symbol); + updategeom(); + updatebar(); + arrange(); } } @@ -531,11 +514,6 @@ drawbar(void) { Client *c; dc.x = 0; - if(bgw > 0) { - dc.w = bgw; - drawtext(geom->symbol, dc.norm, False); - dc.x += bgw; - } for(c = stack; c && !isvisible(c, NULL); c = c->snext); for(i = 0; i < LENGTH(tags); i++) { dc.w = textw(tags[i]); @@ -1064,7 +1042,7 @@ monocle(void) { for(c = clients; c; c = c->next) if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) - resize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw, RESIZEHINTS); + resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, RESIZEHINTS); } void @@ -1398,27 +1376,6 @@ setclientstate(Client *c, long state) { PropModeReplace, (unsigned char *)data, 2); } -void -setgeom(const char *arg) { - unsigned int i; - - if(!arg) { - if(++geom == &geoms[LENGTH(geoms)]) - geom = &geoms[0]; - } - else { - for(i = 0; i < LENGTH(geoms); i++) - if(!strcmp(geoms[i].symbol, arg)) - break; - if(i == LENGTH(geoms)) - return; - geom = &geoms[i]; - } - geom->apply(); - updatebarpos(); - arrange(); -} - void setlayout(const char *arg) { unsigned int i; @@ -1457,7 +1414,8 @@ setmfact(const char *arg) { return; mfact = d; } - setgeom(geom->symbol); + updategeom(); + arrange(); } void @@ -1469,15 +1427,14 @@ setup(void) { screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); initfont(FONT); - - /* apply default geometry */ sx = 0; sy = 0; sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); bh = dc.font.height + 2; - mfact = MFACT; - geom->apply(); + + /* update geometry */ + updategeom(); /* init atoms */ wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False); @@ -1517,10 +1474,6 @@ setup(void) { w = textw(layouts[i].symbol); blw = MAX(blw, w); } - for(bgw = i = 0; LENGTH(geoms) > 1 && i < LENGTH(geoms); i++) { - w = textw(geoms[i].symbol); - bgw = MAX(bgw, w); - } wa.override_redirect = 1; wa.background_pixmap = ParentRelative; @@ -1633,7 +1586,7 @@ tilemaster(unsigned int n) { Client *c = nexttiled(clients); if(n == 1) - tileresize(c, mox, moy, mow - 2 * c->bw, moh - 2 * c->bw); + tileresize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw); else tileresize(c, mx, my, mw - 2 * c->bw, mh - 2 * c->bw); return c; @@ -1751,7 +1704,7 @@ unmapnotify(XEvent *e) { } void -updatebarpos(void) { +updatebar(void) { if(dc.drawable != 0) XFreePixmap(dpy, dc.drawable); @@ -1759,6 +1712,34 @@ updatebarpos(void) { XMoveResizeWindow(dpy, barwin, bx, by, bw, bh); } +void +updategeom(void) { + + /* bar geometry */ + bx = 0; + by = 0; + bw = sw; + + /* window area geometry */ + wx = sx; + wy = sy; + ww = sw; + sh = sh - bh; + + /* master area geometry */ + mfact = MFACT; + mx = wx; + my = wy; + mw = mfact * ww; + mh = wh; + + /* tile area geometry */ + tx = mx + mw; + ty = wy; + tw = ww - mw; + th = wh; +} + void updatesizehints(Client *c) { long msize; @@ -1912,4 +1893,3 @@ main(int argc, char *argv[]) { XCloseDisplay(dpy); return 0; } - -- 2.20.1 From 7ac4f8a4afd9766d485b03bff4c6cc02cbe3696c Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 20:22:20 +0100 Subject: [PATCH 07/16] hotfix --- dwm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dwm.c b/dwm.c index 6ef2ab2..db3eaaf 100644 --- a/dwm.c +++ b/dwm.c @@ -1724,7 +1724,7 @@ updategeom(void) { wx = sx; wy = sy; ww = sw; - sh = sh - bh; + wh = sh - bh; /* master area geometry */ mfact = MFACT; -- 2.20.1 From fa244aa7fbcb438193b17111724640be244543ad Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 20:25:24 +0100 Subject: [PATCH 08/16] having monocle on Mod1-m --- config.def.h | 1 + dwm.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/config.def.h b/config.def.h index c8e88de..f7bb36a 100644 --- a/config.def.h +++ b/config.def.h @@ -45,6 +45,7 @@ Key keys[] = { { MODKEY, XK_h, setmfact, "-0.05" }, { MODKEY, XK_l, setmfact, "+0.05" }, { MODKEY, XK_Return, zoom, NULL }, + { MODKEY, XK_m, setlayout, "" }, { MODKEY, XK_Tab, viewprevtag, NULL }, { MODKEY|ShiftMask, XK_c, killclient, NULL }, { MODKEY, XK_space, setlayout, NULL }, diff --git a/dwm.c b/dwm.c index db3eaaf..37eb299 100644 --- a/dwm.c +++ b/dwm.c @@ -1722,7 +1722,7 @@ updategeom(void) { /* window area geometry */ wx = sx; - wy = sy; + wy = sy + bh; ww = sw; wh = sh - bh; -- 2.20.1 From 446fa8c67117e14e0e9c2a08f83dfa5bed69ea18 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sun, 11 May 2008 20:27:01 +0100 Subject: [PATCH 09/16] minor fixes --- dwm.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/dwm.c b/dwm.c index 37eb299..d4fd0d5 100644 --- a/dwm.c +++ b/dwm.c @@ -1432,8 +1432,7 @@ setup(void) { sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); bh = dc.font.height + 2; - - /* update geometry */ + mfact = MFACT; updategeom(); /* init atoms */ @@ -1727,7 +1726,6 @@ updategeom(void) { wh = sh - bh; /* master area geometry */ - mfact = MFACT; mx = wx; my = wy; mw = mfact * ww; -- 2.20.1 From 6b79f3f3266923292b0ad029c5e240349d9afa39 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Tue, 13 May 2008 11:27:20 +0100 Subject: [PATCH 10/16] just added a comment --- dwm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dwm.c b/dwm.c index d4fd0d5..3b7de96 100644 --- a/dwm.c +++ b/dwm.c @@ -1811,7 +1811,7 @@ updatewmhints(Client *c) { void view(const char *arg) { - seltags ^= 1; + seltags ^= 1; /* toggle sel tagset */ memset(tagset[seltags], (NULL == arg), TAGSZ); tagset[seltags][idxoftag(arg)] = True; arrange(); -- 2.20.1 From d7cc0f641664a7d5d005d34ccdde50cabf97bd55 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Tue, 13 May 2008 14:33:02 +0100 Subject: [PATCH 11/16] applied nsz's style.diff patch --- dwm.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/dwm.c b/dwm.c index 3b7de96..009118d 100644 --- a/dwm.c +++ b/dwm.c @@ -595,7 +595,7 @@ drawtext(const char *text, unsigned long col[ColLast], Bool invert) { x = dc.x + (h / 2); /* shorten text if necessary */ for(; len && (w = textnw(buf, len)) > dc.w - h; len--); - if (!len) + if(!len) return; if(len < olen) { if(len > 1) @@ -782,21 +782,21 @@ grabbuttons(Client *c, Bool focused) { int i, j; unsigned int buttons[] = { Button1, Button2, Button3 }; unsigned int modifiers[] = { MODKEY, MODKEY|LockMask, MODKEY|numlockmask, - MODKEY|numlockmask|LockMask} ; + MODKEY|numlockmask|LockMask} ; XUngrabButton(dpy, AnyButton, AnyModifier, c->win); if(focused) for(i = 0; i < LENGTH(buttons); i++) for(j = 0; j < LENGTH(modifiers); j++) XGrabButton(dpy, buttons[i], modifiers[j], c->win, False, - BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); + BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); else XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, - BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); + BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); } void -grabkeys(void) { +grabkeys(void) { unsigned int i, j; KeyCode code; XModifierKeymap *modmap; @@ -1041,7 +1041,7 @@ monocle(void) { Client *c; for(c = clients; c; c = c->next) - if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) + if((lt->isfloating || !c->isfloating) && isvisible(c, NULL)) resize(c, wx, wy, ww - 2 * c->bw, wh - 2 * c->bw, RESIZEHINTS); } @@ -1055,7 +1055,7 @@ movemouse(Client *c) { ocx = nx = c->x; ocy = ny = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, - None, cursor[CurMove], CurrentTime) != GrabSuccess) + None, cursor[CurMove], CurrentTime) != GrabSuccess) return; XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); for(;;) { @@ -1221,7 +1221,7 @@ resizemouse(Client *c) { ocx = c->x; ocy = c->y; if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync, - None, cursor[CurResize], CurrentTime) != GrabSuccess) + None, cursor[CurResize], CurrentTime) != GrabSuccess) return; XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1); for(;;) { @@ -1351,7 +1351,7 @@ scan(void) { if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) { for(i = 0; i < num; i++) { if(!XGetWindowAttributes(dpy, wins[i], &wa) - || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) + || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) continue; if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState) manage(wins[i], &wa); @@ -1360,7 +1360,7 @@ scan(void) { if(!XGetWindowAttributes(dpy, wins[i], &wa)) continue; if(XGetTransientForHint(dpy, wins[i], &d1) - && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)) + && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)) manage(wins[i], &wa); } } @@ -1479,8 +1479,8 @@ setup(void) { wa.event_mask = ButtonPressMask|ExposureMask; barwin = XCreateWindow(dpy, root, bx, by, bw, bh, 0, DefaultDepth(dpy, screen), - CopyFromParent, DefaultVisual(dpy, screen), - CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); + CopyFromParent, DefaultVisual(dpy, screen), + CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa); XDefineCursor(dpy, barwin, cursor[CurNormal]); XMapRaised(dpy, barwin); strcpy(stext, "dwm-"VERSION); @@ -1704,7 +1704,6 @@ unmapnotify(XEvent *e) { void updatebar(void) { - if(dc.drawable != 0) XFreePixmap(dpy, dc.drawable); dc.drawable = XCreatePixmap(dpy, root, bw, bh, DefaultDepth(dpy, screen)); @@ -1839,7 +1838,7 @@ xerror(Display *dpy, XErrorEvent *ee) { || (ee->request_code == X_CopyArea && ee->error_code == BadDrawable)) return 0; fprintf(stderr, "dwm: fatal error: request code=%d, error code=%d\n", - ee->request_code, ee->error_code); + ee->request_code, ee->error_code); return xerrorxlib(dpy, ee); /* may call exit */ } -- 2.20.1 From 704781875cde5412bcb8859f3c5961664f62ced8 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Wed, 14 May 2008 11:24:35 +0100 Subject: [PATCH 12/16] applied nsz's another style patch --- dwm.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dwm.c b/dwm.c index 009118d..02c30d4 100644 --- a/dwm.c +++ b/dwm.c @@ -504,7 +504,7 @@ void detachstack(Client *c) { Client **tc; - for(tc=&stack; *tc && *tc != c; tc=&(*tc)->snext); + for(tc = &stack; *tc && *tc != c; tc = &(*tc)->snext); *tc = c->snext; } @@ -1162,8 +1162,7 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) { /* adjust for aspect limits */ if(c->minax != c->maxax && c->minay != c->maxay - && c->minax > 0 && c->maxax > 0 && c->minay > 0 && c->maxay > 0) - { + && c->minax > 0 && c->maxax > 0 && c->minay > 0 && c->maxay > 0) { if(w * c->maxay > h * c->maxax) w = h * c->maxax / c->maxay; else if(w * c->minay < h * c->minax) @@ -1532,7 +1531,7 @@ tag(const char *arg) { if(!sel) return; for(i = 0; i < LENGTH(tags); i++) - sel->tags[i] = (NULL == arg); + sel->tags[i] = (arg == NULL); sel->tags[idxoftag(arg)] = True; arrange(); } -- 2.20.1 From 71681c21a594260604779b96f46d51c82af11a03 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Thu, 15 May 2008 10:47:26 +0100 Subject: [PATCH 13/16] added wild-card handling for tags --- dwm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dwm.c b/dwm.c index 02c30d4..b86ba94 100644 --- a/dwm.c +++ b/dwm.c @@ -240,7 +240,7 @@ Window root, barwin; void applyrules(Client *c) { - unsigned int i; + unsigned int i, j; Bool matched = False; Rule *r; XClassHint ch = { 0 }; @@ -254,7 +254,11 @@ applyrules(Client *c) { && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { c->isfloating = r->isfloating; if(r->tag) { - c->tags[idxoftag(r->tag)] = True; + if(r->tag[0] == '*' && r->tag[1] == 0) + for(j = 0; j < LENGTH(tags); i++) + c->tags[j] = True; + else + c->tags[idxoftag(r->tag)] = True; matched = True; } } -- 2.20.1 From 6dfa7cac56d70ebf84a02691d7de1279bf34e223 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Thu, 15 May 2008 10:51:37 +0100 Subject: [PATCH 14/16] removed temporary wildcard handling --- dwm.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/dwm.c b/dwm.c index b86ba94..02c30d4 100644 --- a/dwm.c +++ b/dwm.c @@ -240,7 +240,7 @@ Window root, barwin; void applyrules(Client *c) { - unsigned int i, j; + unsigned int i; Bool matched = False; Rule *r; XClassHint ch = { 0 }; @@ -254,11 +254,7 @@ applyrules(Client *c) { && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { c->isfloating = r->isfloating; if(r->tag) { - if(r->tag[0] == '*' && r->tag[1] == 0) - for(j = 0; j < LENGTH(tags); i++) - c->tags[j] = True; - else - c->tags[idxoftag(r->tag)] = True; + c->tags[idxoftag(r->tag)] = True; matched = True; } } -- 2.20.1 From 349d768b573c5b96056faf153273878f61a9f0c9 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sat, 17 May 2008 14:04:27 +0100 Subject: [PATCH 15/16] renamed setlayout into togglelayout --- config.def.h | 147 +++++++++++++++++++++++++-------------------------- dwm.c | 48 ++++++++--------- 2 files changed, 97 insertions(+), 98 deletions(-) diff --git a/config.def.h b/config.def.h index f7bb36a..1c704c3 100644 --- a/config.def.h +++ b/config.def.h @@ -1,92 +1,91 @@ /* See LICENSE file for copyright and license details. */ /* appearance */ -#define BORDERPX 1 -#define FONT "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*" -#define NORMBORDERCOLOR "#cccccc" -#define NORMBGCOLOR "#cccccc" -#define NORMFGCOLOR "#000000" -#define SELBORDERCOLOR "#0066ff" -#define SELBGCOLOR "#0066ff" -#define SELFGCOLOR "#ffffff" +#define BORDERPX 1 +#define FONT "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*" +#define NORMBORDERCOLOR "#cccccc" +#define NORMBGCOLOR "#cccccc" +#define NORMFGCOLOR "#000000" +#define SELBORDERCOLOR "#0066ff" +#define SELBGCOLOR "#0066ff" +#define SELFGCOLOR "#ffffff" /* tagging */ const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Rule rules[] = { - /* class instance title tags ref isfloating */ - { "Gimp", NULL, NULL, NULL, True }, + /* class instance title tags ref isfloating */ + { "Gimp", NULL, NULL, NULL, True }, }; /* layout(s) */ -#define MFACT 0.55 /* master width factor [0.1 .. 0.9] */ -#define RESIZEHINTS True /* False - respect size hints in tiled resizals */ -#define SNAP 32 /* snap pixel */ +#define MFACT 0.55 /* master factor [0.1 .. 0.9] */ +#define RESIZEHINTS True /* False - respect size hints in tiled resizals */ +#define SNAP 32 /* snap pixel */ Layout layouts[] = { - /* symbol function isfloating */ - { "[]=", tilev, False }, /* first entry is default */ - { "><>", NULL, True }, - { "", monocle, True }, + /* symbol function isfloating */ + { "[]=", tilev, False }, /* first entry is default */ + { "><>", NULL, True }, + { "", monocle, True }, }; /* key definitions */ -#define MODKEY Mod1Mask +#define MODKEY Mod1Mask Key keys[] = { - /* modifier key function argument */ - { MODKEY, XK_p, spawn, - "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, - { MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" }, - { MODKEY, XK_j, focusnext, NULL }, - { MODKEY|ShiftMask, XK_j, focusnext, "exact" }, - { MODKEY, XK_k, focusprev, NULL }, - { MODKEY|ShiftMask, XK_k, focusprev, "exact" }, - { MODKEY, XK_r, reapply, NULL }, - { MODKEY, XK_h, setmfact, "-0.05" }, - { MODKEY, XK_l, setmfact, "+0.05" }, - { MODKEY, XK_Return, zoom, NULL }, - { MODKEY, XK_m, setlayout, "" }, - { MODKEY, XK_Tab, viewprevtag, NULL }, - { MODKEY|ShiftMask, XK_c, killclient, NULL }, - { MODKEY, XK_space, setlayout, NULL }, - { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, - { MODKEY, XK_0, view, NULL }, - { MODKEY, XK_1, view, tags[0] }, - { MODKEY, XK_2, view, tags[1] }, - { MODKEY, XK_3, view, tags[2] }, - { MODKEY, XK_4, view, tags[3] }, - { MODKEY, XK_5, view, tags[4] }, - { MODKEY, XK_6, view, tags[5] }, - { MODKEY, XK_7, view, tags[6] }, - { MODKEY, XK_8, view, tags[7] }, - { MODKEY, XK_9, view, tags[8] }, - { MODKEY|ControlMask, XK_1, toggleview, tags[0] }, - { MODKEY|ControlMask, XK_2, toggleview, tags[1] }, - { MODKEY|ControlMask, XK_3, toggleview, tags[2] }, - { MODKEY|ControlMask, XK_4, toggleview, tags[3] }, - { MODKEY|ControlMask, XK_5, toggleview, tags[4] }, - { MODKEY|ControlMask, XK_6, toggleview, tags[5] }, - { MODKEY|ControlMask, XK_7, toggleview, tags[6] }, - { MODKEY|ControlMask, XK_8, toggleview, tags[7] }, - { MODKEY|ControlMask, XK_9, toggleview, tags[8] }, - { MODKEY|ShiftMask, XK_0, tag, NULL }, - { MODKEY|ShiftMask, XK_1, tag, tags[0] }, - { MODKEY|ShiftMask, XK_2, tag, tags[1] }, - { MODKEY|ShiftMask, XK_3, tag, tags[2] }, - { MODKEY|ShiftMask, XK_4, tag, tags[3] }, - { MODKEY|ShiftMask, XK_5, tag, tags[4] }, - { MODKEY|ShiftMask, XK_6, tag, tags[5] }, - { MODKEY|ShiftMask, XK_7, tag, tags[6] }, - { MODKEY|ShiftMask, XK_8, tag, tags[7] }, - { MODKEY|ShiftMask, XK_9, tag, tags[8] }, - { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] }, - { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] }, - { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] }, - { MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] }, - { MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] }, - { MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] }, - { MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] }, - { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] }, - { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] }, - { MODKEY|ShiftMask, XK_q, quit, NULL }, + /* modifier key function argument */ + { MODKEY, XK_p, spawn, "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, + { MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" }, + { MODKEY, XK_j, focusnext, NULL }, + { MODKEY|ShiftMask, XK_j, focusnext, "exact" }, + { MODKEY, XK_k, focusprev, NULL }, + { MODKEY|ShiftMask, XK_k, focusprev, "exact" }, + { MODKEY, XK_r, reapply, NULL }, + { MODKEY, XK_h, setmfact, "-0.05" }, + { MODKEY, XK_l, setmfact, "+0.05" }, + { MODKEY, XK_Return, zoom, NULL }, + { MODKEY, XK_m, togglelayout, "" }, + { MODKEY, XK_Tab, viewprevtag, NULL }, + { MODKEY|ShiftMask, XK_c, killclient, NULL }, + { MODKEY, XK_space, togglelayout, NULL }, + { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, + { MODKEY, XK_0, view, NULL }, + { MODKEY, XK_1, view, tags[0] }, + { MODKEY, XK_2, view, tags[1] }, + { MODKEY, XK_3, view, tags[2] }, + { MODKEY, XK_4, view, tags[3] }, + { MODKEY, XK_5, view, tags[4] }, + { MODKEY, XK_6, view, tags[5] }, + { MODKEY, XK_7, view, tags[6] }, + { MODKEY, XK_8, view, tags[7] }, + { MODKEY, XK_9, view, tags[8] }, + { MODKEY|ControlMask, XK_1, toggleview, tags[0] }, + { MODKEY|ControlMask, XK_2, toggleview, tags[1] }, + { MODKEY|ControlMask, XK_3, toggleview, tags[2] }, + { MODKEY|ControlMask, XK_4, toggleview, tags[3] }, + { MODKEY|ControlMask, XK_5, toggleview, tags[4] }, + { MODKEY|ControlMask, XK_6, toggleview, tags[5] }, + { MODKEY|ControlMask, XK_7, toggleview, tags[6] }, + { MODKEY|ControlMask, XK_8, toggleview, tags[7] }, + { MODKEY|ControlMask, XK_9, toggleview, tags[8] }, + { MODKEY|ShiftMask, XK_0, tag, NULL }, + { MODKEY|ShiftMask, XK_1, tag, tags[0] }, + { MODKEY|ShiftMask, XK_2, tag, tags[1] }, + { MODKEY|ShiftMask, XK_3, tag, tags[2] }, + { MODKEY|ShiftMask, XK_4, tag, tags[3] }, + { MODKEY|ShiftMask, XK_5, tag, tags[4] }, + { MODKEY|ShiftMask, XK_6, tag, tags[5] }, + { MODKEY|ShiftMask, XK_7, tag, tags[6] }, + { MODKEY|ShiftMask, XK_8, tag, tags[7] }, + { MODKEY|ShiftMask, XK_9, tag, tags[8] }, + { MODKEY|ControlMask|ShiftMask, XK_1, toggletag, tags[0] }, + { MODKEY|ControlMask|ShiftMask, XK_2, toggletag, tags[1] }, + { MODKEY|ControlMask|ShiftMask, XK_3, toggletag, tags[2] }, + { MODKEY|ControlMask|ShiftMask, XK_4, toggletag, tags[3] }, + { MODKEY|ControlMask|ShiftMask, XK_5, toggletag, tags[4] }, + { MODKEY|ControlMask|ShiftMask, XK_6, toggletag, tags[5] }, + { MODKEY|ControlMask|ShiftMask, XK_7, toggletag, tags[6] }, + { MODKEY|ControlMask|ShiftMask, XK_8, toggletag, tags[7] }, + { MODKEY|ControlMask|ShiftMask, XK_9, toggletag, tags[8] }, + { MODKEY|ShiftMask, XK_q, quit, NULL }, }; diff --git a/dwm.c b/dwm.c index 02c30d4..88391af 100644 --- a/dwm.c +++ b/dwm.c @@ -165,7 +165,6 @@ void restack(void); void run(void); void scan(void); void setclientstate(Client *c, long state); -void setlayout(const char *arg); void setmfact(const char *arg); void setup(void); void spawn(const char *arg); @@ -179,6 +178,7 @@ void tileresize(Client *c, int x, int y, int w, int h); void tilev(void); void tilevstack(unsigned int n); void togglefloating(const char *arg); +void togglelayout(const char *arg); void toggletag(const char *arg); void toggleview(const char *arg); void unban(Client *c); @@ -335,7 +335,7 @@ buttonpress(XEvent *e) { } } if((ev->x < x + blw) && ev->button == Button1) - setlayout(NULL); + togglelayout(NULL); } else if((c = getclient(ev->window))) { focus(c); @@ -1375,28 +1375,6 @@ setclientstate(Client *c, long state) { PropModeReplace, (unsigned char *)data, 2); } -void -setlayout(const char *arg) { - unsigned int i; - - if(!arg) { - if(++lt == &layouts[LENGTH(layouts)]) - lt = &layouts[0]; - } - else { - for(i = 0; i < LENGTH(layouts); i++) - if(!strcmp(arg, layouts[i].symbol)) - break; - if(i == LENGTH(layouts)) - return; - lt = &layouts[i]; - } - if(sel) - arrange(); - else - drawbar(); -} - void setmfact(const char *arg) { double d; @@ -1635,6 +1613,28 @@ togglefloating(const char *arg) { arrange(); } +void +togglelayout(const char *arg) { + unsigned int i; + + if(!arg) { + if(++lt == &layouts[LENGTH(layouts)]) + lt = &layouts[0]; + } + else { + for(i = 0; i < LENGTH(layouts); i++) + if(!strcmp(arg, layouts[i].symbol)) + break; + if(i == LENGTH(layouts)) + return; + lt = &layouts[i]; + } + if(sel) + arrange(); + else + drawbar(); +} + void toggletag(const char *arg) { unsigned int i, j; -- 2.20.1 From 489ac07e83f5dabd23d494630c7bb61690bb56e0 Mon Sep 17 00:00:00 2001 From: Anselm R Garbe Date: Sat, 17 May 2008 14:06:41 +0100 Subject: [PATCH 16/16] removed reapply() -- unnecessary --- config.def.h | 1 - dwm.c | 12 ------------ 2 files changed, 13 deletions(-) diff --git a/config.def.h b/config.def.h index 1c704c3..437a0f2 100644 --- a/config.def.h +++ b/config.def.h @@ -40,7 +40,6 @@ Key keys[] = { { MODKEY|ShiftMask, XK_j, focusnext, "exact" }, { MODKEY, XK_k, focusprev, NULL }, { MODKEY|ShiftMask, XK_k, focusprev, "exact" }, - { MODKEY, XK_r, reapply, NULL }, { MODKEY, XK_h, setmfact, "-0.05" }, { MODKEY, XK_l, setmfact, "+0.05" }, { MODKEY, XK_Return, zoom, NULL }, diff --git a/dwm.c b/dwm.c index 88391af..6299b63 100644 --- a/dwm.c +++ b/dwm.c @@ -158,7 +158,6 @@ void movemouse(Client *c); Client *nexttiled(Client *c); void propertynotify(XEvent *e); void quit(const char *arg); -void reapply(const char *arg); void resize(Client *c, int x, int y, int w, int h, Bool sizehints); void resizemouse(Client *c); void restack(void); @@ -1136,17 +1135,6 @@ quit(const char *arg) { readin = running = False; } -void -reapply(const char *arg) { - Client *c; - - for(c = clients; c; c = c->next) { - memset(c->tags, 0, TAGSZ); - applyrules(c); - } - arrange(); -} - void resize(Client *c, int x, int y, int w, int h, Bool sizehints) { XWindowChanges wc; -- 2.20.1