My terminal emulator (Konsole) has tabs. It also has tiling features I've never taken the habit to use. It has infinite history and allows me to easily select and copy paste many lines. It has a perfect scrolling behavior: it automatically scrolls, but stops auto scrolling if I scrolled a bit up. I'm used to its keyboard shortcuts to switch tabs. My window manager (KWin) also has tiling-like features when I need to see several terminal sessions at the same time.
I use screen when I need to be able to leave and rejoin later. I almost never need to restore several remote terminal sessions at once, and when I do, I'm happy to just ssh several times.
I feel like my use case is completely covered by the terminal emulator and the WM which are incredibly convenient and efficient. I would expect any layer between this efficient / optimized character display and the programs I run can only add latency. I also quickly feel overwhelmed by a screen full of characters. I think I would miss out on convenience by switching to tmux and it's unclear to me what I would gain.
Happy to be convinced otherwise, though :-)
Ah, clever :-)
In the theme of duplicated terminals, once, I used screen so we could share a terminal session remotely on the same server with a colleague to work together.
Have you tried Konsole? I've read it's actually one of the fastest, probably not more than xterm though and you'd need to be willing to use KDE software.
checkout kitty. its FAST. I used to use iterm and once I tried kitty for a day, iterm felt infuriatingly slow.
Edit: Also kitty upstream does not offer a manpage.
I tried a few times to see if I could get any advantage using tmux but always revert back to none at all. To me the scrollback that works 'as expected' without having to remember key combos, and also work with the mouse are a key feature!
edit: That is just my personal killer feature, obviously having a terminal setup that is consistent cross platform and great for stream processing is a given.
The one big advantage of a multiplexer that I can think of is you can disconnect and reconnect from a session. Not something I really need but might be useful.
Tmux is more programmable. You can write scripts to automate stuff, for example setting up a layout, etc. with a degree of freedom that is not possible with Konsole.
You are probably fine with your setup, not trying to convince you ;-)
Personally: I just like fancy TUIs. One of the first things I programmed was mIRC scripts, might be because of that.
It is common for me and I have aliases set up for 'ls=ls -lah', g=grep -i' and 'x=xsel -b', so the actual commandline looks like 'ls | g "whatever" | x'. Then I can paste or redirect the result into something else.
There are probably better command line clipboard managers, but I just happened to settle on xsel, and it seems to work pretty well. That, and using alt and number keys to switch between tabs gets me pretty far with my terminal emulator.
- a tmux session can be used by multiple people
- with tmux a single command “tmux attach -t someusefulname” restores the layout and all of the commands used, saving a bunch of time and opportunity for error
- tmux has an API, so you can spawn a fully loaded session from scratch with code, rather than by manually doing things or by having a pre-made session (this is soooo underrated, especially if you make it configurable)
Honestly there comes a point where you just redesign the software and have it run in a more automated fashion anyway, but for the odd job that you have to run from time to time it’s very handy to have tmux as a persistent, shareable, configurable scratch space.
Using this you could automatically spawn your ssh connections as nested tmux sessions. Obviously this brings some complications, namely that you need to set different prefix keys (or double press prefix) and any non-prefix hotkeys always get sent to your local session. Personally I just configure remote tmux to have only prefixed keybinds and never make any complicated layouts on remote sessions so that having to press <inner-prefix> + <key> doesn't get annoying.
If they would just add a tty protocol for good scrollback! :-)
I do use GNU Screen on servers for long-lived sessions. Just because it's more familiar than tmux to me. It's great for persistence, but really annoying to have to use key combos to look through and search the scrollback in Screen sessions, so I tend to log all sessions to files and read the real-time logs with `less -R` and `ripgrep` when I need to look back through session history, even though I could use the Screen interface to do it.
In some jobs, I always have multiple tmux terminals running. I was about to claim that I have none running right now, but shamefully I have a Mastodon bot that I never productionized running in a tmux on my server.
If you're exclusively a front-end JS developer, it's hard to see how you'd use tmux at all.
I haven’t seen anything tmux gains me over this setup (though I’m sure to be missing something).
I do use tmux or screen when sshd into a server, though, just to survive disconnects.
because they live in an IDE and don't need a terminal.