Re: [dwm] [patch] dwm-meillo (2 tags to toggle)
On Fri, Sep 21, 2007 at 12:12:46AM +0200, markus schnalke wrote: > > Hoi folks, > > after a long time (since 3.5) I updated "my" patches to the current tip. > > As you perhaps remember/know, I habe only 2 tags between I toggle. I use them > as workspaces. Clients are matched to only one tag. > > So my Workflow is somehow different from normal dwm tagging style, but it is > highly productiv! > Okay, this only is true if you have not more than two or perhaps three > clients in each of the tags. (I have two terms with screen on one tag > and iceweasel on the other.) > Also I only use maxlayout (monocle) ... and floating for some apps of > cause. > > > You find the patch on http://prog.marmaro.de/dwm-meillo/ > I attached it too > > * adds toggleview (only 2 workspaces to toggle) > * adds maxlayout (see monocle layout) > * performs only the first matching rule for clients > * modifies the status bar in some ways (no squares and more) > * removes lots of IMHO unnessasary keystrokes (and so the access to > features) > * includes my config.h > > > markus Your terminal colors are amazing... Would you mind sharing your .XResources or whatever file you are using to set your colorscheme? I would like to imitate it if you wouldn't mind :-D -- Jeremy O'Brien aka neutral_insomniac GPG key: 0xB1140FDB http://pohl.ececs.uc.edu/~jeremy/jeremy.asc Linux ambelina 2.6.23-rc3 ppc 7447A, altivec supported PowerBook5,8 GNU/Linux pgp63GxDG0LZf.pgp Description: PGP signature
Re: [dwm] [patch] dwm-meillo (2 tags to toggle)
On Thu, Sep 20, 2007 at 07:58:15PM -0400, Jeremy O'Brien wrote: > On Fri, Sep 21, 2007 at 12:12:46AM +0200, markus schnalke wrote: > > > > Hoi folks, > > > > after a long time (since 3.5) I updated "my" patches to the current tip. > > > > As you perhaps remember/know, I habe only 2 tags between I toggle. I use > > them > > as workspaces. Clients are matched to only one tag. > > > > So my Workflow is somehow different from normal dwm tagging style, but it is > > highly productiv! > > Okay, this only is true if you have not more than two or perhaps three > > clients in each of the tags. (I have two terms with screen on one tag > > and iceweasel on the other.) > > Also I only use maxlayout (monocle) ... and floating for some apps of > > cause. > > > > > > You find the patch on http://prog.marmaro.de/dwm-meillo/ > > I attached it too > > > > * adds toggleview (only 2 workspaces to toggle) > > * adds maxlayout (see monocle layout) > > * performs only the first matching rule for clients > > * modifies the status bar in some ways (no squares and more) > > * removes lots of IMHO unnessasary keystrokes (and so the access to > > features) > > * includes my config.h > > > > > > markus > > Your terminal colors are amazing... Would you mind sharing your > .XResources or whatever file you are using to set your colorscheme? I > would like to imitate it if you wouldn't mind :-D > Well nevermind. I see they are already on your site :P Many thanks! -- Jeremy O'Brien aka neutral_insomniac GPG key: 0xB1140FDB http://pohl.ececs.uc.edu/~jeremy/jeremy.asc Linux ambelina 2.6.23-rc3 ppc 7447A, altivec supported PowerBook5,8 GNU/Linux pgpBJiAY32PXu.pgp Description: PGP signature
[dwm] [patch] dwm-meillo (2 tags to toggle)
Hoi folks, after a long time (since 3.5) I updated "my" patches to the current tip. As you perhaps remember/know, I habe only 2 tags between I toggle. I use them as workspaces. Clients are matched to only one tag. So my Workflow is somehow different from normal dwm tagging style, but it is highly productiv! Okay, this only is true if you have not more than two or perhaps three clients in each of the tags. (I have two terms with screen on one tag and iceweasel on the other.) Also I only use maxlayout (monocle) ... and floating for some apps of cause. You find the patch on http://prog.marmaro.de/dwm-meillo/ I attached it too * adds toggleview (only 2 workspaces to toggle) * adds maxlayout (see monocle layout) * performs only the first matching rule for clients * modifies the status bar in some ways (no squares and more) * removes lots of IMHO unnessasary keystrokes (and so the access to features) * includes my config.h markus # HG changeset patch # User [EMAIL PROTECTED] # Date 1190322751 -7200 # Node ID 303286112f0a3fafa0ec318a489895d8a60db753 # Parent 19d4ccea9745e8c04e5a4a9278efcb73a22cf248 Meillos mods: toggletags, maxlayout, match only first rule, no squares, personalized config.h (rem: code of maxlayout is from the monocle-patch, via mailinglist) diff -r 19d4ccea9745 -r 303286112f0a config.h --- a/config.h Wed Sep 19 17:32:28 2007 +0200 +++ b/config.h Thu Sep 20 23:12:31 2007 +0200 @@ -3,32 +3,34 @@ /* appearance */ #define BARPOS BarTop /* BarBot, BarOff */ #define BORDERPX 1 -#define FONT "-*-terminus-medium-r-*-*-12-*-*-*-*-*-iso10646-*" +#define FONT "-*-terminus-medium-r-*-*-12-*-*-*-*-*-*-*" #define NORMBORDERCOLOR "#333" -#define NORMBGCOLOR "#000" -#define NORMFGCOLOR "#ccc" -#define SELBORDERCOLOR "#f00" -#define SELBGCOLOR "#00f" -#define SELFGCOLOR "#fff" +#define NORMBGCOLOR "#333" +#define NORMFGCOLOR "#bbb" +#define SELBORDERCOLOR "#eec900" +#define SELBGCOLOR "#eec900" +#define SELFGCOLOR "#000" /* tagging */ -const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", NULL }; +const char *tags[] = { "Das Alles", "Das Nichts", NULL }; Rule rules[] = { /* class:instance:title regex tags regex isfloating */ - { "Firefox", "3", False }, - { "Gimp", NULL, True }, - { "MPlayer", NULL, True }, - { "Acroread", NULL, True }, + { "URxvt.*", "Das Nichts", False }, + { "MPlayer", NULL, True }, + { "qiv.*", NULL, True }, + { "Gimp.*", "Das Alles", True }, + { ".*", "Das Alles", False }, }; /* layout(s) */ Layout layouts[] = { /* symbol function */ - { "[]=", tile }, /* first entry is default */ - { "><>", floating }, + { " ", maxlayout }, /* first entry is default */ + { " ", tile }, + /*{ "><>", floating },*/ }; -#define RESIZEHINTS True /* False - respect size hints in tiled resizals */ -#define MWFACT 0.6 /* master width factor [0.1 .. 0.9] */ +#define RESIZEHINTS False /* False - respect size hints in tiled resizals */ +#define MWFACT 0.5 /* master width factor [0.1 .. 0.9] */ #define SNAP 32 /* snap pixel */ /* key definitions */ @@ -36,58 +38,22 @@ Layout layouts[] = { #define KEYS \ Key keys[] = { \ /* modifier key function argument */ \ - { MODKEY, XK_p, spawn, \ + /*{ MODKEY, XK_p, spawn, \ "exe=`dmenu_path | dmenu -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"'" \ - " -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'` && exec $exe" }, \ - { MODKEY|ShiftMask, XK_Return, spawn, \ - "exec xterm -bg '"NORMBGCOLOR"' -fg '"NORMFGCOLOR"' -cr '"NORMFGCOLOR"' +sb -fn '"FONT"'" }, \ + " -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'` && exec $exe" }, \*/ \ + { MODKEY, XK_asciicircum, spawn, \ + "exe=\"$(lsx `echo $PATH | sed 's/:/ /g'` | sort -u " \ + " | dmenu -font '"FONT"' -normbg '"NORMBGCOLOR"' -normfg '"NORMFGCOLOR"' " \ + "-selbg '"SELBGCOLOR"' -selfg '"SELFGCOLOR"')\" && exec $exe" }, \ + { MODKEY|ShiftMask, XK_Return, spawn, "exec urxvt" }, \ { MODKEY, XK_space, setlayout, NULL }, \ - { MODKEY, XK_b, togglebar, NULL }, \ - { MODKEY, XK_j, focusnext, NULL }, \ - { MODKEY, XK_k, focusprev, NULL }, \ - { MODKEY, XK_h, setmwfact, "-0.05" }, \ - { MODKEY, XK_l, setmwfact, "+0.05" }, \ - { MODKEY, XK_m, togglemax, NULL }, \ - { MODKEY, XK_Return, zoom, NULL }, \ + { MODKEY, XK_Tab, focusnext, NULL }, \ + { MODKEY, XK_1, zoom, NULL }, \ { 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] }, \ -
Re: [dwm] here comes a better comment
On Thu, Sep 20, 2007 at 09:38:06PM +0200, markus schnalke wrote: > > Hoi developers, > > if I understood the code right, then you should change this comment to > say more clearly what these lines are for. > I needed some minutes to figure out what the comment meant ... > > Okay, the new comment isn't perfect either ... maybe something in between > should be chosen. Thanks, that comment was misleading indeed. Regards, -- Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
[dwm] here comes a better comment
Hoi developers, if I understood the code right, then you should change this comment to say more clearly what these lines are for. I needed some minutes to figure out what the comment meant ... Okay, the new comment isn't perfect either ... maybe something in between should be chosen. markus diff -r 19d4ccea9745 dwm.c --- a/dwm.c Wed Sep 19 17:32:28 2007 +0200 +++ b/dwm.c Thu Sep 20 21:29:34 2007 +0200 @@ -1673,7 +1684,7 @@ toggleview(const char *arg) { seltags[i] = !seltags[i]; for(j = 0; j < ntags && !seltags[j]; j++); if(j == ntags) - seltags[i] = True; /* cannot toggle last view */ + seltags[i] = True; /* at least one tag must be viewed */ arrange(); }
Re: [dwm] All well and good . . .
On Thu, Sep 20, 2007 at 11:40:12AM -0400, Ross Mohn wrote: > It's all well and good that people are polishing dwm[1], announcing > awesome[2], and teasing us with siaynoq's disgruntled paradigms[3], but > what I could really use are a working dwm-ish for my stupid MSwin box at > work and, even better, a working st along with some of it's own > teasers[4]! > > 'Course, I know I haven't pitched in to help lately, but I thought I'd > put out a friendly nudge for my own personal wishlist :) > > Cheers! -RPM > > [1] http://www.suckless.org/pipermail/dwm/2007-September/003524.html > [2] http://awesome.naquadah.org/ > [3] http://dpi.sourceforge.net/ > [4] http://www.suckless.org/pipermail/dwm/2007-March/002274.html Forget dwm4windows, I dropped that idea a while ago completely. I use dwm under Cygwin very often and see absolutely no need to write something native for windows (all windows apps I've seen so far suck like hell, so in the end I'd launch ff and a terminal possibly). To st, it is really on my plan for _this_ year. Regards, -- Anselm R. Garbe >< http://www.suckless.org/ >< GPG key: 0D73F361
Re: [dwm] Announcing "awesome"
2007/9/20, Tuncer Ayaz <[EMAIL PROTECTED]>: > On 9/20/07, Tuncer Ayaz <[EMAIL PROTECTED]> wrote: > > On 9/20/07, Julien Danjou <[EMAIL PROTECTED]> wrote: > > > Hi everybody, > > > > > > With the approval of Anselm, I'd like to present to you a new project > > > called "awesome"[1], a direct neighbour of dwm. > > > > > > awesome is, yet, another window manager, which is based on dwm source > > > code. > > > In contrast to dwm, it does not have any limit about its SLOC size. > > > Consequently, it already includes some patches or ideas that people > > > dropped around in master. > > > > > > Any feedback will be appreciated, but in order to respect this list > > > which is about dwm, please answer to me or to the awesome list[2][3]. > > > > Thanks for the project, I will have a look tomorrow. > > > > What I miss right now from dwm are: > > 1) config file > > 2) the old NMASTER feature for vertical tiling > > Maybe I should try out one of the dwm patches to resurrect NMASTER > but I always back down at the thought of having to use an external patch > for a long time. > > > Maybe industrializing the use of patches in the Makefile would not be such a bad idea for such patchable window manager.
Re: [dwm] Announcing "awesome"
On 9/20/07, Tuncer Ayaz <[EMAIL PROTECTED]> wrote: > On 9/20/07, Julien Danjou <[EMAIL PROTECTED]> wrote: > > Hi everybody, > > > > With the approval of Anselm, I'd like to present to you a new project > > called "awesome"[1], a direct neighbour of dwm. > > > > awesome is, yet, another window manager, which is based on dwm source code. > > In contrast to dwm, it does not have any limit about its SLOC size. > > Consequently, it already includes some patches or ideas that people > > dropped around in master. > > > > Any feedback will be appreciated, but in order to respect this list > > which is about dwm, please answer to me or to the awesome list[2][3]. > > Thanks for the project, I will have a look tomorrow. > > What I miss right now from dwm are: > 1) config file > 2) the old NMASTER feature for vertical tiling Maybe I should try out one of the dwm patches to resurrect NMASTER but I always back down at the thought of having to use an external patch for a long time.
Re: [dwm] Announcing "awesome"
On 9/20/07, Tuncer Ayaz <[EMAIL PROTECTED]> wrote: > On 9/20/07, Julien Danjou <[EMAIL PROTECTED]> wrote: > > Hi everybody, > > > > With the approval of Anselm, I'd like to present to you a new project > > called "awesome"[1], a direct neighbour of dwm. > > > > awesome is, yet, another window manager, which is based on dwm source code. > > In contrast to dwm, it does not have any limit about its SLOC size. > > Consequently, it already includes some patches or ideas that people > > dropped around in master. > > > > Any feedback will be appreciated, but in order to respect this list > > which is about dwm, please answer to me or to the awesome list[2][3]. > > Thanks for the project, I will have a look tomorrow. > > What I miss right now from dwm are: > 1) config file > 2) the old NMASTER feature for vertical tiling > Forget about 1). Using config.h saves us from incompatibilites and makes it possible to use C macros to make the hotkey definitions cleaner by for example using #define RDESKTOP "rdesktop ".
Re: [dwm] Announcing "awesome"
On 9/20/07, Tuncer Ayaz <[EMAIL PROTECTED]> wrote: > On 9/20/07, Julien Danjou <[EMAIL PROTECTED]> wrote: > > Hi everybody, > > > > With the approval of Anselm, I'd like to present to you a new project > > called "awesome"[1], a direct neighbour of dwm. > > > > awesome is, yet, another window manager, which is based on dwm source code. > > In contrast to dwm, it does not have any limit about its SLOC size. > > Consequently, it already includes some patches or ideas that people > > dropped around in master. > > > > Any feedback will be appreciated, but in order to respect this list > > which is about dwm, please answer to me or to the awesome list[2][3]. > > Thanks for the project, I will have a look tomorrow. > > What I miss right now from dwm are: > 1) config file > 2) the old NMASTER feature for vertical tiling > > Btw, what about making your git repo available to people behind company > firewalls by publishing it via ftp or http? Sorry, I should have posted that to awesome's mailinglist instead.
Re: [dwm] Announcing "awesome"
On 9/20/07, Julien Danjou <[EMAIL PROTECTED]> wrote: > Hi everybody, > > With the approval of Anselm, I'd like to present to you a new project > called "awesome"[1], a direct neighbour of dwm. > > awesome is, yet, another window manager, which is based on dwm source code. > In contrast to dwm, it does not have any limit about its SLOC size. > Consequently, it already includes some patches or ideas that people > dropped around in master. > > Any feedback will be appreciated, but in order to respect this list > which is about dwm, please answer to me or to the awesome list[2][3]. Thanks for the project, I will have a look tomorrow. What I miss right now from dwm are: 1) config file 2) the old NMASTER feature for vertical tiling Btw, what about making your git repo available to people behind company firewalls by publishing it via ftp or http?
[dwm] All well and good . . .
It's all well and good that people are polishing dwm[1], announcing awesome[2], and teasing us with siaynoq's disgruntled paradigms[3], but what I could really use are a working dwm-ish for my stupid MSwin box at work and, even better, a working st along with some of it's own teasers[4]! 'Course, I know I haven't pitched in to help lately, but I thought I'd put out a friendly nudge for my own personal wishlist :) Cheers! -RPM [1] http://www.suckless.org/pipermail/dwm/2007-September/003524.html [2] http://awesome.naquadah.org/ [3] http://dpi.sourceforge.net/ [4] http://www.suckless.org/pipermail/dwm/2007-March/002274.html
Re: [dwm] Unused space between clients
Xavier <[EMAIL PROTECTED]> writes: [rxvt-unicode] > Previously, I had some weird corruptions at the place of this unused > space. This only happened with urxvt though, not xterm. Not sure why.. > But I'm happier with urxvt anyway. I've noticed this behaviour with urxvt when window size hints are being over-ruled by dwm. Terminals certainly do look much nicer in tiled mode when it does this, so it would be nice to fix urxvt to do the right thing. Sometimes after resizing, when the window is 'cleared', the bottom part line and/or rightmost part column doesn't clear, leading to the corruptions you describe. Another manifestation is that focus tinting doesn't properly affect the extra half line/column space at the bottom and right of a resized window. I wonder whether it would be easy to fix urxvt to 'round up' the area it refreshes instead of 'rounding down' when there are partial rows and columns... Best wishes, Chris.
Re: [dwm] Announcing "awesome"
At 1190296032 time_t, Jeremy O'Brien wrote: > "there's no stupid limit on its source size, we have features we want." > > That seems rather combative! Are you calling Anselm stupid? Not at all. I think the idea is quite stupid, YMMV. Smart people can have weird idea, I'm sure you're aware about that ;-) -- Julien Danjou // Λ̊ <[EMAIL PROTECTED]> http://julien.danjou.info // 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD
Re: [dwm] Announcing "awesome"
On 9/20/07, Jeremy O'Brien <[EMAIL PROTECTED]> wrote: > "there's no stupid limit on its source size, we have features we want." > > That seems rather combative! Are you calling Anselm stupid? I wouldn't have used the word "stupid", but I personally think excessively concentrating on SLOC tends to lead to more contorted, difficult to read/modify code than making the goal that "programs have a well-defined purpose with no more AND NO LESS features than are relevant for this purpose". I particularly thinks it's a mistake to remove well-thought out, useful features because "it removes lines of code". -- cheers, dave tweed__ [EMAIL PROTECTED] Rm 124, School of Systems Engineering, University of Reading. "we had no idea that when we added templates we were adding a Turing- complete compile-time language." -- C++ standardisation committee
Re: [dwm] Announcing "awesome"
Hi, * Jeremy O'Brien <[EMAIL PROTECTED]> [2007-09-20 15:51]: > On Thu, Sep 20, 2007 at 03:09:10PM +0200, Julien Danjou wrote: [...] > "there's no stupid limit on its source size, we have features we want." > > That seems rather combative! Are you calling Anselm stupid? "This keeps its userbase small and elitist. No novices asking stupid questions." is Anselm calling all novices stupid with this? Get a life. Cheers Nico -- Nico Golde - http://ngolde.de - [EMAIL PROTECTED] - GPG: 0x73647CFF For security reasons, all text in this mail is double-rot13 encrypted. pgpl02DOw9GFa.pgp Description: PGP signature
Re: [dwm] Announcing "awesome"
I would say that the lines of code limit is very smart! It make you think before you change/add something, that is much better the wondering how things got so out of hand further down the road. Any idiot can make software do anything with unlimited space/resources. That is the reason we have so much stupid bloatware. PS. I run DWM without any patches since I see no need for them, the code does what it should and does it extremely well. On 9/20/07, Jeremy O'Brien <[EMAIL PROTECTED]> wrote: > > On Thu, Sep 20, 2007 at 03:09:10PM +0200, Julien Danjou wrote: > > Hi everybody, > > > > With the approval of Anselm, I'd like to present to you a new project > > called "awesome"[1], a direct neighbour of dwm. > > > > awesome is, yet, another window manager, which is based on dwm source > code. > > In contrast to dwm, it does not have any limit about its SLOC size. > > Consequently, it already includes some patches or ideas that people > > dropped around in master. > > > > Any feedback will be appreciated, but in order to respect this list > > which is about dwm, please answer to me or to the awesome list[2][3]. > > > > Happy hacking, > > Cheers, > > > > [1] http://awesome.naquadah.org > > [2] [EMAIL PROTECTED] > > [3] http://awesome.naquadah.org/community/ > > > > -- > > Julien Danjou > > // Λ̊ <[EMAIL PROTECTED]> http://julien.danjou.info > > // 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD > > > > "there's no stupid limit on its source size, we have features we want." > > That seems rather combative! Are you calling Anselm stupid? > > -- > Jeremy O'Brien aka neutral_insomniac > GPG key: 0xB1140FDB http://pohl.ececs.uc.edu/~jeremy/jeremy.asc > Linux ambelina 2.6.23-rc3 ppc 7447A, altivec supported PowerBook5,8 > GNU/Linux > >
Re: [dwm] Announcing "awesome"
On Thu, Sep 20, 2007 at 03:09:10PM +0200, Julien Danjou wrote: > Hi everybody, > > With the approval of Anselm, I'd like to present to you a new project > called "awesome"[1], a direct neighbour of dwm. > > awesome is, yet, another window manager, which is based on dwm source code. > In contrast to dwm, it does not have any limit about its SLOC size. > Consequently, it already includes some patches or ideas that people > dropped around in master. > > Any feedback will be appreciated, but in order to respect this list > which is about dwm, please answer to me or to the awesome list[2][3]. > > Happy hacking, > Cheers, > > [1] http://awesome.naquadah.org > [2] [EMAIL PROTECTED] > [3] http://awesome.naquadah.org/community/ > > -- > Julien Danjou > // Λ̊ <[EMAIL PROTECTED]> http://julien.danjou.info > // 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD > "there's no stupid limit on its source size, we have features we want." That seems rather combative! Are you calling Anselm stupid? -- Jeremy O'Brien aka neutral_insomniac GPG key: 0xB1140FDB http://pohl.ececs.uc.edu/~jeremy/jeremy.asc Linux ambelina 2.6.23-rc3 ppc 7447A, altivec supported PowerBook5,8 GNU/Linux pgpCTqG68X0R0.pgp Description: PGP signature
[dwm] Announcing "awesome"
Hi everybody, With the approval of Anselm, I'd like to present to you a new project called "awesome"[1], a direct neighbour of dwm. awesome is, yet, another window manager, which is based on dwm source code. In contrast to dwm, it does not have any limit about its SLOC size. Consequently, it already includes some patches or ideas that people dropped around in master. Any feedback will be appreciated, but in order to respect this list which is about dwm, please answer to me or to the awesome list[2][3]. Happy hacking, Cheers, [1] http://awesome.naquadah.org [2] [EMAIL PROTECTED] [3] http://awesome.naquadah.org/community/ -- Julien Danjou // Λ̊ <[EMAIL PROTECTED]> http://julien.danjou.info // 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD
[dwm] Patches for hg tip (was Re: please test hg tip and lemme know any issues)
"Anselm R. Garbe" <[EMAIL PROTECTED]> writes: > I keep in mind testing the togglemax-patch, but please let me > know any issues in hg tip. Working nicely here. I haven't been able to crash it nor persuade it to behave strangely. The single dwm.c without any header files is indeed easier to work with. I ported both of my patches over to hg tip dwm (attached), removing the ncols = 0 and nrows = 0 cases in the process (as suggested by pancake), which simplified the code a bit. For my own use, I've also ported the fibonacci and monocle layouts which I use from time to time, and attached the combined patch which applies on top of my 'pertag' tree, in case it's of use to anybody. The code is slightly briefer in my copy of fibonacci but functionally identical. Cheers, Chris. diff -uNrp dwm.orig/config.h dwm.colstack/config.h --- dwm.orig/config.h 2007-09-19 12:42:52.0 +0100 +++ dwm.colstack/config.h 2007-09-19 13:07:55.0 +0100 @@ -29,6 +29,9 @@ Layout layouts[] = { }; #define RESIZEHINTSTrue/* False - respect size hints in tiled resizals */ #define MWFACT 0.6 /* master width factor [0.1 .. 0.9] */ +#define NMASTER1 /* clients in master area */ +#define NROWS 3 /* clients per column in stacking area */ +#define NCOLS 1 /* number of stacking area columns */ #define SNAP 32 /* snap pixel */ /* key definitions */ @@ -47,6 +50,12 @@ Key keys[] = { \ { MODKEY, XK_k, focusprev, NULL }, \ { MODKEY, XK_h, setmwfact, "-0.05" }, \ { MODKEY, XK_l, setmwfact, "+0.05" }, \ + { MODKEY|ShiftMask, XK_j, setnrows, "-1" }, \ + { MODKEY|ShiftMask, XK_k, setnrows, "+1" }, \ + { MODKEY|ControlMask, XK_j, setncols, "-1" }, \ + { MODKEY|ControlMask, XK_k, setncols, "+1" }, \ + { MODKEY|ShiftMask, XK_h, setnmaster, "-1" }, \ + { MODKEY|ShiftMask, XK_l, setnmaster, "+1" }, \ { MODKEY, XK_m, togglemax, NULL }, \ { MODKEY, XK_Return, zoom, NULL }, \ { MODKEY|ShiftMask, XK_space, togglefloating, NULL }, \ diff -uNrp dwm.orig/dwm.c dwm.colstack/dwm.c --- dwm.orig/dwm.c 2007-09-19 12:42:53.0 +0100 +++ dwm.colstack/dwm.c 2007-09-19 13:35:50.0 +0100 @@ -166,6 +166,9 @@ void scan(void); void setclientstate(Client *c, long state); void setlayout(const char *arg); void setmwfact(const char *arg); +void setncols(const char *arg); +void setnmaster(const char *arg); +void setnrows(const char *arg); void setup(void); void spawn(const char *arg); void tag(const char *arg); @@ -192,6 +195,7 @@ void zoom(const char *arg); /* variables */ char stext[256]; double mwfact; +unsigned int nmaster, nrows, ncols; int screen, sx, sy, sw, sh, wax, way, waw, wah; int (*xerrorxlib)(Display *, XErrorEvent *); unsigned int bh, bpos, ntags; @@ -1417,6 +1421,66 @@ setmwfact(const char *arg) { } void +setncols(const char *arg) { + int i; + if(!isarrange(tile)) + return; + if(!arg) + i = NCOLS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = ncols + atoi(arg); + if(i < 1 || waw * mwfact <= 2 * BORDERPX * i) + return; + ncols = i; + if(sel) + arrange(); + else + drawbar(); +} + +void +setnmaster(const char *arg) { + int i; + if(!isarrange(tile)) + return; + if(!arg) + i = NMASTER; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nmaster + atoi(arg); + if(i < 0 || wah <= 2 * BORDERPX * i) + return; + nmaster = i; + if(sel) + arrange(); + else + drawbar(); +} + +void +setnrows(const char *arg) { + int i; + if(!isarrange(tile)) + return; + if(!arg) + i = NROWS; + else if(arg[0] != '+' && arg[0] != '-') + i = atoi(arg); + else + i = nrows + atoi(arg); + if(i < 1 || wah <= 2 * BORDERPX * i) + return; + nrows = i; + if(sel) + arrange(); + else + drawbar(); +} + +void setup(void) { unsigned int i, j, mask; Window w; @@ -1481,6 +1545,9 @@ setup(void) { /* init layouts */ mwfact = MWFACT; + nmaster = NMASTER; + nrows = NROWS; + ncols = NCOLS; nlayouts = sizeof layouts / s