
Hi, I was bothering some people on IRC and someone suggested me to send my opinions in an email, so here it goes: To clarify things: I love Xmonad, I admire much of it's simplicity in some ways and complexity in others (taling about code) but I think it fails in one main thing: communication. I'm relatively new to Xmonad and totally new to haskell, but when some of my co-workers show me Xmonad I fell in love with it at the moment, and I tried to learn everything I could about it. So I reviewed the hole contrib documentation. What was my first thinking? No screenshots of the results of the usage of the module (only the withIM LayoutModifier had one, my preferred contrib), overlapping and difficult to understand functionality and some real gems that make your day-to-day life with Xmonad worh it. I'm really amazed of how some really experienced Xmonad users are recently discovering UrgencyHook, I myself had encounter recently ShellPrompt and replaced dmenu for good. What was the difficult thing? finding them, and understanding their intended usage. UrgencyHook can tell you about Pidgin messages, Mutt mails, IRSSI messages, everything (unluckly it depends on extenal programs) and it's poor documented. When I found smart borders I thought: "why isn't it the default behaiviour for all layouts and make me explicitely add it", also found that perworkspace makes Xmonad so much powerfull that I think it should be a main feature selecting the layouts to apply to a workspace. Even Tabbing is hidden and Full is the preferred one, altough they deliver almost same funcionality only that Tabbed doesn't hide windows like Full does. When I told my coworkers of my discoveries (they were using xmonad for ages) it was really difficult to convince them to use withIM (or IM in that time) Layout for their Pidgin workspace (we all work connected to jabber channels), they found difficult to configure and were using the "remember windows placement" feature of xmonad. Short time after they've seen my buddy list aligned to the right of my screen (Reflect++ and Roman++ for an excellent doc in its module) they were all asking me how to get that. I did't understand a line of Haskell, it was only preety readable and logic to me. Then i saw SPJ (Simon Peyton Jones) using xmonad to do a great talk about Haskell, I fell in love instantly, but was very difficult using this new approach of doing things, then looked at some Haskell books, liked the type system and how you can abstract and describe the world with it, but I still can't code Haskell :). So, I think Xmonad is the most usefull thing installed on my machine right now besides vim, and I think that Xmonad should tell the world why we think it's like this. Awesome ... pleople are switching to awesome cause they provide widgets out of the box, I don't say that providing them is good, Xmonad should care about windows, but making easy to integrate a status bar will be great (I'm aware of the contrib efforts being done to do this), Xmonad should sail away from maintaining dwm compatibility (in keybindings) for ex, and making it own standards, provide more sane defaults for new users and hooks (or facilitators) to modify the config in the most-changed parts. So ... what could be done, first ... make XMonad findable to an average person, and tell him what he can do with it, show him the goodness of tiling WMs, preconfigured workspaces, known windows positions, screen usage maximization, low resource usage, etc. How to do this ? Pimp your XMonad is a good example, but aimed at people that already know XMonad, we should target new users, and show them the benefits of using Xmonad over the "pain" of learning/downloading (ghc is huge) a new language/compiler. Also make Xmonad gentler to newcomers (keeping haskell config file, but maybe providing some config hooks), more sane or complete defaults, maybe with config templates, xmonad.hs, xmonadDzen.hs, xmonadXmobar.hs, xmonadGnome, no need to import some config that they don't know what is doing or to copy/paste, give them tools to understand it and in the future tweak it and become interested in haskell, so they became future contributors of xmonad. In short, I think that Xmonad core should care about providing the best abstractions of everything a Tiled WM coul implement and some basic implementations. Also provide a common Library or Framework to contribute/extend it, and XMonadContrib should do the rest. Sorry for the ranting, I'm willing to help in everything that I can, bye!