Tmux
I use alacritty as my main terminal emulator. I spend a lot of time on it. But there is one feature missing : the tabs ! Of course i could switch to another terminal emulator with that feature but i love alacritty. I also would like to stay as minimalist as possible. That’s where a terminal multiplexer comes in. There are many options out there : - Gnu screen - Tmux - Zellij I’ve tested all of them, the one i feel the more comfortable with is tmux.
Tmux functionnality i use
To start a command in tmux the default is ctrl + b + command. In order to be readable i will only list the command :
c |
create a new tab |
, |
rename the current tab |
3 |
go to tab number three |
p |
go to previous tab |
n |
go to next tab |
x |
close the tab |
? |
view all keybindings, exit with q |
d |
detach from the current session |
From the terminal there are few usefull commands:
tmux ls |
list sessions |
tmux attach -t 0 |
attach to the session number 0 |
tmux source .tmux.conf |
load/reload config file |
That’s all the keybindings i use for now, tmux can also split the terminal but i’ve got a tiling window manager so i’don’t use that. And other features aren’t useful for me.
Start Tmux on terminal launch
To start tmux at every start of my terminal, i’ve added tmux in my .bashrc file.
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
alias sudo='doas'
#PS1='[\u@\h \W]\$ '
fastfetch
#PS1='\e[36m[\u@\h:\e[34m\w]\]\e[00m$ '
eval "$(starship init bash)"
# start tmux
tmux
# Created by `pipx` on 2024-05-04 14:54:14
export PATH=$HOME/.local/bin:$HOME/.local/share/gem/ruby/3.3.0/bin:${PATH}
export GEM_PATH=/usr/lib/ruby/gems/3.2.0/:$HOME/.local/share/gem/ruby/3.3.0/
# Correct a bug with java and wayland
export _JAVA_AWT_WM_NONREPARENTING=1
# default screenshot directory
GRIM_DEFAULT_DIR=/home/mathieu/Screenshots
XDG_SCREENSHOTS_DIR=/home/mathieu/Screenshots
# Enables autocompletion of options for bashfuscator
eval "$(/sbin/register-python-argcomplete bashfuscator)"
Adaptation
The default setup is ok but lacks the mouse scroll, in order to enable it i’ve written a .tmux.conf file :
#.tmux.conf
# Enable mouse mode
set -g mouse on
# Enable clipboard
set -s set-clipboard external
Then i use the following command :
tmux source .tmux.conf
There is one feature that is different from what i normally do, in my terminal i use middle mouse button to paste highlighted info from other apps. In order to do that inside tmux i have to press shift + middle button. If it is from tmux to tmux i just press middle click.