Re: [dwm] dwm: request to discuss

From: Donald Chai <>
Date: Thu, 28 Aug 2008 14:16:03 -0700

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:
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 @@

  setlayout(const Arg *arg) {
- if(!arg || !arg->v || arg->v != lt[sellt])
- sellt ^= 1;
         if(arg && arg->v)
                 lt[sellt] = (Layout *)arg->v;
@@ -1657,7 +1655,7 @@
  view(const Arg *arg) {
         if((arg->ui & TAGMASK) == tagset[seltags])
- seltags ^= 1; /* toggle sel tagset */
+ sellt = seltags ^= 1; /* toggle sel tagset */
         if(arg->ui & TAGMASK)
                 tagset[seltags] = arg->ui & TAGMASK;
Received on Thu Aug 28 2008 - 21:16:03 UTC

This archive was generated by hypermail 2.2.0 : Thu Aug 28 2008 - 21:24:04 UTC