Introduction
Introduction Statistics Contact Development Disclaimer Help
tsetlayout and setgeom are now togglable again - dwm - [fork] customized build …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 20cd3360876f551c0f3b4c9c5a827a64b829e6ef
parent a6a216f28cbc49afaace269c2662382a351fda24
Author: Anselm R Garbe <[email protected]>
Date: Mon, 24 Mar 2008 13:49:19 +0000
setlayout and setgeom are now togglable again
Diffstat:
M config.def.h | 20 ++++++--------------
M dwm.1 | 14 ++++----------
M dwm.c | 46 +++++++++++++++++++----------…
3 files changed, 38 insertions(+), 42 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -22,15 +22,11 @@ Rule rules[] = {
/* func name bx by bw wx wy ww wh mx my mw mh tx ty …
DEFGEOM(single, 0, 0, sw, 0, bh, sw, sh-bh, wx, wy, 0.55*sw, wh, mx+mw, wy,…
DEFGEOM(dual, 0, 0,1280, 0, bh, ww, wh-bh, wx, wy, 1280,800-bh, 1280, 0,…
-/* DEFGEOM(growmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw+20, mh, mx+mw, t…
-/* DEFGEOM(shrinkmaster, bx, by, bw, wx, wy, ww, wh, mx, my, mw-20, mh, mx+mw,…
Geom geoms[] = {
/* symbol function */
- { "<>", single }, /* first entry is default */
- { ")(", dual },
-/* { "+|", growmaster },*/
-/* { "|-", shrinkmaster },*/
+ { "[]", single }, /* first entry is default */
+ { "[][]", dual },
};
/* layout(s) */
t@@ -49,22 +45,18 @@ Layout layouts[] = {
#define MODKEY Mod1Mask
Key keys[] = {
/* modifier key function …
- { MODKEY, XK_a, setgeom, …
- { MODKEY, XK_d, setgeom, …
{ MODKEY, XK_p, spawn,
"exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGC…
- { MODKEY|ShiftMask, XK_Return, spawn, "exec uxte…
+ { MODKEY|ShiftMask, XK_Return, spawn, …
{ MODKEY, XK_j, focusnext, …
{ MODKEY, XK_k, focusprev, …
{ MODKEY, XK_r, reapply, …
{ MODKEY, XK_Return, zoom, …
{ MODKEY, XK_Tab, viewprevtag, …
- { MODKEY, XK_m, setlayout, …
- { MODKEY, XK_f, setlayout, …
- { MODKEY, XK_v, setlayout, …
- { MODKEY, XK_h, setlayout, …
- { MODKEY|ShiftMask, XK_space, togglefloating, …
{ MODKEY|ShiftMask, XK_c, killclient, …
+ { MODKEY, XK_space, setlayout, NU…
+ { MODKEY|ShiftMask, XK_space, togglefloating, …
+ { MODKEY|ControlMask, XK_space, setgeom, …
{ MODKEY, XK_0, view, …
{ MODKEY, XK_1, view, …
{ MODKEY, XK_2, view, …
diff --git a/dwm.1 b/dwm.1
t@@ -57,17 +57,11 @@ click on a tag label adds/removes that tag to/from the foc…
Start
.BR xterm.
.TP
-.B Mod1\-f
-Applies floating layout.
+.B Mod1\-space
+Toggles between layouts.
.TP
-.B Mod1\-m
-Applies monocle layout.
-.TP
-.B Mod1\-v
-Applies vertical tiled layout.
-.TP
-.B Mod1\-h
-Applies horizontal tiled layout.
+.B Mod1\-Control\-space
+Toggles between geometries.
.TP
.B Mod1\-j
Focus next window.
diff --git a/dwm.c b/dwm.c
t@@ -322,6 +322,10 @@ buttonpress(XEvent *e) {
XButtonPressedEvent *ev = &e->xbutton;
if(ev->window == barwin) {
+ if((ev->x < bgw) && ev->button == Button1) {
+ setgeom(NULL);
+ return;
+ }
x = bgw;
for(i = 0; i < LENGTH(tags); i++) {
x += textw(tags[i]);
t@@ -341,6 +345,8 @@ buttonpress(XEvent *e) {
return;
}
}
+ if((ev->x < x + blw) && ev->button == Button1)
+ setlayout(NULL);
}
else if((c = getclient(ev->window))) {
focus(c);
t@@ -426,7 +432,7 @@ configurenotify(XEvent *e) {
if(ev->window == root && (ev->width != sw || ev->height != sh)) {
sw = ev->width;
sh = ev->height;
- setgeom(NULL);
+ setgeom(geom->symbol);
}
}
t@@ -1417,12 +1423,18 @@ void
setgeom(const char *arg) {
unsigned int i;
- for(i = 0; arg && i < LENGTH(geoms); i++)
- if(!strcmp(geoms[i].symbol, arg))
- break;
- if(i == LENGTH(geoms))
- return;
- geom = &geoms[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();
t@@ -1430,20 +1442,18 @@ setgeom(const char *arg) {
void
setlayout(const char *arg) {
- static Layout *revert = 0;
unsigned int i;
- if(!arg)
- return;
- for(i = 0; i < LENGTH(layouts); i++)
- if(!strcmp(arg, layouts[i].symbol))
- break;
- if(i == LENGTH(layouts))
- return;
- if(revert && &layouts[i] == lt)
- lt = revert;
+ if(!arg) {
+ if(++lt == &layouts[LENGTH(layouts)])
+ lt = &layouts[0];
+ }
else {
- revert = lt;
+ for(i = 0; i < LENGTH(layouts); i++)
+ if(!strcmp(arg, layouts[i].symbol))
+ break;
+ if(i == LENGTH(layouts))
+ return;
lt = &layouts[i];
}
if(sel)
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.