the cycle of terminals
I've once again switched terminals, hopefully this time for good
My Previous Loves
I've tried them all I think, but these are the one's that mostly come to mind:
- gnome-terminal: I remember I used this for a while, until I moved away from gnome and wanted something leaner for my already lean desktop manager.
- xfce4-terminal: I love the whole xfce4 desktop, it's just so simple, so cute, so Linux-ey in its modularity, you can install the terminal without bringing the whole house with it. Plus it has tabs and just generally looks great, albeit feels a bit slow and dated.
- Alacritty: A few years back I jumped on the gpu-accelerated terminal bandwagon. Was impressed by the speed of Alacritty[1], but not the customizability, and the developer was a bit icy to deal with at times (though, fair, it's his product that he's putting out for free). No tab support though.
- Terminator: I switched back to xfce4-terminal for a while, just so that I could get my tabs back instead of spawning a new window, or using suckless's tabbed[2] (which felt lean, but clumsy). So I heard good things about Terminator[3], about how one can easily split and focus windows and create tabs. It's great and flexible and I've been using it for almost a year now without any problems. However it reminded me of something that I already use....
- Tmux: So tmux is not a terminal application, but a terminal multiplexer that runs within a terminal. It's mostly a session manager with tons of features like window splitting, tabs, process management, etc. etc. if you just take the time to read the manual. It's essentially a lot like Terminator (sans the process management), but with more pernickety bindings.
Fling with an Old Partner (with a twist)
My plan now is to switch back to Alacritty (it just feels snappier), and use tmux for tabbing and session management. That is, tmux will be my default terminal a la:
## in ~/.bashrc if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then exec tmux fi
The best part is that Tmux comes with a whole ton of handy plugins[4], where you can integrate cpu+mem+network+weather metrics into the status bar, meaning I can significantly clean up the status bar in my desktop and move everything into the terminal.
Plus you can save and restore tmux sessions across reboots[5], making it extremely handy for overcoming that initial early morning focus-inertia.
I just need to get used to typing C-b C-s more.
Hope this post convinces people that tmux is really more of a desktop manager itself (sans the windows), than just a cool multiplexing tool for detaching processes.
Happy Friday!
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Refs:
1: https://github.com/alacritty/alacritty
2: https://tools.suckless.org/tabbed/
3: https://github.com/software-jessies-org/jessies/wiki/Terminator
4: https://github.com/tmux-plugins/list
5: https://github.com/tmux-plugins/tmux-resurrect
Replies
I've loved tmux for since before I can remember (which can mean more than one thing at my age...).
I changed the prefix to Ctrl-a not too long into my tmux journey, though.
I think I did that primarily for speed, but wouldn't be surprised if there were a shortcut conflict involved. If so, I can't remember what it was - possibly for having avoided it all these years?
Source