
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
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