about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* proceeded with cleaning up, sorting functions, etcAnselm R. Garbe2006-07-157-543/+532
|
* rearranged several stuffAnselm R. Garbe2006-07-1510-444/+442
|
* sanitized namesAnselm R. Garbe2006-07-147-72/+72
|
* rearrangedAnselm R. Garbe2006-07-149-377/+374
|
* I prefer the tiled/floating indicator on the right sideAnselm R. Garbe2006-07-141-5/+9
|
* bar shows if currently is tiled (Mod1-space) or floating (Mod1-Shift-space) modeAnselm R. Garbe2006-07-142-1/+7
|
* draw bar on exposure ;)Anselm R. Garbe2006-07-143-7/+9
|
* Added tag 0.1 for changeset d31b5ad96b0ba7b5b0a30928fcf000428339a577Anselm R. Garbe2006-07-141-0/+1
|
* prep 0.1 0.1Anselm R. Garbe2006-07-144-9/+11
|
* fixed crash on zoom if only 1 client existsAnselm R. Garbe2006-07-141-3/+9
|
* removed a bunch of lines through swap removalAnselm R. Garbe2006-07-145-28/+11
|
* if stdin writer stops working, dwm consumed much IO load because it still ↵Anselm R. Garbe2006-07-141-3/+7
| | | | tried to select on this fd, fixed
* removed a bottleneckAnselm R. Garbe2006-07-141-6/+8
|
* searching for a better way to discard enter notifiesAnselm R. Garbe2006-07-144-54/+12
|
* focus on view change as wellAnselm R. Garbe2006-07-141-0/+3
|
* small fixAnselm R. Garbe2006-07-141-1/+1
|
* made stdin reader more robustAnselm R. Garbe2006-07-142-9/+22
|
* implemented dwm reading status text from stdin Anselm R. Garbe2006-07-146-25/+58
|
* made barclick to select the specific tagAnselm R. Garbe2006-07-146-4/+36
|
* implemented bar for dwm (I miss status text), I plan that status text is ↵Anselm R. Garbe2006-07-146-31/+95
| | | | read from stdin in dwm
* continued with man pageAnselm R. Garbe2006-07-141-0/+34
|
* continued with man pageAnselm R. Garbe2006-07-144-4/+40
|
* except improvements to the mouse handling this is already nearly feature ↵Anselm R. Garbe2006-07-131-0/+5
| | | | complete
* added mini stuffAnselm R. Garbe2006-07-134-46/+69
|
* fixed several things, nearly feature completeAnselm R. Garbe2006-07-135-29/+35
|
* new stuffAnselm R. Garbe2006-07-135-61/+103
|
* several other additions/fixes, dwm is quite usable alreadyAnselm R. Garbe2006-07-134-111/+165
|
* implemented tagging a clientAnselm R. Garbe2006-07-135-85/+156
|
* several fixesAnselm R. Garbe2006-07-132-4/+4
|
* added philosophy sectionAnselm R. Garbe2006-07-131-0/+11
|
* added xlock command (I need it regularly)Anselm R. Garbe2006-07-134-25/+19
|
* added pointer warps on kb-driven/manage-driven focusAnselm R. Garbe2006-07-131-0/+3
|
* changed back to urxvt, dwm has no problems with it, because it doesn't use ↵Anselm R. Garbe2006-07-132-2/+2
| | | | frame windows ;)
* changed default colorsAnselm R. Garbe2006-07-138-82/+71
|
* added dev.c instead of kb.cAnselm R. Garbe2006-07-135-66/+57
|
* removed obsolete stuffAnselm R. Garbe2006-07-131-13/+12
|
* fixed grammar bug reported by John-GaltAnselm R. Garbe2006-07-131-1/+1
|
* another changeAnselm R. Garbe2006-07-131-1/+1
|
* updated man pageAnselm R. Garbe2006-07-131-7/+5
|
* small changes to READMEAnselm R. Garbe2006-07-131-3/+3
|
* last change to dwm.htmlAnselm R. Garbe2006-07-131-43/+47
|
* renamed/changedAnselm R. Garbe2006-07-132-1/+1
|
* added logo+descriptionAnselm R. Garbe2006-07-1312-115/+194
|
* new stuff (some warning elimination)Anselm R. Garbe2006-07-137-47/+44
|
* removed unnecessary crapAnselm R. Garbe2006-07-1315-785/+95
|
* before leaning things upAnselm R. Garbe2006-07-139-112/+150
|
* new stuff, fixed several issuesAnselm R. Garbe2006-07-126-12/+13
|
* added gravity stuffAnselm R. Garbe2006-07-124-7/+76
|
* added maxAnselm R. Garbe2006-07-123-3/+15
|
* added grid mode on Mod1Mask gAnselm R. Garbe2006-07-127-66/+97
|
pan>} restack(); } void dotile(void) { unsigned int i, n, mw, mh, tw, th; Client *c; for(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->isfloat) { resize(c, True); continue; } c->ismax = False; c->x = wax; c->y = way; if(i < nmaster) { c->y += i * mh; c->w = mw - 2 * BORDERPX; c->h = mh - 2 * BORDERPX; } else { /* tile window */ c->x += mw; c->w = tw - 2 * BORDERPX; if(th > 2 * BORDERPX) { c->y += (i - nmaster) * th; c->h = th - 2 * BORDERPX; } else /* fallback if th <= 2 * BORDERPX */ c->h = wah - 2 * BORDERPX; } resize(c, False); i++; } else 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; if(!(c = getnext(sel->next))) c = getnext(clients); if(c) { focus(c); restack(); } } void focusprev(Arg *arg) { Client *c; if(!sel) return; if(!(c = getprev(sel->prev))) { for(c = clients; c && c->next; c = c->next); c = getprev(c); } 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(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(); }