I think the most logical would be to let mod+j/k switch tabs and when there are no more tabs go to the next pane. This way, they will keep the same functionality. Other bindings (messages) should then be created to handle cycling through tabs or panes separately. Moving between panes could be done with the already existing WindowNavigation. But a cycle through panes should also be available. I have been thinking about how signals would then propagate through the combined layout. If this is implemented as a layout modifier, let us say that all messages is sent to the outermost layout. Primarily the layout modifier itself, but all unhandled messages is sent to the layout that is splitting the panes. Furthermore if a new message class is introduced, let us call it PropagateMessage for now. If we wish to send the message to an inner layout the message oldMessage is encapsulated in PropagateMessage. The layout modifier decapsulates this message and sends it to the layout which handles the window that is focused. It may seem cumbersome to write keybindings for this, but I think it could easily be solved by a recursive submap. Each time the submap is entered another PropagateMessage would be added infront of all messages that are sent. This solution is very similar to what is seen in the terminal application screen where the sequence "ctrl-a a" sends a "ctrl-a" to the screen inside. The biggest problem about the behaviour I can see is how to start placing windows in a new pane. Any ideas? Moving windows from pane to pane is solved by WindowNavigation. Swapping panes with eachother should not be too hard to solve. On Wed, Feb 11, 2009 at 19:44, Braden Shepherdson <Braden.Shepherdson@gmail.com> wrote:
Dominik Bruhn wrote:
Hy, is there any chance we might get real tabbing support in xmonad?
Ill try to explain what I mean by that: I often use the "Tall" Layout. It would be nice If I could take any frame and apply a tabbed layout on it so that I can open several windows within that frame and get some tabs. Currently I cant get this behaviour because I have to select the frames where I want tabbing uppon compiletime and there is no keybinding for switching the tabs.
So what I'm searching for is:
1. A Keystroke which makes the current frame tabbed 2. A possibility to shift a window into a frame (so it gets another tab) and out again. 3. The current Keybindings like Mod+{j,k} stay the same, they dont switch tabs. 4. New Keybindings for moving to the next tab in the current frame.
Is it possible at all? I'm not into the xmonad sourcecode but perhaps the stack-set datastructure is not the right choice for this features. Perhaps some developers can tell about this.
This is the only feature which im missing and which could make me go to ion3 because everytime I see a ion3 I love this feature.
So, lets discuss!
I suspect I'm not alone in pondering this one off and on. It's a common request. There are some questions of the interface, whether mod+j/k switch panes or tabs, but there are sensible defaults and room for customization.
Build a TabbedTall layout specifically would likely be a little tricky, but perfectly possible. The bigger question is whether it would be possible to implement this as a LayoutModifier that could be strapped atop any (well, most) other layouts. I suppose it could keep a list of lists of windows, and give the underlying layout a list of "windows" which were actually the tabbed panes.
My money is on possible, but it's nontrivial.
I won't volunteer; I don't have the time to continue with my current xmonad-mangling project, ScreenWorkspaces. Taking 5 courses in one's major in one term is not recommended.
Braden Shepherdson shepheb
_______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad