And make XMonad more begginer friendly

If Newcomers like it

You got another user

With another point of view to contribute to the project

And get more name, jobs, etc :)

And some ranters :)

Anyway here goes some ideas that i spitted out in the xmonad channel, suggest, criticism help and such welcome

* Layout constructors:

  Layouts could export alongside their constructors, a constructor function that calls the latter with some default arguments, this allows to aliase more common used layouts and become friendlier with newcomers. Also is good that users don't invoke the "official layout constructor" from their configs so mantainers can change the arguments it takes without breaking compatibility.

  Other modules could use the same approach, for ex:

  defaultShellPrompt = shellPrompt defaultXPConfig

simpleDefaultConfig

  A module that provides an structure to configure XMonad by editing some hooks, instead of hoving to build them, usefull to make some non-default configs default in this module, like modkey, borders, avoidstrust, more friendlier managehook, with hooks for floats, moveTo, etc.

  Other configs can be based on simpleDefaultConfig providing some pre-feeded values on some hooks, usefull for statusbars i.e.: dzenStatusSimpleDefaultConfig, xmobarStatusSimpleDefaultConfig.

  Or better, simpleDefaultConfig could inherit some defaults from another Config like dzenStatusConfig, so you would pick the parts that suits you.

  This approach will give easier entry point to configs for newbies without loosing power, all normal config items would have to be available, these funcions will only provide helpers and shortcuts.

A GridSelect oriented program launcher:

  Inspired by "intelligent launchers" we could make an app launcher that shows its options arranged like a keyboard, inteligently ordered, so most used apps will be in the home row an continuing outside.

  Also I think that providing a "directional free" navigation to promp options would be good, maybe that when the prompt is showing options it could capture some keybinding that says, move to right, up, JKL, et. To make long lists more usable.

Lego Layouts

If we succed in extracting every repeated behaiviour from different layouts: i.e: respecting Hints, we could expand the targets that get that behaiviour, and also make a new way of constructing layouts by stacking a base one and adding modifiers, so each piece providing some Layout functionality or behaivour will be unique. DRY

As always these are from my mind, but try to spend 3 seconds on each and comment :)