Estimated reading time: 3 minutes
Tiling vs tabbing¶
A fairly large chunk of my developer friends fawn over tmux and tabbed. These tools can give the effect of a multiple window interface to your terminal sessions, or apply a tabbed interface to any xembed supporting application respectively. I’ll freely admit they’re pretty awesome at what they do1.
That said, I’ve never been a fan of them or the plethora of tools like them. They feel, to me, like they’re attacking the problem from entirely the wrong side. Instead of configuring individual applications to behave in a tabbed and custom way, why not just rely on that behaviour globally? Allow me to illustrate with the following examples.
If I want two terminals next to each other I’ll just switch to a layout that
supports that(in awesomewm I’d probably choose tile.right
) . If I want
various image viewer windows open and a nice tabbed interface to access them,
I’ll just tag them all and enable a layout that supports that(such as dwm’s
monocle2). If I want to vertically split a terminal window and then
horizontally split that to include a vim
instance, I can just tag those
three windows and enable a layout that supports it3. I think the basic
message should be clear by now.
You can go further too. Say you want vim
and a browser window side by side
while reading documentation but need that vim
instance next to a terminal
for running tests, then you can simply apply two tags to the vim
instance
and switch between both layouts with a rattle of the keyboard. The exact same
interface you’d use for any other layout change too, not one that is specific
to tmux
or tabbed
.
It seems strange to me that given the option to perform tasks like this at the
window manager level people would choose to insert an extra layer in the
middle that does less. By using actual windows you sidestep the problems with
mouse selection in pseudo-windows in tmux
, and you can change your mind
about your preference for tabs or tiling mid-session unlike with tabbed
.
You can also abuse other excellent things like xdotool to fiddle with your
layout or interact with specific clients instead of needing to do application
specific things depending on whether you’re in a tmux
session or not.
Footnotes
- 1
I’m especially impressed with
tabbed
, as it feels somehow obvious yet magical. A rare combination in my eyes.- 2
You’ll probably want a patch such as fancybar if you want to emulate the appearance of having a tab bar in
dwm
.- 3
And using the window manager’s functionality means that
vim
session can be agvim
instance with nice colourful PNGs for signs instead of just characters too.- 4
You can find a quick patch to remove the daemon support and along with it the
gtkhotkey
dependency here.
Authenticate this page by pasting this signature into Keybase.
Have a suggestion or see a typo? Edit this page