Xmonad 0.9 released The light, reliable, extensible tiling window manager
xmonad.wordpress.com
xmonad.wordpress.com
Are you (like me) an Emacs user? You want to remap the Xmonad modifier-key (default is on left Alt a.k.a. Meta). Here is my solution:
xmodmap -e "clear Mod3"
xmodmap -e "clear Lock"
xmodmap -e "add Mod3 = Caps_Lock"
xmonad
taken from my ~/.xsession file - this remaps the "Caps Lock" key
as a "Mod3 key".My ~/.xmonad/xmonad.hs looks like this:
import XMonad
main = xmonad defaultConfig {
modMask = mod3Mask
, terminal = "xterm"
}
Now I can use Caps Lock as Xmonad modifier key and Ctrl/Meta as I'm used to for Emacs (note that I have a PC 102 keyboard - if you have a keyboard with "Windows"-key you might use this key as modifier key instead and perhaps remap Caps Lock as your Control key...).stumpwm isn't bad though just xmonad is really nice when you have a decent modifier key available.
But, that's just my opinion.
Personally I find I get increased productivity out of not constantly fiddling with window placement.
Sure, you can do that. But then you also have to take the time to understand THAT config (which, isn't even optimized for _YOU_, to begin with) and get USED to that . . .
>I agree that at first it seems like it's going to be a huge hassle to setup but it's really not that bad after you've done it once. You also have to invest time in understanding how the config goes, and have a bit of experience with Haskell, and Xmonad itself, to even create a config that really is good for you.
Maybe twm is something for me, maybe it isn't. I really don't know - because I only gave it one try, and quickly gave up (because I was having some problems with it, and wasn't willing at that time to set aside time to resolve those problems).
Also, stop calling tiling window managers "twm". "twm" is a specific window manager that comes with X. (Now there's a hard-to-use window manager.)
Finally, what problems were you having? If you just didn't like it, say so.
Currently my xmonad.hs looks like this:
import XMonad
import XMonad.Config.Gnome
main = xmonad gnomeConfig
{ modMask = mod4Mask
}
Works perfectly for me, no hassle required.Sometimes HN makes me sad.
On the other hand, there are things, that really aren't going to work just out of the box and are hard to configure. Xmonad has quite a different behaviour than Gnome, and sometimes different from what usual desktop app expect. It might be necessary to create a specific settings for a single application, sometimes. But that's what makes it beneficial. If it were just another bad copy of metacity or kwin-like window manager, without adequate support of EWMH and stuff like it, which is the case of many and many X11 WMs, then it would be really worthless.
Yeah, this comment is kind of like that. Most "modern" windowmanagers are much more about making the desktop pretty than making it usable. Me, I'm happily still running fvwm2 (though I use XMonad every once in a while), and not only does it not waste cycles on things I'm not looking at, it is configurable quickly and easily to an extent that the mainstream Gnome WMs have a hard time touching. XMonad takes that a step further by allowing configuration directly in Haskell (in my perfect world fvwm2 would use guile, but I'm not really complaining).
When you want to improve your efficiency at repetitive tasks or basic interactions with your computer, dropping relatively simple "Just Work" solutions in favor of more flexible options makes complete sense. Arguing against a meager time investment to make your UI yours strikes me as rather wrongheaded.
I have spent a bit of time configuring Xmonad, but the configuration has lasted me for 2+ years and has saved me an infinite amount of frustration. I used Windows for a while at work, and the constant interaction with the mouse makes my hand hurt. With Xmonad, I never have to use the mouse. (I use it for casual web browsing, and whatnot, but I never need it to do real work.)
I have also wasted a lot of time configuring Emacs -- my .emacs and support files are more than 2000 lines long. But everything I've spent time on has eliminated small bits of frustration during my work (and play), so even if I can't justify the time savings, I can enjoy life more. Since you eventually die, I think it's worth enjoying life.
Xmonad makes my life similarly enjoyable.
The only thing that bothers me about Xmonad is that there is no "instance Monad X" in the source code -- Monad is automatically derived on the X type.
I just accept that there are some things that need a mouse, and use xpdf to read pdfs.
Either way, we'd certainly love to know more, since this has never been reported before.
(Example of software without a test suite: Emacs. No tests anywhere; not for the byte compiler, not for the memory allocator, nowhere. I am amazed it works at all.)
As I remember it, with ion you basically created your own layout manually. You'd make horizontal or vertical splits to divide up your workspace and then manually move windows around in to the resulting frames. It worked brilliantly: with a few keystrokes you could get exactly the windows you wanted in the order you wanted.
xmonad manages the layout for you, you don't have to do it manually. This means that when you create a new window xmonad automatically creates a new frame for it. To contrast, ion would add the window as a new tab of the current frame. If you wanted a new frame in ion then you'd have to create it.
The automatic layouts of xmonad are what make it so interesting, but you do need to spend some time getting them set up for the way you work. xmonad is without a doubt the most customisable window manager ever (which is both a blessing and a curse).
xmonad also works much better with other software than ion. This is a reflection of the developers behind each window manager. The ion developer had very strong opinions about everything and told anything he didn't like (like anti-aliased fonts, automake, GNOME, etc.) to f'ck off. The xmonad team are super-friendly and play well with others. xmonad has great GNOME support, for example.
I think I still prefer ion's way of working, but I strongly suspect that it's possible to duplicate it in xmonad, I just haven't done it yet. Maybe now that 0.9 is out I'll review my xmonad configuration.
1. They mention "Gnome compatibility" and "KDE compatibility" on their page. Why? I thought this window manager is supposed to be used instead of gnome/KDE, no?
2. On some screenshots you can clearly see overlapping windows, i.e. not all of them are always tiled?
Thanks!
You can do that if you want to, and most choose to. But there's good reason to not to:
I, for example, prefer not to spend a couple hours setting up dzen or xmobar in all their multifarious complexity & ability, getting the features right, setting up the colors to match my current GTK theme, etc. when I could just continue to use Gnome status-bar. (Gnome may have its issues, but I have no problem with the status bar.) Not to mention that running inside a Gnome session means you get a decent window manager, but also you get all the stuff Gnome usually does like printer support or device management. You could figure out how to do that independent of Gnome, but I don't consider that a good use of time.
> 2. On some screenshots you can clearly see overlapping windows, i.e. not all of them are always tiled?
You mean the floating layer? Windows are either tiled, or floating; floating is for things like Firefox dialogues which don't make sense to push into the tiled arrangement.
Wikipedia: http://en.wikipedia.org/wiki/Stumpwm
Video: http://www.vimeo.com/1088321
My current setup works good enough for now though; I'm pretty much working in "modes"; stay pretty focused on isolated tasks (either designing stuff in PhotoShop and Illustrator, watching a movie or coding in vim and running tests in a terminal .. alas, I have to switch to a browser to check stuff every once in a while).
EDIT: Added a quotation mark.
I hear when you go the other way, Windows windows appear as windows on your Linux desktop. Sounds cool.