
* On Saturday, December 19 2009, Ralph Hofmann wrote:
Am Samstag, den 19.12.2009, 10:59 -0500 schrieb Adam Vogt: ...
In the case of Full, boringAuto is doing exactly as it is supposed to do. I'm not sure that adding a special case to it makes sense to address this situation; that would be more surprising behavior; lets say you minimize all windows except one, should boringAuto now let you focus between windows?
If all windows except one are minimized, "my" boringAuto would behave exactly like the built in: it would skip the minimized windows and show only the one not minimized.
It's probably hard to define which behavour is expected and which is surprising, but I think a generel rule could be: the Full-mode should follow the same logic of focusing as the tiled mode; unless there is a strong reason against it. Is there any reason like that?
So in my understanding not "my" boringAuto is the "special case", but the built in.
Oh, now I understand that you want a distinction made between non-visible windows, and windows that are minimized. The boringAuto modifier doesn't catch this because Full lays out the windows such that all of them will be recognized as boring by boringAuto, before the minimizing modifier has a chance to remove them. main> pureLayout Full (Rectangle 0 0 0 0) (W.Stack 0 [1,2,3] [4,5,6]) [(0,Rectangle {rect_x = 0, rect_y = 0, rect_width = 0, rect_height = 0})] Compare with what XMonad.Layout.Simplest.Simplest which differs from full only in that it won't signal to boringAuto that all unfocused windows are boring: main> pureLayout Simplest (Rectangle 0 0 0 0) (W.Stack 0 [1] [2]) [(1, Rectangle{rect_x = 0, rect_y = 0, rect_width = 0, rect_height = 0}), (0, Rectangle{rect_x = 0, rect_y = 0, rect_width = 0, rect_height = 0}), (2, Rectangle{rect_x = 0, rect_y = 0, rect_width = 0, rect_height = 0})]
...
Thank you for showing me alternatives. I will have to review some haskell tutorial before going on;-)
You could just copy-paste that code anywhere in your config after the imports and use the fu and fd actions as if they were defined in some extension module. But on further reading, I think that using Simplest instead of Full is closer to what you ask than that code (which basically disregards minimized windows when using Full). -- Adam