new stuff
Anselm R Garbe garbeam@gmail.com
Thu, 06 Mar 2008 19:20:14 +0000
4 files changed,
177 insertions(+),
16 deletions(-)
A
config.anselm.h
@@ -0,0 +1,127 @@
+/* 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" + +/* bar position */ +#define BX 0 +#define BY 0 +#define BW 1280 + +/* window area, including floating windows */ +#define WX 0 +#define WY bh +#define WW sw +#define WH sh - bh + +/* master area */ +#define MX WX +#define MY bh +#define MW 1280 +#define MH 800 - bh + +/* tile area, might be on a different screen */ +#define TX 1280 +#define TY 0 +#define TW 1680 +#define TH 1050 + +/* monocle area, might be restricted to a specific screen */ +#define MOX MX +#define MOY MY +#define MOW MW +#define MOH MH + +/* tagging */ +const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; + +Rule rules[] = { + /* class:instance:title substr tags ref isfloating */ + { "Firefox", tags[8], False }, + { "Gimp", NULL, True }, + { "MPlayer", NULL, True }, + { "Acroread", NULL, True }, +}; + +/* layout(s) */ +#define RESIZEHINTS True /* False - respect size hints in tiled resizals */ +#define SNAP 32 /* snap pixel */ + +Layout layouts[] = { + /* symbol function isfloating */ + { "[]|", tileh, False }, /* first entry is default */ + { "[]=", tilev, False }, + { "><>", floating, True }, + { "[M]", monocle, True }, +}; + +/* key definitions */ +#define MODKEY Mod1Mask +Key keys[] = { + /* modifier key function argument */ +#if ANSELM_OFFICE + { MODKEY, XK_p, spawn, + "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"' -x 0 -y 0 -w 1280" }, +#else + { MODKEY, XK_p, spawn, + "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }, +#endif + { MODKEY|ShiftMask, XK_Return, spawn, "exec uxterm" }, + { MODKEY, XK_j, focusnext, NULL }, + { MODKEY, XK_k, focusprev, NULL }, + { MODKEY, XK_r, reapply, NULL }, + { MODKEY, XK_Return, zoom, NULL }, + { MODKEY, XK_Tab, viewprevtag, NULL }, + { MODKEY, XK_m, setlayout, "[M]" }, + { MODKEY, XK_f, setlayout, "><>" }, + { MODKEY, XK_v, setlayout, "[]=" }, + { MODKEY, XK_h, setlayout, "[]|" }, + { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, + { MODKEY|ShiftMask, XK_c, killclient, 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 }, +};
M
config.def.h
→
config.def.h
@@ -56,9 +56,10 @@ #define SNAP 32 /* snap pixel */
Layout layouts[] = { /* symbol function isfloating */ - { "[]=", tile, False }, /* first entry is default */ - { "><>", floating True }, - { "[M]", monocle True }, + { "[]|", tileh, False }, /* first entry is default */ + { "[]=", tilev, False }, + { "><>", floating, True }, + { "[M]", monocle, True }, }; /* key definitions */@@ -80,7 +81,8 @@ { MODKEY, XK_Return, zoom, NULL },
{ MODKEY, XK_Tab, viewprevtag, NULL }, { MODKEY, XK_m, setlayout, "[M]" }, { MODKEY, XK_f, setlayout, "><>" }, - { MODKEY, XK_t, setlayout, "[]=" }, + { MODKEY, XK_v, setlayout, "[]=" }, + { MODKEY, XK_h, setlayout, "[]|" }, { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, { MODKEY|ShiftMask, XK_c, killclient, NULL }, { MODKEY, XK_0, view, NULL },
M
dwm.c
→
dwm.c
@@ -1,6 +1,3 @@
-/** - * - allow for vstack - */ /* See LICENSE file for copyright and license details. * * dynamic window manager is designed like any other X client as well. It is@@ -36,7 +33,6 @@ #include <unistd.h>
#include <sys/select.h> #include <sys/types.h> #include <sys/wait.h> -#include <regex.h> #include <X11/cursorfont.h> #include <X11/keysym.h> #include <X11/Xatom.h>@@ -170,8 +166,10 @@ void spawn(const char *arg);
void tag(const char *arg); unsigned int textnw(const char *text, unsigned int len); unsigned int textw(const char *text); -void tile(void); +void tileh(void); +void tilehstack(unsigned int n); unsigned int tilemaster(void); +void tilev(void); void tilevstack(unsigned int n); void togglefloating(const char *arg); void toggletag(const char *arg);@@ -1547,6 +1545,37 @@ /* client doesn't accept size constraints */
resize(c, x, y, w, h, False); } +void +tileh(void) { + tilehstack(tilemaster()); +} + +void +tilehstack(unsigned int n) { + int i, x, w; + Client *c; + + if(n == 0) + return; + + x = TX; + w = (TW) / n; + if(w < bh) + w = TW; + + for(i = 0, c = nexttiled(clients); c; c = nexttiled(c->next), i++) + if(i > 0) { + if(i > 1 && i == n) /* remainder */ + tileresize(c, x, TY, ((TX) + (TW)) - x - 2 * c->border, + TH - 2 * c->border); + else + tileresize(c, x, TY, w - 2 * c->border, + TH - 2 * c->border); + if(w != TW) + x = c->x + c->w + 2 * c->border; + } +} + unsigned int tilemaster(void) { unsigned int n;@@ -1564,6 +1593,11 @@ return n - 1;
} void +tilev(void) { + tilevstack(tilemaster()); +} + +void tilevstack(unsigned int n) { int i, y, h; Client *c;@@ -1587,11 +1621,6 @@ h - 2 * c->border);
if(h != TH) y = c->y + c->h + 2 * c->border; } -} - -void -tile(void) { - tilevstack(tilemaster()); } void