On Aug 28, 2008, at 1:12 PM, Maxim Vuets wrote:

The reason for the built-in status bar is simplicity. In theory it would be possible to externalize it, but then you would end up with adding some
kind of command interface to dwm to aim the mouse interaction from
the bar. In the end externalizing the bar won't really be a benefit, because
the modularized result will be more complex, and dwm might be
more complex.
Even if one considers a bar externalization as a shared object, which is loadable, this would introduce the need of a plugin API, which won't provide the same level of flexibility as hooking into the source code, which allows
you everything.

I like simplicity. I like simple applications. But few LOCs don't mean that
application is simple. It means only that it has few LOCs.
To be simple application must be simple in use, simple in extensioning,
simple in hacking, simple in configurating. Application can be small
but sucks and vice versa.

I think that mouse is not really important for dwm status bar.
So we can neglect of such feedback.
I can not agree we you that shared libraries and some ABI is so bad.
But agree that it is too heavy for such program as dwm. It is useless
here. On the other hand, extending via code patching is wierd.
Especially when you need to apply more than one patch.

You might enjoy reading this interview with Don Knuth:
        http://www.informit.com/articles/article.aspx?p=1193856
Basically, "re-editable" code is better than reusable code (to him).

In any case, an application can be: simple to extend, simple to hack, simple to configure (can configure without patching/recompiling). Pick two.

Why you trying to escape just two optional operations of nav.?
I'll try to explain my vision on an expamle.
You have such tags: www, mail, irc, im, dev.
The most time you spend on developing something.
But from time to time you want to check irc and mail, maybe serf smth.
And all the time you want to see your im client.
What you do? Untag www, mail, irc; tag dev; change layout; change
order of windows... ouch.
Now you have two workspaces/desktops: one for the Internet (irc, im,
www, mail), another one for a work (dev, im). The first has rstack layout
with corresponding master width and windows order. The second has
bstack layout with an editor in master area and two terminals on the
bottom: one is tagged as dev (for output, debug...), another one is
tagged as im. Now you use just one key to change between these
desktops. Each one is comfortable for its purposes.
No need to rearrange windows and so on.

What version of dwm are you using?

dwm has had two workspaces/desktops since I've been using it (admittedly not very long). Press MOD-Tab to switch between them. This patch to hg tip will get you one layout per workspace:

--- a/dwm.c     Wed Aug 27 12:52:44 2008 +0100
+++ b/dwm.c     Thu Aug 28 14:06:07 2008 -0700
@@ -1280,8 +1280,6 @@

 void
 setlayout(const Arg *arg) {
-       if(!arg || !arg->v || arg->v != lt[sellt])
-               sellt ^= 1;
        if(arg && arg->v)
                lt[sellt] = (Layout *)arg->v;
        if(sel)
@@ -1657,7 +1655,7 @@
 view(const Arg *arg) {
        if((arg->ui & TAGMASK) == tagset[seltags])
                return;
-       seltags ^= 1; /* toggle sel tagset */
+       sellt = seltags ^= 1; /* toggle sel tagset */
        if(arg->ui & TAGMASK)
                tagset[seltags] = arg->ui & TAGMASK;
        clearurgent();


Reply via email to