Tiling terminal multiplexers for the console connoisseur
- Reference: 1750753807
- News link: https://www.theregister.co.uk/2025/06/24/tiling_multiplexers_survey/
- Source link:
All the cool elite console-based hackers are using tiling window managers – or these days, tiling Wayland compositors – to juggle multiple terminal sessions. But you can do the tiling right there in your console! Isn't that even more elite? We looked at half a dozen ways to tile your terminals.
GNU Screen
The granddaddy of them all is [1]GNU Screen . Last year, we [2]wrote about version 5 , but last month [3]version 5.0.1 appeared. It's a GNU tool from the 1980s, so although it runs on almost everything, it's also cryptic and rather hard to use. For instance, using it on your local machine, it considers sessions and windows to be separate things. This means it's easy to open a window with nothing in it. It also handles things like baud rates over serial lines. If that still matters to you, you have our sympathies, but for most of us it's as historical as dial tones. Screen is powerfully confusing, but on the flip side, that does offer lots of opportunities for [4]easy introductions and even [5]cheat sheets .
[6]
GNU screen on Ubuntu Noble, showing Tilde, htop and its own manual page – click to enlarge
One elegant summary of Screen we saw is that you connect from your work computer to a server miles away, type some commands, leave one working while you disconnect – then go home and reconnect from your home machine to the same running session.
Tmux
A more modern and smaller alternative to Screen is [7]Tmux . It can handle both multiple local terminal sessions, and multiple remote sessions to multiple remote machines. With the help of the external [8]tmuxp session manager , you can save whole sets of connections, reload them later, or switch between them.
[9]
Tmux, showing the 'bottom' system monitor, a shell, and its own manpage – click to enlarge
This complexity is arguably [10]an example of "worse is better" design , which is one view of the philosophy behind Unix itself. It means Tmux is unavoidably complicated. To master it, you also have to master a set of [11]concepts . It has enough options that there is an [12]entire book about it. It also has a whole [13]list of plugins and a [14]plugin manager to go with them.
Byobu
Help is at hand, though. Former Canonical product manager for Ubuntu Dustin Kirkland wrote [15]Byobu (named after byōbu, a kind of Japanese [16]folding screen ). Byobu is able to handle sessions on its own, but if screen or tmux is installed, Byobu can act as a wrapper around them, providing a much friendlier front end, with simpler keystrokes and a handy status line. (In our testing, if you have both installed, it defaults to using Tmux.)
[17]
Byobu makes Tmux a little easier to control, but not much, and adds a status bar – click to enlarge
If you want to keep using the industrial-strength tools but want a friendlier front end, this is it.
Zellij
[18]Zellij is a modern tiling terminal multiplexer. It's named after a traditional [19]Moroccan ceramic tile , which also led to [20]Portuguese azulejaria .
[21]
The latest Zellij snap, with its slightly more helpful status bar and colourful docs – click to enlarge
Zellij the program is [22]implemented in Rust, and offers a much simpler and easier UI than either Screen or Tmux – and it holds up pretty well against Byobu, too. There are native packages for some Linux distros, FreeBSD, and macOS, and an old version for NetBSD. Some of the usual big name distros are missing, though. For example, as far as we could find, there are no native .deb packages for the greater Debian and Ubuntu family, but Ubuntu users can install a [23]snap package . There's no Flatpak because it doesn't handle command-line tools well. If you prefer to avoid snap, then you'll need to install the Rust compiler and [24]Cargo and build it yourself.
DVTM
If you lean toward minimalism and the idea of large, complex programs and wrappers around them to make them easier makes you itch – or you're not keen on installing either snaps or significant dependencies to build a Rust app – then [25]dvtm may be more your thing.
[26]
Dvtm, showing its status bar at the top, Tilde, Htop, and its manpage – click to enlarge
It's smaller, simpler, and slightly easier to use than Tmux, partly because it does much less. Tmux and Screen can both handle disconnecting and reconnecting to sessions on other machines. Dvtm doesn't have that built in, although if you need session management, it can work with a partner program called [27]abduco , which provides comparable functionality.
[28]/e/ OS 3.0: Slightly less clunky, slightly more private
[29]KDE Plasma 6.4 ships with major usability and Wayland improvements
[30]LibreOffice adds voice to 'ditch Windows for Linux' campaign
[31]As RHEL clones hit version 10, Rocky and Alma chart diverging paths
Twin
Massimiliano Ghilardi's [32]Twin has been around for over 20 years, although it has yet to reach version 1.0. Twin is short for Textmode Window Environment, and it's in the repositories for Ubuntu Noble. Like some [33]other projects , Twin brings a [34]Borland TurboVision -style [35]TUI to the Linux console – or terminal emulator.
[36]
Twin is something else, literally, as although it can, it doesn't just do tiling or terminals – click to enlarge
Like this vulture's preferred [37]terminal text editor, Tilde , it offers an interface reminiscent of [38]IBM's CUA – and it even supports mouse input, if you install the gpm package first. It can tile terminal windows, but also handle overlapping ones. We found it struggled a little to keep track of the mouse in a VM, and the usual CUA-style keyboard shortcuts didn't work for us, but there's immense potential here.
It would be interesting to see Twin expand and absorb some of the functionality of other tools, such as a CUA text editor, a CUA file manager, and something like Tmux with mouse support and a CUA keyboard UI. Many of these are out there, such as Tilde, and file managers like [39]Ranger and [40]F2 Commander , but they lack a uniform UI. Long, long ago there was an attempt at a text-only Ubuntu-based desktop called [41]INX , and Twin would fit well there.
Micro Terminal Multiplexer
If all of these sound like way too much for too little reward, and you just want tiles and nothing else, then mtm may suit. It's by [42]Rob King , whose Commodore-64-themed homepage is striking.
[43]
Mtm is micro by name and nature, but it does the job, if you compile it yourself – click to enlarge
We couldn't find packages for Mtm, so you'll have to [44]download the source and compile it yourself. To do so on Ubuntu, you must install the ncurses development libraries first: sudo apt install lib64ncurses-dev
Which is the best?
As ever in the Linux world, it depends what you want. Screen is hard work, but it runs on just about every Unix-like OS. Tmux is nearly as widespread and does everything a 21st century user could imagine. Both are somewhat arcane, but Byobu helps a lot.
For us, Zellij is the easiest to use, if you don't object to the packaging or the dependencies. We really appreciate its more helpful UI, but if you consider that cluttered, it also offers a choice of [45]compact views .
There are of course dozens of such tools if you do want to do your tiling at the GUI level. The Arch Wiki lists [46]14 of them and [47]12 such Wayland compositors . Some terminal emulators also integrate some form of multiplexing, such as [48]Terminator and [49]Tilix . If you want that but Rustier, and on BSD, macOS, or Windows, [50]Wezterm may be for you. ®
Bootnote
If the name Dustin Kirkland seems familiar, it appears his [51]Ask HN question may have influenced Canonical's later decision to [52]drop Unity and its convergence dream .
Get our [53]Tech Resources
[1] https://www.gnu.org/software/screen/
[2] https://www.theregister.com/2024/09/03/gnu_screen_5/
[3] https://lists.gnu.org/archive/html/info-gnu/2025-05/msg00002.html
[4] https://opensource.com/article/17/3/introduction-gnu-screen
[5] https://opensource.com/downloads/gnu-screen-cheat-sheet
[6] https://regmedia.co.uk/2025/06/20/screen-ubuntu.png
[7] https://github.com/tmux/tmux/wiki
[8] https://tmuxp.git-pull.com/
[9] https://regmedia.co.uk/2025/06/20/tmux-ubuntu.png
[10] https://hiandrewquinn.github.io/til-site/posts/tmux-is-worse-is-better/
[11] https://unixseclab.com/index.php/2017/07/10/tmux-concepts/
[12] https://pragprog.com/titles/bhtmux2/tmux-2/
[13] https://github.com/tmux-plugins/list
[14] https://github.com/tmux-plugins/tpm
[15] https://www.byobu.org/
[16] https://narapilgrimwood.com/blog/japanese-folding-screens
[17] https://regmedia.co.uk/2025/06/20/byobu-ubuntu.png
[18] https://zellij.dev/
[19] https://zellijgallery.com/
[20] https://weareportugal.com/pages/sa-nogueira-azulejaria
[21] https://regmedia.co.uk/2025/06/20/zellij-ubuntu.png
[22] https://github.com/zellij-org/zellij
[23] https://snapcraft.io/zellij
[24] https://github.com/rust-lang/cargo
[25] https://www.brain-dump.org/projects/dvtm/
[26] https://regmedia.co.uk/2025/06/20/dvtm-ubuntu.png
[27] https://www.brain-dump.org/projects/abduco/
[28] https://www.theregister.com/2025/06/19/murena_e_os_3/
[29] https://www.theregister.com/2025/06/18/kde_plasma_64_released/
[30] https://www.theregister.com/2025/06/16/libreoffice_ditch_windows/
[31] https://www.theregister.com/2025/06/14/rocky_alma_and_rhel_10/
[32] https://github.com/cosmos72/twin
[33] https://github.com/magiblot/tvision
[34] https://texteditors.org/cgi-bin/wiki.pl?TurboVision
[35] https://en.wikipedia.org/wiki/Text-based_user_interface
[36] https://regmedia.co.uk/2025/06/20/twin-noble.png
[37] https://www.theregister.com/2021/12/17/tilde_text_editor/
[38] https://www.theregister.com/2024/01/24/rise_and_fall_of_cua/
[39] https://github.com/ranger/ranger
[40] https://github.com/candidtim/f2-commander
[41] http://inx.maincontent.net/
[42] http://frigidriver.com/
[43] https://regmedia.co.uk/2025/06/20/mtm-ubuntu.png
[44] https://github.com/deadpixi/mtm
[45] https://zellij.dev/documentation/layout-examples.html
[46] https://wiki.archlinux.org/title/Comparison_of_tiling_window_managers
[47] https://wiki.archlinux.org/title/Wayland
[48] https://gnome-terminator.org/
[49] https://gnunn1.github.io/tilix-web/
[50] https://wezterm.org/index.html
[51] https://news.ycombinator.com/item?id=14002821
[52] https://www.theregister.com/2017/04/05/ubuntu_euthanizes_unity/
[53] https://whitepapers.theregister.com/
Re: I use Screen
> If I need more terminals (local or remote) I just open more terminals
I think this is a slightly disingenuous response.
If you open more terminals then that means you are juggling lots of terminal windows. That means you need more from your window manager, especially if you want to keep them all in view at the same time, and it means you need a mechanism for switching.
It also implicitly means _you need a window manager_.
These tools do not need that. They need no external window manager. They do not need any particular terminal emulator, because yes, there are terminal emulators that can do this built in, but that means you need that particular terminal emulator, but maybe you switch between Windows and WSL at work and a Mac at home, and the ones you use at work don't work at home or whatever.
You are saying "I do not need this because I (*do something else which is much more complicated*) instead."
The point of these tools working on the console is that you don't need any terminal emulator at all. That is _WHY_ the screenshots show them in the console of a test VM. No X11, no Wayland, no desktop, no terminal emulator... _Just a terminal_.
Secondly, this aside, if you work in one console and don't try to arrange several side by side, you are indirectly or inadvertently humble-bragging: "I do not need fancy tools to keep stuff side by side because I have a superior intellect and I mentally keep track of what connections I have open and where. I do not need to see them side by side because I multiplex in my head."
I am giving you the benefit of the doubt here that maybe you did not know that you were saying this... but you were saying it.
I am not a giant brain. I do not work mainly in terminals. I use conventional stacking desktops with GUI apps and I just occasionally open a terminal.
These tools mean I can keep just one terminal open and I don't need to mentally track what connections are open to where because it keeps them all visible, side by side. I find this easier for what remains of my concentration at my rapidly-advancing age and with a small child around the house too.
Secondly, in some of my jobs and some of my boxes, they are headless and they don't _have_ GUIs. This way, I have 1 console and 1 screen and 1 keyboard, but I have several virtual terminals right there in front of me, not trying to remember which one is on Alt+F3 and which is on Alt-F4 and is Alt-F2 for console logs and Alt+F1 special?
These are tools to make life easier. Saying "but I don't need those" is in an indirect way boasting: "I do not need these tools to make life easier because I do it the hard way."
I am not like that, which is why I use Tilde not Vim or Emacs. I like easy, familiar, visual over Raw Power.
You do you. But please, spare some pity for those of us who are not so elite.
Re: I use Screen
I'm with you bro. I wrote a simple wrapper shell script, that reduces the functionality of screen to 2 things:
* Start a fresh named session (scr myname )
* Reconnect to an existing session (scr myname )
Job jobbed.
I find myself wondering
how easy it would be to set up ssh so that it creates a screen/tmux connection when it connects.
Meaning you're always protected from a network glitch.
And depending how easy it is, whether you could implement it as an option ?
Re: I find myself wondering
> Meaning you're always protected from a network glitch.
Wrong tools for the job.
If you want protection from delays and disconnects, for example on patchy mobile links, then Mosh is your friend.
https://mosh.org/
Re: I find myself wondering
Yes, maybe mosh is better in this case.
Ohhhhh
That kind of console. Oh well.
I use Screen
My personal workflow is probably quite different: If I need more terminals (local or remote) I just open more terminals (or ssh sessions).
When I need a persistent terminal, I use screen, which is incredibly easy for its basic use:
-launch screen
- do your work in it then hit contol-A and D
to reconnect, just launch screen -r
have never been able to learn how to use more complicated terminal multiplexers.