

JJinuxLand: "xmonad exemplifies what I'd like to see more of in the Linux world" - dons
http://jjinux.blogspot.com/2009/11/linux-xmonad.html

======
daeken
I agree wholeheartedly, although I personally dislike xmonad. We need more
experimentation; we need lots of people trying out random ideas. Most new
ideas will fail, and even more implementations will fail, but the good ideas
will slowly rise to the top. If we don't see more failures than successes,
we're not stepping outside the comfort zone enough.

So I present a challenge: take a common piece of software/functionality that
you use and come up with a new approach. It doesn't have to be a good
approach, but it has to be different. Implementations aren't necessary here,
but they often help to turn a bad idea into a good one.

For example, I don't believe much has been done with tabbed browsing in the
past few years. It'd be nice to see a tiling window manager inside the
browser, with tabs acting as a sort of taskbar. Would this idea work well?
Doubtful, for most people at least. But who knows what idea might come from it
if it was implemented?

~~~
dons
> personally dislike xmonad

Interesting. I believe that is the first time I've heard someone say that.
Could you elaborate?

------
pavlov
The author holds xmonad as an example of "trying bold, new ideas in user
interface design".

I'm not convinced that a tiling window manager qualifies, because the
invention goes back some 30 years to Xerox PARC (where else). The Xerox Star
shipped in 1981, and a major feature of its GUI was that simultaneously open
application windows were automatically laid out so that they would not
overlap.

------
soytea
I've tried a couple tiling window managers (xmonad, awesome, dwm, and even
ratpoison) but I always end up using tmux. It works on most unix operating
systems so I can run it at work on OSX and at home on Ubuntu. I like having a
dedicated workspace / virtual desktop to run tmux full screen in a terminal so
it's there for when I need it. Oh and you don't even need to launch X to use
tmux. It just seems much more convenient to me.

~~~
pyre
> _Oh and you don't even need to launch X to use tmux_

Right, but you're assuming that everyone that uses a tiling window manager
does _everything_ on a console.

------
mapleoin
All of the things he mentions can be found in most of the popular window
managers. I fail to see how xmonad is revolutionary in these ways.

~~~
tumult
To me personally, the coolest thing about xmonad is that you can read the
entire source in just a few minutes and understand it all as well. It's just a
few hundred lines. You can then immediately start hacking on it.

~~~
gnosis
You can if you know Haskell. If you don't, good luck understanding it, much
less hacking it.

Don't get me wrong, I like xmonad, but not for the
understandability/hackability of its source (which is opaque and unhackable
for me, since I don't know Haskell).

I used xmonad for about a year, but then got progressively more frustrated as
my configuration file bloated out of control and got to the point where I
risked breaking it if I made non-trivial changes without extensive hand-
holding from people who knew Haskell.

Eventually, I was faced with the choice: learn Haskell, or move to a window
manager that used a simpler, actually understandable configuration file
syntax. The choice was easy, as I did not have the time to learn a language as
famously difficult as Haskell. So, I first moved to scrotwm and then (when I
found scrotwm wasn't flexible enough) to musca.

I've been exceedingly happy with my decision to switch. musca is not only much
simpler to configure and understand than xmonad, but is also much faster and
lighter. Check it out, if you like minimalist window managers.

~~~
dons
> but is also much faster and lighter

I bet its not faster (xmonad uses primarily O(1) structures, such as zippers,
for focus management). And 1000 lines of code.

Window managers sleep 98% of the time -- I'm almost certain you can't observe
computational overhead.

> when I found scrotwm wasn't flexible enough) to musca

That's the tension. Configurability needs a programming language. We chose
Haskell since its high level and safe.

~~~
gnosis
Well, whether or not it's actually faster, it sure feels orders of magnitude
faster.

xmonad may use only 1000 lines of code for the window manager itself, but
that's backed up by a rather large Haskell library (particularly when loading
lots of contributed code). I know the resident memory size of xmonad is
gigantic compared to musca. Manipulation of those large memory structures may
be relatively slow, even if you use efficient algorithms (particularly on
systems like my own, which use so much memory that some of my apps are swapped
out).

As for Haskell being high level and safe, I appreciate that. But it really
does me little good when I don't know Haskell. The musca window manager
doesn't require knowing Haskell, and I think it's just as flexible, and
certainly high level enough (you can use bash scripts, or really any language
you want to configure it) and safe enough for me not to have any issues with
it.

Sure, using Haskell might be better, if I knew Haskell. But I don't, and I'm
not going to learn it any time soon. So it's a moot point.

------
furtivefelon
I recently settled on XMonad as well for most of my development needs. i run
it under VMware Fusion, with xmonad and some tweaks to run less non-essential
background stuff, i manage to get by with just 128mb of ram dedicated to
vmware (usually it hovers around 30% ram used). Firefox is run in mac, so that
i will not be tempted to surf the web when in xmonad.

~~~
mcav
What kinds of apps do you use in xmonad?

~~~
steveklabnik
I use xmonad for everything, all the time.

------
ehsanul
XMonad is beyond hot, I recommend everyone to try it out. What I like best is
never having to leave the keyboard to manage windows - talk about efficient
window/workspace switching.

~~~
alnayyir
Frankly, in the kind of environment where xmonad would be most useful (work),
I have the least use for it. I simply don't fiddle with/change the windows my
FreeBSD box at work.

It does one thing: sit there with all the terminal/editor windows open. It
doesn't need to anything else.

For that matter, I purposely overlap and raise various windows in different
ways that would take forever to set up with a floating layer in xmonad because
I can't be bothered to learn the wm.

I might check out bluetile, that seems more promising. I just don't have the
need to move my windows around much.

You know what I _do_ need? A chromium package for FreeBSD. There's virtually
no other web browser for *BSD/Linux that is tolerable.

~~~
dons
> I might check out bluetile, that seems more promising.

More promising in what sense?

> "I purposely overlap and raise various windows in different ways"

I wonder if you could describe that workflow programmatically. Then you could
automate it ... as a number of the xmonad layouts do.

