Is tabbing possible?


I’ve been trying to make a tabber using FvwmButtons to group all windows that have the same title together, for example all xterm windows. But I haven’t been very successful. FvwmButtons only seems to swallow the first window. The rest are displayed outside FvwmButtons unless I close the existing one first.

It seems there was something called FvwmTabs, but it was broken and it’s been removed.

Is it even possible to make something like that with FvwmButtons?

Afiak you wont be able to get tabs. Though this might work

Place all the windows on top of each other (fvwm can do this) and then use something like FvwmIconMan and a limited list of windows (say FvwmIconMan that shows all xterms) and then you can select the window in FvwmIconMan and it will bring it to the foreground via either Raise or maybe Iconify.

Would something like that satisfy your needs. (it is basically what tabs do in my opinion)

The other option is use apps that have tabs/buffers. I use tmux and can open/close shells and use the mass to switch between my running windows that way in a single xterm. There are also terminal emulators that support tabs.


Thank you for the prompt reply.

Well that is exactly what I’m trying to do. But I haven’t been very successful. As I mentioned FvwmButtons only swallows the first window. It’s not much but this is what I have so far:

+ "Tabber" FvwmButtons Tabber
+ "XTerm" Exec xterm -title "BLAH"
DestroyModuleConfig Tabber: *

*Tabber: Back #EFEFEF
*Tabber: Frame 2
*Tabber: Geometry 1000x800+0+0
*Tabber: (2x1, Swallow (SwallowNew) "BLAH" "Nop")

Yes, I know there are such programs. I’ve used tabbed by suckless, which is very good. Unfortunately it only works through xembed and some programs I’m using don’t support it. That’s the case of the links browser (in graphics mode).

I don’t need anything too fancy. Just something minimalistic and generic will do.

How is that exactly what I suggested I never mentioned using FvwmButtons?

This was on the lines of what I mentioned.

  1. Use fvwm to position the windows.
Style xterm-tab PositionPlacement 10px 10px
  1. Use FvwmIconMan to list the tabs.
DestroyModuleConfig TabList:*
*TabList: Show class=xterm-tab
*TabList: Action Mouse 0 N sendcommand ShowTab

To run this

Module FvwmIconMan TabList
  1. Have a function that hides/shows the windows.
DestroyFunc ShowTab
AddToFunc ShowTab
+ I All (xterm-tab) Iconify on
+ I ThisWindow (xterm-tab) Iconify off

now every term you launch with the class xterm-tab will appear in the same place and the FvwmIconMan can be used to select between them.

To run the xterms

xterm -class xterm-tab

This requires all the windows being positioned in the same place (on the same Page/Desktop).

If you want to be able to move these around you will have to write some functions that move them all to the same place. Something along the lines will move all the windows:

All (xterm-tab) Move options

But if you want to be able to move things with the mouse, you may need to get more creative and use the $[w.x] and $[w.y] of the current visible window. There are similar things if you need to resize all the windows.

What I meant was that the idea you suggested is like the general idea I had in mind. But I mistakenly thought you intended to use both FvwmIconMan and FvwmButtons: one to provide a list of windows and the other to group them. Sorry for the confusion.

Thank you for the help. It’s much appreciated!