
Gwern Branwen
One idea I've always wondered about is a menubar based tiling WM. The user, say, middle-clicks (hardly anyone uses middle-click), and then a geometrical menu pops up along the lines of XMonad.Actions.GridSelect. In it are all the default operations - 'kill', 'refresh', 'sendMessage NextLayout', etc. The user left-clicks on one and voila.
If people don't use middle click, then how do they paste text in X11?
Other than that minor nitpick, this idea seems fairly interesting, I
sometimes want to be able to use my computer with only the mouse, rather
than only the keyboard.
* In theory if you wanted to make a menubar that worked with arbitrary keymaps, you'd need some sort of Show equivalent for functions, since you need to be able to have a textual equivalent to whatever crazy things people may do - how could you really foresee my binding of 'runOrRaise "amarok" (className =? "amarokapp")'? - which gets you into complex territory fast. But if you're serious about the default config, you could just write up a static [String]. Which would also let you use more newbie-friendly names: instead of 'spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\""' you could just have 'run Dmenu'.
This is easily solved by having keybindings be a tuple of a name and a function, the name being what you use for Show. Ideally, there'd be a typeclass or something for functions so people can skip the names if they don't use these features, and that would simply cripple this particular UI.