the future of xmonad...

Hi, I just wanted to stop by and say thanks for your great effort. I discovered XMonad a couple of days ago during an upgrade of my aging system. I used to run Ion3, that is the expression of a given philosophy regarding usability, and I'm planning to switch to XMonad (I'm still in the progress of learning and customizing it, and it is going to take some time, since I'm a bit lazy recently). I've been impressed with your design decisions (Don, please keep on blogging on that, you promised a lot in your first post, and I'll be keeping an eye on you!). Reading your code is quite of a hell of a learning experience for me. I'd like to help, but I'm absolutely new to X Window programming - and, yes, XMonad is quite an incentive to study. I thought about making the source code haddock compatible (it could be useful for new comers like me). Do you think that could be useful? I'd like to add support for hs-plugins (I love and use a lot the lua prompt in Ion3, and I've been dreaming about having an interactive Haskell prompt in my WM), but unfortunately hs-plugins does not work with ghc-6.6.1 (I've just upgraded and built a lot of knew exciting libraries, and I do not want to downgrade back to ghc-6.4.2. Don, could you help me with that? ;-). I'd like to start studying a tabbed layout as soon as I'll have a better understanding of the code base. I must confess that by reading the XMonad site though, I had the slight impression that what you are actually trying do, your main goal, is to prove that Haskell, and its tool chain, allows the rapid development of the highest quality of code. This is not going to be a problem, I'd like to see people attracted to Haskell because of the possibility to write real world (I know, there's a book coming...:-), useful applications. This is my own experience after all. But I'm watching for a different WM because the writer of my previous one came to think that people who patch it are infringing its trade mark, decided to change license and started threatening legal actions against community web sites and to distribute the WM as proprietary software...;-) Thanks for your code. Really. Ciao Andrea

On Sat, Jun 09, 2007 at 07:57:10PM +0200, Andrea Rossato wrote:
Hi,
I just wanted to stop by and say thanks for your great effort.
I discovered XMonad a couple of days ago during an upgrade of my aging system. I used to run Ion3, that is the expression of a given philosophy regarding usability, and I'm planning to switch to XMonad (I'm still in the progress of learning and customizing it, and it is going to take some time, since I'm a bit lazy recently).
I've been impressed with your design decisions (Don, please keep on blogging on that, you promised a lot in your first post, and I'll be keeping an eye on you!). Reading your code is quite of a hell of a learning experience for me.
I'd like to help, but I'm absolutely new to X Window programming - and, yes, XMonad is quite an incentive to study. I thought about making the source code haddock compatible (it could be useful for new comers like me). Do you think that could be useful?
It already is designed for haddock: -- | manage. Add a new window to be managed in the current workspace. -- Bring it into focus. -- -- Whether the window is already managed, or not, it is mapped, has its -- border set, and its event mask set. -- Personally, I'd like to see xmonad turned into .lhs, triply commented, and fed through lhs2TeX :)
I'd like to add support for hs-plugins (I love and use a lot the lua prompt in Ion3, and I've been dreaming about having an interactive Haskell prompt in my WM), but unfortunately hs-plugins does not work with ghc-6.6.1 (I've just upgraded and built a lot of knew exciting libraries, and I do not want to downgrade back to ghc-6.4.2. Don, could you help me with that? ;-). I'd like to start studying a tabbed layout as soon as I'll have a better understanding of the code base.
The darcs version of hs-plugins supports GHC 6.6.0, which as you might surmise from the version number supports most of the same features.
I must confess that by reading the XMonad site though, I had the slight impression that what you are actually trying do, your main goal, is to prove that Haskell, and its tool chain, allows the rapid development of the highest quality of code. This is not going to be a problem, I'd like to see people attracted to Haskell because of the possibility to write real world (I know, there's a book coming...:-), useful applications. This is my own experience after all.
But I'm watching for a different WM because the writer of my previous one came to think that people who patch it are infringing its trade mark, decided to change license and started threatening legal actions against community web sites and to distribute the WM as proprietary software...;-)
Haha. I switched from ion3 because it was too much work to keep the panes in a sane configuration...
Thanks for your code. Really.
Stefan

Hi Andrea, You aren't the only refugee from ion3 here. There's me and at least one more (whose name escapes me). But almost all of us have no X experience. I've been hacking xmonad a bit, but really shouldn't be. This morning I was seeing about starting in on a tabbed layout. The trouble I'm running into is that xmonad currently has no code that involves drawing to the screen, so there's no examples to modify! The other trouble is that it seems like we'd need quite a bit of infrastructure to support drawing on the screen. At a minimum I think we'd need a layout to be able to create "tab" windows and clean them up later, which will mean that the layout needs to be notified when you switch layouts so it can delete the tabs, or at least hide them. And some way to define redraw functions would be needed as well. :( The core xmonad developers (which doesn't include me) aren't (so far as I can tell) ion3 refugees, and don't have the same desired features. But they do seem quite friendly to the idea of making xmonad extensible, and for anything that can be done in XMonadContrib, we seem to be totally open. I'm also keen on hs-plugins support. In principle, it's not considered objectionable, so far as I can tell, but dons thinks hs-plugins is too heavyweight for xmonad (paraphrasing from memory). I'd say that xmonad source is pretty darn easy to modify, and small enough that it doesn't require haddock. But I also doubt haddock patches would be rejected. David

On Sat, Jun 09, 2007 at 11:17:43AM -0700, David Roundy wrote:
The core xmonad developers (which doesn't include me) aren't (so far as I can tell) ion3 refugees, and don't have the same desired features. But they do seem quite friendly to the idea of making xmonad extensible, and for anything that can be done in XMonadContrib, we seem to be totally open.
well, as I said I do not master XMonad's code very well, but I have the feeling that the design allows a lot of extensibility. The API is simple and clear, and with gaps you can do a lot also with external programs. I discovered this HGL library recently. I got to know some of the projects of the core developers and I think XMonad can be a good choice. Moreover the code is short and one can come to understand it. I'm confident on this.
I'm also keen on hs-plugins support. In principle, it's not considered objectionable, so far as I can tell, but dons thinks hs-plugins is too heavyweight for xmonad (paraphrasing from memory).
I've read something like that, and I agree. It is not a core requirement for a WM, in my opinion. Still I think it can be done by just writing a very small contrib module. It's just a matter of editing a bit XMonadContrib.Commands...;-)
I'd say that xmonad source is pretty darn easy to modify, and small enough that it doesn't require haddock. But I also doubt haddock patches would be rejected.
Haddock's output is better than grep, in my opinion at least. All the best. Andrea

droundy:
Hi Andrea,
You aren't the only refugee from ion3 here. There's me and at least one
For what its worth, I used ion for about 3 years, wmii for 6 months, dwm for 6 months, and xmonad for the last 3.
more (whose name escapes me). But almost all of us have no X experience.
Quite tuue.
I've been hacking xmonad a bit, but really shouldn't be. This morning I was seeing about starting in on a tabbed layout. The trouble I'm running into is that xmonad currently has no code that involves drawing to the screen, so there's no examples to modify! The other trouble is that it seems like we'd need quite a bit of infrastructure to support drawing on
Hmm yes, so contrib modules that do decorations -- we'd need to work out how to do that. The best place to start woudl be to look at ion or wmii, I suspect, to find out the X calls to make, and transliterate t code.
the screen. At a minimum I think we'd need a layout to be able to create "tab" windows and clean them up later, which will mean that the layout needs to be notified when you switch layouts so it can delete the tabs, or at least hide them. And some way to define redraw functions would be needed as well. :(
Hmm. yes.
The core xmonad developers (which doesn't include me) aren't (so far as I can tell) ion3 refugees, and don't have the same desired features. But
Well, I think we're all ion refugees (?), though having wandered over to wmii/dwm for a while.
they do seem quite friendly to the idea of making xmonad extensible, and for anything that can be done in XMonadContrib, we seem to be totally open.
Definitely. Having a single, centralised library of extensions will likely be instrumental in helping build up the user community.
I'm also keen on hs-plugins support. In principle, it's not considered objectionable, so far as I can tell, but dons thinks hs-plugins is too heavyweight for xmonad (paraphrasing from memory).
Right. And we get the same functionality with state serialisation anyway. *But* nothing's to stop people from doing a module loader as a contrib extension!
I'd say that xmonad source is pretty darn easy to modify, and small enough that it doesn't require haddock. But I also doubt haddock patches would be rejected.
And its haddockised, just not generated as such, yet. -- Don

On Sun, Jun 10, 2007 at 01:21:09PM +1000, Donald Bruce Stewart wrote:
I've been hacking xmonad a bit, but really shouldn't be. This morning I was seeing about starting in on a tabbed layout. The trouble I'm running into is that xmonad currently has no code that involves drawing to the screen, so there's no examples to modify! The other trouble is that it seems like we'd need quite a bit of infrastructure to support drawing on
Hmm yes, so contrib modules that do decorations -- we'd need to work out how to do that. The best place to start woudl be to look at ion or wmii, I suspect, to find out the X calls to make, and transliterate t code.
It doesn't need to be specific to decorations per se. For instance, you can do decorations using a event dispatch system and a means of notifying when to take down the decorations; such as my +14 line patch (which provides an extensible list of event hooks and a refresh notify), or Janssen's proposal to give Setup and Teardown and Events as layout messages. (shameless advertizing) I think my approach is better because it can be used by non-layout code easily. For instance a root menu (which must be in the same process that does the grab due to X protocol limitations) could be done. Stefan

On Sat, 9 Jun 2007 19:57:10 +0200
Andrea Rossato
Hi,
I just wanted to stop by and say thanks for your great effort.
I discovered XMonad a couple of days ago during an upgrade of my aging system. I used to run Ion3, that is the expression of a given philosophy regarding usability, and I'm planning to switch to XMonad (I'm still in the progress of learning and customizing it, and it is going to take some time, since I'm a bit lazy recently).
I've been impressed with your design decisions (Don, please keep on blogging on that, you promised a lot in your first post, and I'll be keeping an eye on you!). Reading your code is quite of a hell of a learning experience for me.
I'd like to help, but I'm absolutely new to X Window programming - and, yes, XMonad is quite an incentive to study. I thought about making the source code haddock compatible (it could be useful for new comers like me). Do you think that could be useful?
Yes! We already comment most of our functions, it should just be a matter of adding a | here and there.
I'd like to add support for hs-plugins (I love and use a lot the lua prompt in Ion3, and I've been dreaming about having an interactive Haskell prompt in my WM), but unfortunately hs-plugins does not work with ghc-6.6.1 (I've just upgraded and built a lot of knew exciting libraries, and I do not want to downgrade back to ghc-6.4.2. Don, could you help me with that? ;-). I'd like to start studying a tabbed layout as soon as I'll have a better understanding of the code base.
We don't plan to add any hs-plugins functionality at this time -- mainly for simplicity's sake. Of course, if this is achievable in a contrib module, go right ahead! Tabs are another thing that don't belong in the core -- but we'd like to make xmonad's layout system powerful enough to implement it as a contrib module. Please let us know when you stumble over limitations of the layout system. Cheers, Spencer Janssen
I must confess that by reading the XMonad site though, I had the slight impression that what you are actually trying do, your main goal, is to prove that Haskell, and its tool chain, allows the rapid development of the highest quality of code. This is not going to be a problem, I'd like to see people attracted to Haskell because of the possibility to write real world (I know, there's a book coming...:-), useful applications. This is my own experience after all.
But I'm watching for a different WM because the writer of my previous one came to think that people who patch it are infringing its trade mark, decided to change license and started threatening legal actions against community web sites and to distribute the WM as proprietary software...;-)
Thanks for your code. Really. Ciao
Andrea _______________________________________________ Xmonad mailing list Xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

On Sat, Jun 09, 2007 at 01:24:22PM -0500, Spencer Janssen wrote:
On Sat, 9 Jun 2007 19:57:10 +0200 Yes! We already comment most of our functions, it should just be a matter of adding a | here and there.
Ok. I'll start doing that on a regular basis. Hope to submit patches as soon as possible.
We don't plan to add any hs-plugins functionality at this time -- mainly for simplicity's sake. Of course, if this is achievable in a contrib module, go right ahead!
This is exactly what I was thinking to do, a contrib module. I love the design especially for this possibility.
Tabs are another thing that don't belong in the core -- but we'd like to make xmonad's layout system powerful enough to implement it as a contrib module. Please let us know when you stumble over limitations of the layout system.
The same here. The ability to design layouts is what makes XMonad very promising in my view. All the best. Andrea

mailing_list:
On Sat, Jun 09, 2007 at 01:24:22PM -0500, Spencer Janssen wrote:
On Sat, 9 Jun 2007 19:57:10 +0200 Yes! We already comment most of our functions, it should just be a matter of adding a | here and there.
Ok. I'll start doing that on a regular basis. Hope to submit patches as soon as possible.
We don't plan to add any hs-plugins functionality at this time -- mainly for simplicity's sake. Of course, if this is achievable in a contrib module, go right ahead!
This is exactly what I was thinking to do, a contrib module. I love the design especially for this possibility.
Tabs are another thing that don't belong in the core -- but we'd like to make xmonad's layout system powerful enough to implement it as a contrib module. Please let us know when you stumble over limitations of the layout system.
The same here. The ability to design layouts is what makes XMonad very promising in my view.
By the way, I've expanded the page described the alternative layout algorithms in the contrib module. http://xmonad.org/contrib.html includes screenshots of the circle , overlapping layout style and of the new floating layer support. Also, I've done more work the last couple of days on serialising the internal state to stdout (logging = True). There's a tiny C program in the contrib scripts/ dir that will parse this format, and print a useful workspace summary to be used by dzen. -- Don

mailing_list:
I'd like to add support for hs-plugins (I love and use a lot the lua prompt in Ion3, and I've been dreaming about having an interactive Haskell prompt in my WM), but unfortunately hs-plugins does not work with ghc-6.6.1 (I've just upgraded and built a lot of knew exciting libraries, and I do not want to downgrade back to ghc-6.4.2. Don, could you help me with that? ;-). I'd like to start studying a tabbed layout as soon as I'll have a better understanding of the code base.
I think, regarding tabbing, we should aim to ensure the layout code is configurable enough to do tabs as external modules. This would, I think, mean support for external decorations? (David?).
I must confess that by reading the XMonad site though, I had the slight impression that what you are actually trying do, your main goal, is to prove that Haskell, and its tool chain, allows the rapid development of the highest quality of code.
That's part of it, but mostly we just want to write a better, simpler window manager.
Thanks for your code. Really.
Thanks for the comments! -- Don
participants (5)
-
Andrea Rossato
-
David Roundy
-
dons@cse.unsw.edu.au
-
Spencer Janssen
-
Stefan O'Rear