98 comments

[ 2.7 ms ] story [ 75.3 ms ] thread
that's pretty nice, but did you try cmux.com
I gave up on it once I discovered https://zellij.dev/

Just even for how tab and panes are setup, and how it's good for scrolling and text selection with your mouse for copy pasting.

Zellij still can't hide/show the status bar on the fly[1] and doesn't support windows preview in the windows list mode. Just these two (and many more) things are enough to stop me from migrating from tmux.

[1] https://github.com/zellij-org/zellij/issues/694

Tried it. It’s certainly prettier and has a few unique features but a number of corner cases I depend on in tmux simply don’t work so back I went

Also, can’t really stand the name.

I really don't like tools that are not distributed via official package managers like apt / apk.
I clicked and instantly gave up on Zellij due to the horrible design fails on the first page supposed to introduce the software to the user.

upfront breaking the basic expectation of having a clickable link is enough for me to know that this piece of software is badly designed and is not worth my time.

Big fan of sane defaults like this.

I like tmux, but I no longer spend time customizing it for every server I run it on, only to be tripped up on some new server I haven't set-up yet.

I love Zellij but it doesn't play well with Neovim. If you try to use both tools heavily (Neovim splits + stacked Zellij panes), your Neovim layouts will get trashed. And if I have to choose between Neovim or basically anything else, Neovim will win.

Sadly, these issues are low priority for the main dev. Instead they are focusing on things like serving terminal sessions over the web, which is useless to me if I can't use Neovim in it.

I like having a red bar for tmux running as root and a blue one for running it as a normal user, e.g. for root:

    set -g status-style "bg=red"
I also like to have the bar on top and the status centered:

    set -g status-justify absolute-centre
    set -g status-position top
I stopped using tmux when I started using kitty terminal with native split windows. I prefer the native window management of kitty, but I do miss the session saving of tmux (e.g. if I accidentally close a tab).
Any guides for tmux configuration that works well with Emacs? The use of Ctrl and Meta for basic operations conflicts with a lot of Emacs commands.
I had my tmux customized to the point I forgot how to use it on a clean install which is a problem when I'm sshing into a server.

I wish it had better defaults but now I run it as is. After a while you get used to it. The only thing I always have to change is the mouse scroll and my brain cannot retain the exact command.

Total opposite. I adapt to the defaults meaning I almost never customize anything. Tmux? Game controls? UI look? Default. I am almost never met with surprise unless I am sitting in front of someones OCD config.
If you're interested in an out of the box multiplexer. https://zellij.dev/ is great. I've been using it for about a year now and loving it.
i used to use tmux a lot when i used to develop on arch, since i moved to macos i never installed it.

tbh i even forgot what it used to buy me.

I appreciate that tmux has theoretical advantages over screen, but man does the implementation suck. On Mac it still seems like there's no way to copy text if you have mouse mode on (at least in code-server).
There’s many ways tmux could be used, but when it is part of IDE the most important usability tweaks that make tmux rock for me personally are:

— session configuration save/recall (with pane layout for each tab and directory for each pane[0]),

— nvim integration (for seamless split navigation and so that I can create or reattach to a tmux session in an nvim float, even though that nvim usually runs inside tmux),

— a bind to force-reload a pane if (when!) a command hangs.

For switching between tabs, I find that the ideal bind is simply Cmd + pane number. There’s never more than ten tabs that I’d often want to switch to within a single session. The highest number is probably four tabs. Each tab is typically assigned a high-level part of the project.

[0] I always forget what terminology a given multiplexer uses, so let’s just call them “panes” and “tabs”.

I've always written my code in vim and preferred CLIs in general, but I really want a GUI for the terminal itself, including tmux. iTerm2 makes it nice for example, even if it's only to use the meta/super key instead of the heavily overloaded control.
I would love to have a way to switch sessions easily, like with panes where I just click or have more shortcuts available
i just have a little script called session (invoked as session namespace name and mapping to a tmux session called namespace/name and searching all namespaces if the namespace is elided) that just does the right tmux invocation for the various intersecting cases of [in or not in a tmux session already, target session does or does not exist] which also has the side benefit of leaving shell history breadcrumbs i can follow between sessions later if needed
Here’s a simple session switcher: `bind C-a display-popup -E "tmux list-sessions -F '#{session_name}' | fzf --reverse | xargs tmux switch-client -t"`. No plugins, nothing fancy, just works.
I've had the ctrl-a setup ever since migrating from screen to tmux, just due to muscle memory. But it is more conveniently located than ctrl-b - it's also rather nice if I have multiple nested layers of tmux due to temporary ones on other hosts. Sure you can just keep repeating the bind, but, just remembering that the second layer uses ctrl-b is a bit more convenient I feel. Slows me down a little, but usually I'm not using the 2nd layer as much.

I don't use capslock for ctrl though. It's much too useful as the Compose key ;)

I highly recommend just turning the mouse on, it's amazing for resizing panels and the rightclick menu is nice.

  set -g mouse on
for multi-monitor setups

  setw -g aggressive-resize on
is also really nice.
the most tmux thing in the world is that "make tmux usable" is still a genre.
I left tmux for zellij after several unsuccessful attempts to get Shift+Enter working.

Was quite impressed initially and invested weeks in building new muscle memory, but somehow Zellij crashed with panic more than once, leaving all my processes orphaned. Decided to go back to tmux, and found a simple fix for my Shift+Enter issue.

In case anyone is looking for it, the fix is "bind-key -T root S-Enter send-keys C-j" borrowed from https://github.com/anthropics/claude-code/issues/6072.

I ended up with this: bind -n S-Enter send-keys Escape '[13;2u'

pi.dev keeps complaining that "set -s extended-keys on" is missing, but it still works :D

I use c-q for prefix key because it doesn’t conflict with common zsh and vim bindings.

Because the author suggested swapping caps lock and control key, I also recommend mapping escape key at the control key and change the behavior based on whether another key is pressed. For example, if you press control + a, it sends c-a, but if you only press control key and then release, it sends escape. It makes your vim life (and in general) a lot easier. You don’t have to compete the most variable real estate on the keyboard, right next to the A key.

For most bindings like moving, resizing, and splitting,I emulate vim bindings.

Also, -r flag for bind-key command is impotent, because it enables to repeat commands like changing the pane size or move focus. You don’t have to press prefix key each time.

If you want to get fancy look with minimal setting, use plugins like nord tmux theme.

I prefer to use tmux non-interactively. For example, I use it for running daemons in the foreground, (textmode) screen scraping and scripting text-only browser

I do almost all interactive work while detached from tmux (personal preference)

I also rely on tmux buffers for a textmode "clipboard". I do not use x11

I've been using tmux since 2011 well before it became popular. I only use a fraction of its features

(comment deleted)
Hard agree on intuitive splits, I do this as well.

My hotkey is the backtick, `, rather than a chord.

The one thing I still struggle with - because it happens rarely - is easily copying the contents, full or partial, of a particular pane.