
Hello xmonad users, this is my first post to this list after several weeks of lurking around. I switched to xmonad after being a long time ion3 user. A friend of mine showed me xmonad, and since I wanted to give functional programming a try, I though I could give xmonad a try, too. Needless to say that I fell in love with it easily and fast. ;-) I followed this - and the other suggestion thread - with quiet some interest. So I thought I step right into the discussion. :-) [...]
Traditional UI's aim to be intuitive to non-experts and, in doing so, completely forget to provide the functionality that is needed for efficient computer use once one is beyond the learning stage.
I have to disagree here. What we define as "intuition" is often just some kind of "trained knowledge": People have to learn how to use the first GUI, regardless of how it works. In the future they expect other GUIs to work in the same way, and because they don't need to think about it, they consider it to be "intuitive". This is a rather complex topic and might better be branched of into another thread. I'm doing all kind of "computer support" for what seems to be ages, and I just recently stopped supporting my friends and families with their windows machines. Some of them got a windows pc because they never thought about what system might suit them best. They got their windows because their friends use windows. During these "support" sessions, that regularly meant to show them how to use their computer, sometimes repeatedly talking about the same things over and over again, I reckoned that there is no such thing as "intuition" in regard to computers. And, what is even more important when it comes to xmonad: People seem to have problems with the concept of resizable windows at all. This is why I think that basically a tiling window manager like xmonad is more suitable for those people than a traditional one. Most people maximize a window the instance it pops up. What's worse, there are many computer users out there who have problems with the concepts of switching windows, closing the entire application every time instead. Workspaces seem to be a better approach, but I have to admit that I never actively introduced them to my people, except for my wife, who seems to use them sometimes. This means that xmonads tiling approach is a cool thing, and I hope that it might be the default window manager on some Linux or BSD distribution in the future, maybe bundled with GNOME or KDE. That might be in the long run, thou... Additionally in my experience most novice users are overwhelmed by all the options and applications offered by their operating system. So, the reduction of visible features as done by xmonad is a good thing and probably reduces the fear users might have during their first time with a system. For example, most people only need a Web browser, some office, some software to store and download their digital images, email and probably a calendar software. So I started to use a Linux distribution with xfce, and only placed buttons for the above mentioned software titles on screen. This reduces the need for menus, and for xmonad would mean that an easy to use application launcher is a good choice. One that probably handles shutdown, hibernate and sleep, too. When it comes to features and options, I think that a "layered" approach might be a good idea: Start with a basic configuration that should be suitable for most users, and offer a central location where to look for additional options and features. (Microsoft tried something the other way round with their newer versions of Office, but IMO failed miserably. Options disappear without the user noticing or being told, so it is as if they never existed.) So, xmonad could come with some workspaces enabled, one for example being configured as gridIM and the proper roster configuration. Yes, this would mean that it would be cool to have xmonad 1. figure out that there is an IM installed, and 2. configure a workspace correctly. Well, it mustn't be xmonad, some helper application to create the configuration would be an option, too. So, in case a user would like to use additional layouts, he could simply activate some, including a key combination for switching the layouts. This could be extended to other things with regard to hooks, window placement policies, etc. I see three big tasks to make xmonad suitable for "non power users": * A "library" would be great, listing "misbehaving" software (doesn't work nicely with tiling) as well as information about applications in general. For example to make the most of gridIM/withIM one has to know how to put the roster in the correct place. For xmonad being used by novice users, this has to be done in advance so that there's no need for the user to investigate. During my times with ion3 I configured a workspace for the gimp that took care of every window automatically. I placed most of them based on their size, and using tabbing I was able to switch between them. This helped a lot. I reckon that it would be great to such a specialized layout to appear automatically when needed, e.g. being created when gimps windows are added to the window stack. * a configuration has to be determined that can be used as a start. Maybe not only one configuration but several, so that the user can switch between them, getting an impression of what xmonad can do. If these configurations consists of different modules it would be possible for the user to create his/her first own configuration based on the different modules. * There's probably the need for a GUI the user can call to configure xmonad and all acompanied tools. I'm really a novice haskell programmer (in fact I wouldn't call it "programming", I'm working in chapter 4 of RWH), but from what I've seen so far xmonad.hs is a good candidate to being generated automatically. And the contrib library adds to this, of course... Cheers, Christian