Lol, is this thread a joke! if now i'm willing to put all can I do to help you in your projects, I was trying to go in the same direction but for XMonad being more "open" to newcomers, nothing more.

bye!

On Wed, Apr 8, 2009 at 2:43 PM, Gwern Branwen <gwern0@gmail.com> wrote:
On Wed, Apr 8, 2009 at 12:23 PM, Jan Vornberger <Jan.Vornberger@informatik.uni-oldenburg.de> wrote:
Hello,

my name is Jan Vornberger and I'm a student at the University of
Oldenburg (Germany). I would like to introduce myself and the project
that I will be working on for the next semester.

As part of my studies I have to work on a semester-long project. I
decided to work on the question, how tiling window managers can be made
more 'beginner-friendly' and how the barrier to entry can be lowered.
I have decided to use XMonad as a basis for implementing my ideas.
Therefore I wanted to introduce myself, as I will probably be asking a
question here and there in the future. :-)

For those who are interested, here is a rough sketch on what I have in
mind for my project: My goal is to create a modern tiling window manager
that can be productively used with virtually no training, meaning most
core functionality needs to be accessible in an intuitive way or drawing
from well-known conventions in more conventional window managers.
My target user is someone who wants to give tiling window managers a
try, but doesn't want to learn keyboard commands (at least not in the
beginning), read a detailed manual or write any sort of configuration
file.

I'm planning to decide on a somewhat fixed configuration of XMonad,
probably in combination with Gnome as a DE, and then trying to make this
functionality available via mouse commands that - hopefully - will be
easy to pick up.

I also want to completely rework the whole floating layer thing, as it
seems to me to be a fairly foreing concept for a newcomer and it's
awkward to use. My current idea is to instead use a floating layout
algorithm, that could work similiar to a conventional window manager. It
could even be set as the default layout algorithm. That way, the WM
could almost be a 'drop-in' replacement for - let's say Metacity -
greeting the user with the familiar concept of manipulating windows and
then leading him to the tiling paradigm once he switches the layout.

I do believe that eventually the keyboard is a more effective way to
control the WM, so I will also investigate the possibility of some kind
of help system, that can point out how - for example - the last action,
the user did, can be done with keyboard commands instead. Alternatively
tooltips could also be used to display key bindings.
...

That's it, the project in a nutshell. Any thoughts, pointers, related
ideas, doubts or comments are most welcome. :-)

Cheers!

Jan

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.

Further refinements: the menu could be shaped like some of the funky HCI designs (such as the pie ones, or using hyperbolic shrinking); could be sorted by frequency of use; each item could have in very small text the keybound equivalent ('M-Space') - kind of like how Emacs will echo the keybinding of a menu-item if you select it the hard way.

And of course this would be a focus-follows-mouse setup. The nice thing about this is that I think it's doable by one person in a semester (really, the hardest part is stealing the GUI code from GridSelect and making it mouse-enabled*), and should be dead simple for people new to the tiling paradigm to learn. Just middle-click and pick what sounds right. The menubar makes 'visible' the 'invisible'.

* 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'.

--
gwern
_______________________________________________
xmonad mailing list
xmonad@haskell.org
http://www.haskell.org/mailman/listinfo/xmonad