runLayout changes!
Hi all, Sorry to keep you waiting, but while getting these changes together I somehow managed to completely hose my xmonad twice! The first time I'll write about later, but suffice it to say that it had nothing to do with the runLayout changes. The second time... I'm still not sure what was going on, but after rebuilding everything from scratch it... seems to be OK now. Of course, it's always scary when something magically gets fixed without knowing why, but hopefully things should be OK. Of course, if you experience any problems, reports/patches/etc. welcome, and so on! Don, if you can apply all these patches, that would be great. I could apply the contrib patches myself, but of course the core patches and contrib patches need to be applied all at the same time or else things will break. A quick summary of what's going on here: the LayoutClass is getting a new method, called runLayout. By default, runLayout just calls doLayout or emptyLayout as appropriate. If you're writing a simple LayoutClass instance, you don't need to worry about it; you can choose to implement doLayout, or pureLayout, or whatever, just as before. However, if you are writing code which *makes use of* a LayoutClass instance, you should *only* call runLayout, handleMessage, and description: client code should no longer call doLayout directly. If you do, anything which uses a non-default runLayout (like PerWorkspace) will break when used in conjunction with your code. For more information, see all the modules that were updated for examples, and see the Haddock documentation for Core.hs: I added a bunch of documentation which should hopefully make everything clear. And yes, of course, this means that PerWorkspace now works with xinerama setups! Happy xmonading! -Brent -------------------------------- Tue Mar 11 12:07:27 EDT 2008 Brent Yorgey <byorgey@gmail.com> * update documentation Mon Feb 25 03:32:36 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * Reimplement Mirror with runLayout Fri Feb 22 14:31:19 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * Reimplement Choose with runLayout Fri Feb 22 12:58:15 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * runLayout is now a LayoutClass method and takes the Workspace and the screen Rectangle ------------------------------- Tue Mar 11 17:29:08 EDT 2008 Brent Yorgey <byorgey@gmail.com> * ScratchWorkspace: update to work with runLayout changes Tue Mar 11 14:17:15 EDT 2008 Brent Yorgey <byorgey@gmail.com> * Scratchpad: update to work with runLayout changes Tue Mar 11 14:16:25 EDT 2008 Brent Yorgey <byorgey@gmail.com> * MagicFocus: update to work with runLayout changes Tue Mar 11 14:15:37 EDT 2008 Brent Yorgey <byorgey@gmail.com> * LayoutScreens: update to work with runLayout changes Tue Mar 11 14:14:00 EDT 2008 Brent Yorgey <byorgey@gmail.com> * Combo: update to work with runLayout changes Tue Mar 11 13:20:46 EDT 2008 Brent Yorgey <byorgey@gmail.com> * MultiToggle: fix to work with runLayout changes to core Sat Feb 23 02:55:31 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * PerWorksapce: use a safer False as default Fri Feb 22 12:59:54 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * PerWorkspace: reimplemented using runLayout This way we have a Xinerama safe PerWorkspace and the emptyLayout method for free. Sat Feb 23 03:15:53 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * ToggleLayouts: reimplemented with runLayout Sat Feb 23 03:09:58 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * LayoutCombinators: NewSelect reimplemented with runLayout Sat Feb 23 02:56:10 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * LayoutModifier: reimplement ModifiedLayout using runLayout and more - change modifyLayout type to get the Workspace - updated ResizeScreen and ManageDocks accordingly. Fri Feb 22 12:59:24 EST 2008 Andrea Rossato <andrea.rossato@unibz.it> * Combo: updated to latest runLayout changes
byorgey:
Hi all,
Sorry to keep you waiting, but while getting these changes together I somehow managed to completely hose my xmonad twice! The first time I'll write about later, but suffice it to say that it had nothing to do with the runLayout changes. The second time... I'm still not sure what was going on, but after rebuilding everything from scratch it... seems to be OK now. Of course, it's always scary when something magically gets fixed without knowing why, but hopefully things should be OK. Of course, if you experience any problems, reports/patches/etc. welcome, and so on!
Don, if you can apply all these patches, that would be great. I could apply the contrib patches myself, but of course the core patches and contrib patches need to be applied all at the same time or else things will break.
Applied!
On Tue, Mar 11, 2008 at 5:44 PM, Brent Yorgey <byorgey@gmail.com> wrote:
Hi all,
Sorry to keep you waiting, but while getting these changes together I somehow managed to completely hose my xmonad twice! The first time I'll write about later, but suffice it to say that it had nothing to do with the runLayout changes. The second time... I'm still not sure what was going on, but after rebuilding everything from scratch it... seems to be OK now. Of course, it's always scary when something magically gets fixed without knowing why, but hopefully things should be OK. Of course, if you experience any problems, reports/patches/etc. welcome, and so on!
Don, if you can apply all these patches, that would be great. I could apply the contrib patches myself, but of course the core patches and contrib patches need to be applied all at the same time or else things will break.
A quick summary of what's going on here: the LayoutClass is getting a new method, called runLayout. By default, runLayout just calls doLayout or emptyLayout as appropriate. If you're writing a simple LayoutClass instance, you don't need to worry about it; you can choose to implement doLayout, or pureLayout, or whatever, just as before. However, if you are writing code which *makes use of* a LayoutClass instance, you should *only* call runLayout, handleMessage, and description: client code should no longer call doLayout directly. If you do, anything which uses a non-default runLayout (like PerWorkspace) will break when used in conjunction with your code. For more information, see all the modules that were updated for examples, and see the Haddock documentation for Core.hs: I added a bunch of documentation which should hopefully make everything clear.
And yes, of course, this means that PerWorkspace now works with xinerama setups!
I'd be curious to hear reports now that this has been pushed. In particular, I'd be especially interested to hear about it if, after updating to the latest darcs: * Your layouts suddenly stop working or act funny in any way. * xmonad seems to crash randomly (there's been at least one report of this, not sure if it is related to the runLayout stuff) * PerWorkspace works/doesn't work with your xinerama setup. But if all you have to say is "I updated, and everything seems to work great", I'd be happy to hear that too. =) Thanks! -Brent
I'd be curious to hear reports now that this has been pushed. In particular, I'd be especially interested to hear about it if, after updating to the latest darcs:
* Your layouts suddenly stop working or act funny in any way. * xmonad seems to crash randomly (there's been at least one report of this, not sure if it is related to the runLayout stuff)
The only recent crash was prior to the runLayout push, and seemed to have to do with urgency hooks. There's a ticket for this, but no one's reproduced it yet.
Brent Yorgey wrote:
... But if all you have to say is "I updated, and everything seems to work great", I'd be happy to hear that too. =) I needed to rebuild dependencies (due to PAP issues) but otherwise it works perfectly on xinerama with three screens.
Regards, Juraj
participants (3)
-
Brent Yorgey -
Don Stewart -
Juraj Hercek