A have it so that my shell always opens tmux, unless it's a login shell or dumb shell.
# ~/.bashrc
## Top of your RC
[[ $- != *i* ]] && return # If not running interactively, don't do anything
[ -z "$PS1" ] && return # If not running interactively, don't do anything
[[ $TERM == dumb ]] && return # If called from emacs, don't do anything
## Put the rest of your code here
## Bottom of RC
shopt -q login_shell && return ## If this is a login shell, load all except tmux
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
tmux attach || exec tmux new-session
fi
That way, I always have persistent terminal sessions and don't need a terminal emulator that has tabs since I can just do multiplexing in tmux
Kitty’s builtin functions are pretty darn useful. I use the icat & ssh functions daily as well as the Unicode insert (tho I wish they would strip that ‘Nerd Font’ noise). Also still a long-time fan of fish’s completions.
I wish alacritty would just implement sixel already. I love the project but the dev can be hostile towards features that other terminals have had since years.
That being said, it's his project, and he shouldn't be bound to the whims of the fanbase