[Xmonad] ideas on tabbed

Stefan O'Rear stefanor at cox.net
Sun Sep 30 12:50:58 EDT 2007


On Sun, Sep 30, 2007 at 10:23:11AM +0200, Andrea Rossato wrote:
> Hi,
> 
> there was a discussion tonight (it was 5 AM here ;), about some issues
> with Tabbed: I'm answering here, since the story is a bit long.
> 
> Some applications do not comply with the window's size xmonad gave
> them and do not display correctly.
> 
> Here's an example provided by sorear:
> http://members.cox.net/stefanor/1191121852.png
> 
> As you see there is an urxvt over firefox, which causes not only that
> visible problem, but focus problems too, since when the pointer enters
> the unhidden window that window would receives the focus.
> 
> Now, there are two problem:
> - should tabbed hide unfocused windows?
> - should xmonad implement in Main that mouse focus stuff?
> 
> I think the answer is no to both questions.
> 
> >From XMonad.hs:
> -- 'doLayout': given a Rectangle and a Stack, layout the stack elements
> -- inside the given Rectangle.  If an element is not given a Rectangle
> -- by 'doLayout', then it is not shown on screen.  Windows are restacked
> -- according to the order they are returned by 'doLayout'.
> 
> Tabbed returns a list with just the focused window and the relative
> rectangle. I think this is the correct behavior for a layout.
> 
> But tabbed has enough information to unmap those windows and map the
> back when a Hide message is send to tabbed. So, please let me know if
> you think this second behavior is better.
> 
> The mouse focus stuff: I tried (and still trying) to implement a
> layout modifier that will take care of the problem, so that we can
> remove the CrossingEvent handler (actually I get rid of it in my
> working xmonad instance) from Main and make it a configuration option.
> Still the problem is a bit tricky and did find a solution that works
> with every possible layout.

Argh.  I seem to have mis-communicated myself horrendously.

Urxvt *is* obeying the size xmonad gives it, because I'm using
LayoutHints.

(old) Tabbed is displaying all windows, but relying on the focused
window's position in the Z-order to prevent others from being visible.

This is very fragile, and with LayoutHints it is possible to see other
windows; this is a major annoyance because of the interaction with mouse
focus.  (moving to lower right makes firefox pop to the top and I have
to mod-j)

The behavior I would like to see does not involve any explicit
unmapping, but rather simply omitting them from the list of windows that
should be visible.  (Don't you just love functional style? :) )

'full' already exhibits the behavior I want.

David Roundy did not want the behavior in (old) Tabbed, for reasons I
did not understand and did not like.

My question was whether New Tabbed did what I wanted.

Yesterday on IRC I threatened a fork.

With the benefit of sleep I have a *much* better idea.

If New Tabbed doesn't do what I want after my next upgrade cycle, I'll
add a boolean configuration option.

No big deal.

Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org/pipermail/xmonad/attachments/20070930/91047938/attachment.bin


More information about the Xmonad mailing list