Best tiling window manager for Linux?
October 23, 2008 2:19 PM   Subscribe

Best tiling window manager for Linux?

I'm getting a new laptop and like the idea of of using a tiling window manager: minimal eye-candy, maximum keyboard control and screen real estate. (And, strange as it seems, I like the plain look of things like dzen and dmenu.)

Do you use one? Do you like it? I'm considering awesome, ratpoison, wmii, dwm, ion3, or xmonad.
posted by swift to Computers & Internet (12 answers total) 15 users marked this as a favorite
I'm familiar with exactly 0 of the window managers you list, but what's wrong with something like fvwm2. Stable, customizable, minimal.
posted by jefftang at 2:36 PM on October 23, 2008

I switched to OS X a year ago, I still miss ion3.
posted by aeighty at 3:28 PM on October 23, 2008

Best answer: I've messed with all the ones you've listed except for ion, and despite the barrier to entry xmonad is by far the best. It works better than the others with weird apps and situations, has amazing contrib extensions, like Xmonad.Prompt and Xmonad.Scratchpad, even integrates beautifully and easily with gnome if you want it to, and is perhaps the only one that has a fantastic and friendly community around it (freenode/#xmonad is full of helpful and friendly people that are happy to handhold noobs). It also has great documentation - once you figure out wtf it is saying - but it does trick you into writing Haskell, as the wm itself is a bunch of libraries, and your config file actually compiles to the window manager. With a bit of thought, I managed to get a good config without knowing any Haskell (and it is a weird experience to kind of look at other things and guess how you're supposed to say a thing, and have it workmost of the time!), and a few questions in #xmonad helped me understand some of the more cryptic aspects of the language.

That said, if you can't hang with xmonad, or are not inclined, awesome is definitely the next best. wmii has some issues that awesome addresses fairly well, and ratpoison, the OG tiling wm fails it at the classic problem of tiling wm's, badly behaved apps like Gimp.

P.S. If you're into Lisp, it couldn't hurt to look at stumpwm. But I have a hard time imagining it can beat xmonad. Also, Haskell is pretty cool and learning about it is good brain food.
posted by 31d1 at 3:29 PM on October 23, 2008 [2 favorites]

Also, the xmonad folks are working hard at making the barrier to entry lower. These days you can get a reasonable config going just by installing from a package manager, and there's an xmonad-lite project that aims to be more config file based, but to really trick things out you need to install ghc and start poking through docs. Typically, the xmonad user experience, is 1) ack im not installing ghc just for a wm 2) play with xmonad for a while 3) install ghc and hack it up cause it's suddenly completely worth it.
posted by 31d1 at 3:33 PM on October 23, 2008 [1 favorite]

I've used ion3 for years and years and love it. You can configure it to look very minimal (I've got all flat, solid tabs, no window or frame borders), it's stable, it's been around long enough to have a bunch of third-party stuff written for it if you want to get fancy, it's scriptable, it does what it says on the tin. And it does support floating (i.e. normal overlapping-style) windows for those occasions when they're handier or when an application just doesn't fit itself into the tiled window well.

This is not to knock any of the others, none of which I've used.
posted by enn at 3:57 PM on October 23, 2008

Response by poster: Just looking at their site, xmonad seems like the most baked (and friendly) of the dwm-derivatives, so it's great to hear it actually works. I hear a lot of people like ion3, but it seems like the author has a chip on his shoulder, and it's unclear how interested he is in continued development.
posted by swift at 4:36 PM on October 23, 2008

Best answer: I'm a longtime ratpoison user. (As such, so much as a status bar seems like too much eye candy for me.)

Ratpoison differs from the others you list in that it's centered around offering one giant window at a time instead of around tiling. You can split the screen and resize the windows manually as you see fit; with hooks and scripts, you could cajole tiling behavior out of it (and many ratpoison users have such set up for specific applications or combinations of applications). But if you want the dynamic tiling of the others, you'd do better with one of them. (Here's a way to deal with the GIMP; as 31d1 notes, the default behavior with the GIMP or other multi-window apps isn't that useful.)

Another difference is that ratpoison is driven by one or more escape keys. Most of the others want you to allocate a modkey to it, and everything is done by chording with that modkey. I've gotten used to ratpoison's approach, and the modkey approach annoys me. I've heard people say the exact opposite.

Ratpoison is mouse-agnostic to a fault -- if you have multiple frames on your screen, move the mouse pointer and click all you want. The apps respond, but Ratpoison doesn't interpret or act on these events, or change which frame has focus (unless the app asks the WM for focus in response to your action.) So you can be manipulating one app with the mouse while another still has keyboard focus.

Ratpoison is easy to hack, given that you can issue all WM commands and solicit all WM information with 'ratpoison -c', so you can write scripts to drive it in whatever language you want. You can extend xmonad in any language you want, as long as it's Haskell, likewise Ion3 and Lua. Dwm is C or nothing. Wmii's plan9 interface makes it as open to scripting as ratpoison; ruby-wmii runs with that. Awesome 3 is halfway there -- you can perform arbitrary extension in Lua, and it offers an awesome-client command that lets you issue commands to the WM, but not to solicit info from it. (It's been a couple of years since I've tried some of these, so I'll happily accept corrections if any of the above has been outdated.)

Here's a collection of Ratpoison scripts that give a good idea of what's possible.

Let me stress that I've been impressed by xmonad, wmii and awesome -- I'm talking so much about ratpoison because it's what I know. I keep meaning to give awesome a fair shot now that 3's out.

Here's some info with notes on pretty much every X window manager ever.

Whichever you choose, there's a fair chance it'll be incredibly frustrating at first. Give it a chance. There's a reason people love these WMs.
posted by Zed_Lopez at 5:00 PM on October 23, 2008 [1 favorite]

It looks like the consensus is xmonad, but I want to give a vote to awesomewm. It's derived from dwm, and aims to be easy to configure with less 'purist' tendencies. I've tried them all and it's the one I've settled on. Once you get the 'amazing bar' working it is pretty nice.
posted by traco at 6:13 PM on October 23, 2008 [1 favorite]

I've used dwm, wmii, xmonad, and ratpoison for several months each. In order of use...

ratpoison: I picked it up very quickly, since I've been using screen for almost a decade. Stable, easy to configure / script, and I was happy to go mouseless after using blackbox for several years. I stopped using it because it integrates very poorly with some programs (e.g. the gimp).

xmonad: I liked this one quite a bit, but I didn't know Haskell at the time. I want to use the same general interface (wm, editor, vcs, etc.) on all my computers, though, and I ran into problems with old ports of GHC on some hardware platforms. (Maybe this has been fixed.) Great interface, though. If you're quite comfortable with Haskell, probably the best choice. It's a very solid windowmanager.

wmii: The design to this is really interesting, using a filesystem ala plan9 for almost everything. I found it a little buggy (in ways that were too elusive to fix myself), and the way tags were shifting about meant I could never establish muscle memory. It has a lot of potential, but potential that I wasn't likely to use.

dwm: Dwm is very similar to xmonad, but written in C. C is far from my favorite language, but I have the source and a pretty simple config for it in my home dir mercurial repository. When I install on a new system, I clone the repo, run make, done. I have never had stability issues with dwm. The interface suits me fine, and I don't need to have Haskell bootstrapped before I can use X.

dwm and xmonad are both easily used without a mouse, but still easily accommodate programs that assume a non-tiled windowmanager.

I haven't used awesomewm, but it looks very closely related to dwm. (Patching dwm is easy.)

Also, keep in mind you can use dmenu and/or dzen with any of them. That's Unix for you. :) I use dmenu, but not dzen.
posted by trouserbat at 9:14 PM on October 23, 2008 [1 favorite]

Also, Zed is quite right about ratpoison using an escape key. Having all of my wm controls behind C-t kept me using ratpoison for a while, in spite of the small annoyances. The other wms can be set up to do this, but not without a fair amount of work.

I eventually figured out that the wm keybindings could be used without clobbering half of Emacs by adding shift. Now I just use alt-shift-c to close windows, in dwm.

If awesomewm is dwm without all the "you must compile the config yourself or you're not cool enough to use it" snobbery, then by all means, try that out.
posted by trouserbat at 9:25 PM on October 23, 2008 [1 favorite]

Response by poster: So after trying out mostly xmonad and awesome for a while, I've ended up using ... dwm.

xmonad is pretty easy to use, but for me sometimes X freezes while using Firefox. awesome seemed rather complex when I looked at it, but maybe I was just new to tiling at the time.

dwm is great -- it only does one thing, and it does it perfectly. Using it with dmenu and dzen2 adds a great launcher and menu bar as well. It's like driving your computer with a stick shift.

Also, I don't know what the big deal about customizing by re-compiling is. All I had to do was make some minor edits to a well-commented file, and "make clean install." (It's all in the README). And besides, most distros have a pre-compiled binary if you don't mind the default settings and keybindings.
posted by swift at 3:03 PM on November 11, 2008 [1 favorite]

I just came here by way of a "xmonad" search-engine whim.

Don't have much to say except that I use xmonad. Tiling WMs are great.

Not as great as the stick shift analogy though. I am tiling my hat onto the next display to the right, sir.
posted by krilli at 2:09 PM on October 12, 2009

« Older What is the best wedding planner certification?   |   What gifts should I give my cousins? Newer »
This thread is closed to new comments.