So Much Better for Beginners Than Tmux

5 hours ago 2

Managing lots of terminal windows can be a chore, and terminal multiplexers are often the go-to solution. However, you've probably found tmux difficult to configure, especially as a beginner. There is an easier alternative: Zellij, which works out of the box with zero configuration.

Terminal Multiplexers Are Like Window Managers for the Terminal

For those that don't know, a terminal multiplexer is a software program that turns a single terminal window into multiple virtual terminals and provides session management features. Originally, they ran over remote login sessions to facilitate complex remote workflows; today, people also use them to manage local terminal workflows.

A complex workflow might involve running several tasks concurrently, e.g., compiling software, searching for files, etc. When running such tasks without a terminal multiplexer, you cannot disconnect the terminal without stopping the processes. What if your task takes hours to complete, and a flaky connection interrupts it halfway through? This was a common issue back in the heyday of dial-up modems, and it still happens.

So, in short, terminal multiplexers allow you to use multiple virtual terminal windows over a single login or terminal session. They also provide session management so that you can disconnect and reconnect to a running session. A more in-depth guide can be found in Terminal Multiplexers Explained.

Zellij Restores Previous Terminal Sessions With Zero Effort

The Zellij program is opened in a terminal window, split into multiple panes. There's one big pane on the left, and on the right there are multiple smaller panes stacked vertically. Each pane is performing a separate task.

One of the primary reasons for me to use a terminal multiplexer is to continue previous work from where I left off. When working on multiple active projects, manually restoring them multiple times per day becomes a chore.

To me, sessions are indispensable, but I am unwilling to work hard to attain them; they're a simple convenience. I love flexibility for complex software, but not for terminal multiplexers.

Sessions on Zellij just work because it comes with a session manager baked in. Every time I open Zellij, it creates a new randomly named session. I can simply take ownership of that session by renaming it. I close my terminal, reopen it, and choose the session by name. Zellij restores all programs exactly as they were.

Tmux, on the other hand, requires manual configuration. As a beginner, I'd first need to discover the idea of session management, make the common assumption that sessions survive reboots, discover that they don't, and then find and research a functional plugin. There are two common session managers, and I had issues with both, particularly a lack of session persistence across reboots and maintenance. There isn't enough time in my life to become a well-trained Tmux ninja. Simple conveniences should just work.

On Zellij, sessions work with zero effort. I install it, start it, and I am already using sessions.

Server data on a monitor with Database MySQL.

Related

Sensible Default Keymaps Mean Less Configuration

Because I live inside the terminal, I need convenient keymaps. The actions that I use most should require only one key press. I use navigation keys the most, moving between tabs and panes.

For movement, Zellij uses Vim keys: Alt and H, J, K, and L to move left, down, up, and right—but you can also use arrow keys. While holding Alt, I can quickly navigate between tabs and panes without interruption or releasing Alt. To perform the same action in tmux, I must first press Ctrl+B, release it, and then follow it with an arrow key. It doesn't sound like much, but moving through multiple panes requires two separate actions: Ctrl+B, release, then an arrow key, over and over. Such tricky actions slow down navigation drastically and interrupt my flow.

It's possible to remap a key in tmux to something more convenient, but it then becomes a configuration issue. I need to configure and test the keymaps, then contend with any awkwardness that may arise, such as misbehaving keys in some scenarios. On Zellij, they just work; someone else tested them, and I get that convenience for free.

Effortless Keymaps for Beginners Through Its Intuitive UI

A common gripe with advanced Linux tools is remembering all the keymaps. To address this, Emacs and Neovim users have created packages that show keymaps as you use them. When activating a keymap, a context menu appears, displaying all the keymaps relevant to the current context. Zellij (unlike tmux) provides a similar feature by default. This context menu is visible at the bottom of the screen immediately upon startup, and it changes as I press keys. There is no need for me to learn any of the keymaps at all. This feature makes onboarding much easier for beginners.

In contrast, tmux requires that I memorize the keys. This causes me to constantly shift in and out of context to look up the keymaps. Over time, it becomes muscle memory, but there's required work up front.

A Painless Floating Terminal Declutters My Desktop

The Zellij program is opened in a terminal window, with a small box in the middle. The box is a floating virtual termina.

Have you ever opened a terminal window just to run a single command, then closed it? Opening and closing terminals this way somehow feels like clutter. There are times that I have a half dozen terminal windows open simply because I forgot to close them. Zellij offers a neat little feature that solves this problem: a floating terminal. You can execute quick one-off tasks within it. I no longer have to open tabs or windows; I just activate this always-ready floating terminal instead.

Tmux does support a floating terminal:

tmux popup bash

That's useful, but I must also bind it to a key. As a beginner, I'd need to first learn how to do that. I also need to deal with any conflicts that may arise. But that's not all; the pane loses its contents when it closes, so I need to address that too. I will likely spend two to three hours doing so and living with a half-baked, buggy solution that annoys me over two years later. I don't care about DIY for the sake of it. If I wanted to own a car, I wouldn't start by smelting ore; I would start by purchasing one that works—tried and tested.

With Zellij it's effortless; I press Alt+F and call it a day.

Linux mascot using a laptop with some multiplexer terminals around it.

Related

It Gets Out of the Way and Doesn’t Complicate Things

You might have noticed a continuing theme: convenience. I don't want to configure a terminal multiplexer any more than I want to configure a toaster. If I had to create special keymaps just to toast bread, I would slam dunk the toaster into the trash. Not everything needs to be so customizable, and every time I see a clock or some other useless feature in the modeline (the bar at the bottom), it reminds me that people ran out of ideas to customize these things a long time ago.

Terminal multiplexers do one thing, and as long as the defaults are sensible, it's good enough. The most important thing is user experience—i.e., how easy it is to get started and use it. When I started Zellij for the first time, I already knew how to use it, and I never looked back.

Tux Linux scared looking at a virus

Related


For me, terminal multiplexers are unnecessary to configure. If there were new and innovative ideas in this space, then extensibility would be a premium feature, but there's not, and extensibility is just an avenue for bugs and wasted time. Zellij works out of the box, and that's why I love it. I don't have to make it my own because the authors made sensible decisions. A lot of experience comes with these defaults, and a useful on-ramp feature (like the contextual keymap UI) makes Zellij a great option for beginners.

If you're interested in Zellij, you should check out their documentation and head over to the Zellij installation page, which details how to install it via Cargo. Zellij is also available on some distros (e.g., Fedora, Debian, and Ubuntu), but you may need to first learn how to install software via the terminal or to install software via Snap (which applies to both Debian and Ubuntu).

If you insist on taking the difficult path and want to reinvent the wheel, tmux is still a solid choice, and you can follow our guide to installing and using tmux to get started. However, be aware that you're committing to configuring it.

Read Entire Article