Practical tips when transitioning to xmonad?

I like the idea and concept of xmonad, however I still keep going back to gnome after an hour or so. This feels like when I first tried to learn vim, but I've gotten past the learning curve point and can't live without vim nowadays.

I'm sure the time will come for xmonad too, but I was wondering if current xmonad users can provide transitional tips?

FYI, I'm on dual monitors ( 19 inch and 17 inch ). Example of an issue I'm having while in this "transitional" stage:

How do you manage keeping the browser and other programs that are most commonly used in full screen mode, since by default I think it opens up in a small tile that takes up a portion of the screen? Do you just shortcut it to make it open full screen, or do you actually not maximize it? Or are there advanced methods through preferences in the conf file, making certain programs take up X space?


Solution 1:

Just like Vim there is often a lot of "config fu" that you can pick up from the webpages (definitely spend a few hours or so soaking up the various config file examples at xmonad.org, I think it is worth it), and the mailing list.

First of all, if you are happy with much of GNOME you can run xmonad inside GNOME. This is nice because you can use GNOME's panels and panel-based applications (network-manager is invaluable on my Ubuntu laptop). You also get the benefit of GNOME's theme manager for the UI widgets, which can keep things "pretty".

This page is useful to help you set this up:

http://haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome

As for "full-screen applications":

There are several approaches that you can mix and match until you find a setup that best works for you. In my case, I've set two of my workspaces Beta and Iota (I use greek letter names, but they may as well be named "Mail" and "Music") that default (on restart) to the Full layout, with most of my other workspaces defaulting to to the tiled layout of my choice. (I can always cycle the layouts as needed with the usual Mod+Space shortcut.) That way I know that when I open applications on either of those workspaces, they will get the full view. I tend to open my mail and browser on one (Beta) and my music player on the other (Iota), with other apps spread about the other workspaces. To make this easier I have a hook that, when I launch my media player or mail program, but not my browser, it will automatically move them to my standard workspace for them. (Sometimes I will open browser window tiled, for instance when I'm working on a webpage layout and want to have a dev-mode browser for quick previews.)

The last big tip I can give you is that the #xmonad channel on FreeNode can be a good place to get some gentle encouragement or useful help when you need it, as technical-oriented IRC channels tend to be.

Solution 2:

My constant favourite method to get into new environments is to do something with a deadline or so. In my case, I was trying Xmonad conveniently as I had to write some school report and it involved graphics and all kinds of applications. Because I was occupied, I didn't have time thinking of backing to Fluxbox. After the project was finished, I was left with Xmonad and clear ideas of its pros and cons. Simple pointless window shopping in a new WM usually won't cut it for me.

For the second issue of yours: as a former Fluxbox user, I had a steady set of fixed windows here and there: calendars, transparent terminals and so on. The browser and a few terminals had their places which I didn't move a lot. It works well with conventional layered WMs, but tiling WMs such as Xmonad have to work dynamic so static window thinking is something to get rid of. I do have a favourite position for my browser (left half of my right display) but I don't mind (anymore) if I should read some PDF and it displaces the browser.

My advice is to first live by the tiling WMs' conventions and after you're comfortable with moving windows and all, go on altering the system to suit your preferences. At first, I did really think it was a must to keep the browser at certain position at all times! When I had my project in the works and had no time to think about it, I realised that it wasn't a must after all. May or may not work with you.