[Xmonad] how amenable to making xmonad less minimalistic?
Donald Bruce Stewart
dons at cse.unsw.edu.au
Sun Apr 15 19:19:44 EDT 2007
droundy:
> Hi all,
>
> I've just gotten xmonad running (in a separate X server, for simplicity),
> and it looks like a nice start, and the code looks pretty elegant, but I'm
> wondering how amenable it's going to be to added complexity?
>
> I'm a current ion3 user who's mostly content, but a bit frustrated by its
> limitations, and the complexity of configuring it using lua. On the other
> hand, I've also gotten my setup working pretty much as I like now, so it's
> not really worthwhile to switch.
>
> The features I most like in ion3 that are missing in xmonad are the (very
> crude) ability to configure the layout based on the windows themselves and
> the tabs. And what I *really* like (which took a fair amount of sweat and
> pain) is the ability to set up a single command that prompts me for a
> directory, and then creates a new workspace with the layout I want, and in
> it launches several programs (typically an emacs, a couple of terminals and
> an xclock, but only one terminal on my laptop), with the chosen directory
> set as the working directory for each program, and any future programs
> launched in that workspace also has the same working directory.
Wow. That sounds complex/fun :-)
> All of this would be much easier to code in Haskell, provided the framework
> is there. So I'm just wondering if there will be hooks to provide some of
Right. I think this is probably how we proceed. xmonad acts as a
super-clean, EDSL-ish dwm clone, with a proper api exposed for arbtirary
extensions.
Then we get both a simple, minimal core. And users can add arbtirarily
bloat^h^h^h^hclever extensions ;-)
> this. LayoutDesc, for example, seems to be written in a sufficiently
> minimalistic way that adding a new layout would seem somewhat like
> surgery. I imagine we could have a design something like
>
> data LayoutDesc = LayoutDesc { !layout :: Rectangle -> [Window]
> -> [(Window, Rectangle)] }
>
> which would have the advantage of allowing commands to introduce arbitrary
> bindings. The catch is that we've lost the ability to tune the
> tileFraction, so I've not come up with a real solution. But I'd like to be
> able to play with new layouts without hacking directly in Operations.hs,
Yes. I think this is a goal: users should not need to modify
Operations.hs, they should just be EDSL stuff, and default dwm bindings.
> and we really shouldn't need to add new parameters to LayoutDesc for every
> degree of freedom we might want to give our layout. i.e. there's got to be
> a better way!
>
> My first goal (but not most important) would be to ensure that my xclocks
> always remain square. This would avoid much of the insanity that comes
> with the current inflexible layout of xmonad (i.e. either the xclock takes
> up much of the screen and is very distorted, or all but one of my windows
> is a small square of wasted space).
Ok. First goal is to try to add a layout purely in Config.hs I think.
That'll tell us what needs to be exposed.
-- Don
More information about the Xmonad
mailing list