about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* improved tile() for the RESIZEHINTS == True case, now more space is consumed ↵Anselm R. Garbe2007-09-271-5/+6
| | | | by the clients (esp. if those clients use increment handling heavily)
* fixed colorsAnselm R. Garbe2007-09-271-3/+3
|
* fixed inclusion orderarg@suckless.org2007-09-271-1/+2
|
* updated with my favorite colorschemeAnselm R. Garbe2007-09-261-7/+6
|
* applied colors depend from lavishs proposalAnselm R. Garbe2007-09-251-6/+6
|
* switching to white normal bg, renaming tag 9 into www, for static use in ↵Anselm R. Garbe2007-09-231-9/+9
| | | | conjunction with ff
* btw 4.6 will be the next releaseAnselm R. Garbe2007-09-231-1/+1
|
* renamed config.h into config.def.h, config.h will be created if not present, ↵Anselm R. Garbe2007-09-232-1/+5
| | | | this seems less annoying after all
* introduced ISTILE, which can be easily extended with other layout functions ↵Anselm R. Garbe2007-09-222-6/+7
| | | | to allow reuse of setmwfact() and zoom()
* setmwfact and zoom check isarrange(floating) now, not !isarrange(tile) - ↵Anselm R. Garbe2007-09-221-2/+2
| | | | this makes it easier to play well with bstack and nmtile patches
* Added tag 4.5 for changeset 2acc60d6dfe2Anselm R. Garbe2007-09-221-0/+1
|
* cosmetic fix 4.5Anselm R. Garbe2007-09-221-1/+2
|
* fixed a commentAnselm R. Garbe2007-09-201-1/+1
|
* applied Peters patch, applied yiyus hint to initfontarg@suckless.org2007-09-191-12/+12
|
* applied Peter Hartlich's togglemax patch to allow toggling tiled clients to ↵Anselm R. Garbe2007-09-182-4/+13
| | | | maximum
* made all stuff non-static - so you can choose wether to use dwm the static ↵arg@suckless.org2007-09-174-187/+184
| | | | or the extern way when extending it
* there might be envs which need Xlib.hAnselm R. Garbe2007-09-161-0/+1
|
* Mod1-Button2 on a floating but not-fixed client will make it tiled againAnselm R. Garbe2007-09-162-3/+7
|
* now tiled windows can be resized/moved, their floating state will be toggled ↵Anselm R. Garbe2007-09-162-8/+12
| | | | implicitely
* some more rearrangementsAnselm R. Garbe2007-09-161-147/+143
|
* ordered all functions alphabeticallyAnselm R. Garbe2007-09-161-1025/+1023
|
* corrected a misleading commentAnselm R. Garbe2007-09-161-1/+1
|
* macros which have been defined in config.h can only be used at function ↵Anselm R. Garbe2007-09-161-6/+10
| | | | level, however you can nest code into config.h now for implementing a different layout (just for example), eg. #include "supertile.c"
* ordered function forward definitionsAnselm R. Garbe2007-09-151-56/+57
|
* backporting my intro-comment of old dwm.hAnselm R. Garbe2007-09-151-1/+30
|
* removed grabkeys, not necessaryAnselm R. Garbe2007-09-151-26/+21
|
* micromizing dwm step 1Anselm R. Garbe2007-09-1513-1971/+1861
|
* new colorscheme (16-bit compliant)Anselm R. Garbe2007-09-154-15/+14
|
* moved bar-related stuff to bar.c (merged draw.c into that)Anselm R. Garbe2007-09-156-259/+269
|
* renamed drawstatus into drawbarAnselm R. Garbe2007-09-156-10/+10
|
* renamed config.default.h into config.hAnselm R. Garbe2007-09-152-6/+2
|
* dist target only needs to add config.default.hAnselm R. Garbe2007-09-151-1/+1
|
* removed config.arg.h, only 1 config.h necessaryAnselm R. Garbe2007-09-152-112/+22
|
* small changes of the colorsAnselm R. Garbe2007-09-141-7/+10
|
* other colorAnselm R. Garbe2007-09-111-3/+3
|
* using light colorscheme, preparing merge of config.arg.h with config.default.hAnselm R. Garbe2007-09-111-7/+7
|
* I work with enabled RESIZEHINTS, simply because I force myself to continue ↵Anselm R. Garbe2007-09-091-1/+1
| | | | the st development ;)
* introduced new define RESIZEHINTS, which allows to enable/disable size hint ↵Anselm R. Garbe2007-09-094-2/+4
| | | | handling in tiled resizals
* 14px fonts drives me nutsAnselm R. Garbe2007-09-071-1/+1
|
* Added tag 4.4.1 for changeset 7c117df5d202Anselm R. Garbe2007-08-261-0/+1
|
* prepared 4.4.1 bugfix and minor feature enhancement release 4.4.1Anselm R. Garbe2007-08-265-5/+5
|
* Added tag 4.4 for changeset 408014d21261Anselm R. Garbe2007-08-231-0/+1
|
* removed unnecessary include, prepared dwm-4.4 4.4Anselm R. Garbe2007-08-231-1/+0
|
* setlayout should perform strcmp's if arg != NULL, because Layout is local to ↵Anselm R. Garbe2007-08-221-1/+2
| | | | screen.o
* reverted release CFLAGsAnselm R. Garbe2007-08-221-2/+2
|
* removed the _DWM_PROPERTIES handling, reverted ban/unban to XMoveWindow(), ↵Anselm R. Garbe2007-08-226-101/+23
| | | | and changed argument of setlayout to layout[N].symbol check
* renamed char prop[] into buf[]Anselm R. Garbe2007-08-192-27/+27
|
* fixed misappearance of iconified windows on SIGKILLAnselm R. Garbe2007-08-192-4/+29
|
* moved updatebarpos to screenAnselm R. Garbe2007-08-193-28/+28
|
* added screen.c, removed layout.c and tag.cAnselm R. Garbe2007-08-197-228/+215
|
/span>(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) n++; /* window geoms */ mh = (n > nmaster) ? wah / nmaster : wah / (n > 0 ? n : 1); mw = (n > nmaster) ? (waw * master) / 1000 : waw; th = (n > nmaster) ? wah / (n - nmaster) : 0; tw = waw - mw; for(i = 0, c = clients; c; c = c->next) if(isvisible(c)) { if(c->isbanned) XMoveWindow(dpy, c->win, c->x, c->y); c->isbanned = False; if(c->isfloat) continue; c->ismax = False; nx = wax; ny = way; if(i < nmaster) { ny += i * mh; nw = mw - 2 * BORDERPX; nh = mh - 2 * BORDERPX; } else { /* tile window */ nx += mw; nw = tw - 2 * BORDERPX; if(th > 2 * BORDERPX) { ny += (i - nmaster) * th; nh = th - 2 * BORDERPX; } else /* fallback if th <= 2 * BORDERPX */ nh = wah - 2 * BORDERPX; } resize(c, nx, ny, nw, nh, False); i++; } else { c->isbanned = True; XMoveWindow(dpy, c->win, c->x + 2 * sw, c->y); } if(!sel || !isvisible(sel)) { for(c = stack; c && !isvisible(c); c = c->snext); focus(c); } restack(); } void focusnext(Arg *arg) { Client *c; if(!sel) return; for(c = sel->next; c && !isvisible(c); c = c->next); if(!c) for(c = clients; c && !isvisible(c); c = c->next); if(c) { focus(c); restack(); } } void focusprev(Arg *arg) { Client *c; if(!sel) return; for(c = sel->prev; c && !isvisible(c); c = c->prev); if(!c) { for(c = clients; c && c->next; c = c->next); for(; c && !isvisible(c); c = c->prev); } if(c) { focus(c); restack(); } } void incnmaster(Arg *arg) { if((arrange == dofloat) || (nmaster + arg->i < 1) || (wah / (nmaster + arg->i) <= 2 * BORDERPX)) return; nmaster += arg->i; if(sel) arrange(); else drawstatus(); } Bool isvisible(Client *c) { unsigned int i; for(i = 0; i < ntags; i++) if(c->tags[i] && seltag[i]) return True; return False; } void resizemaster(Arg *arg) { if(arrange != dotile) return; if(arg->i == 0) master = MASTER; else { if(waw * (master + arg->i) / 1000 >= waw - 2 * BORDERPX || waw * (master + arg->i) / 1000 <= 2 * BORDERPX) return; master += arg->i; } arrange(); } void restack(void) { Client *c; XEvent ev; drawstatus(); if(!sel) return; if(sel->isfloat || arrange == dofloat) XRaiseWindow(dpy, sel->win); if(arrange != dofloat) { if(!sel->isfloat) XLowerWindow(dpy, sel->win); for(c = nexttiled(clients); c; c = nexttiled(c->next)) { if(c == sel) continue; XLowerWindow(dpy, c->win); } } XSync(dpy, False); while(XCheckMaskEvent(dpy, EnterWindowMask, &ev)); } void togglefloat(Arg *arg) { if(!sel || arrange == dofloat) return; sel->isfloat = !sel->isfloat; arrange(); } void togglemode(Arg *arg) { arrange = (arrange == dofloat) ? dotile : dofloat; if(sel) arrange(); else drawstatus(); } void toggleview(Arg *arg) { unsigned int i; seltag[arg->i] = !seltag[arg->i]; for(i = 0; i < ntags && !seltag[i]; i++); if(i == ntags) seltag[arg->i] = True; /* cannot toggle last view */ arrange(); } void view(Arg *arg) { unsigned int i; for(i = 0; i < ntags; i++) seltag[i] = (arg->i == -1) ? True : False; if(arg->i >= 0 && arg->i < ntags) seltag[arg->i] = True; arrange(); } void zoom(Arg *arg) { unsigned int n; Client *c; if(!sel) return; if(sel->isfloat || (arrange == dofloat)) { togglemax(sel); return; } for(n = 0, c = nexttiled(clients); c; c = nexttiled(c->next)) n++; if((c = sel) == nexttiled(clients)) if(!(c = nexttiled(c->next))) return; detach(c); if(clients) clients->prev = c; c->next = clients; clients = c; focus(c); arrange(); }