ITA - tmux customizzato su debian
April 2025 (2844 Words, 16 Minutes)
Introduzione
Procedura
Installare tmux
Installazione da pacchetto
sudo apt-get install tmux
Compila da linead di comando
Installa dipendenze Tmux da Debian
sudo apt-get install libevent ncurses libevent-dev ncurses-dev build-essential bison pkg-config
Compila i sorgenti
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
make install
Installare tmux plugin manager
Per installare il plugin menager bisogna creare la cartella:
mkdir -p ~/.tmux/plugins/
Installare manualmente il tpm:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Configurare tmp, aggiungere in fondo al file ~/.tmux.conf
:
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
# Other examples:
# set -g @plugin 'tmux-plugins/tmux-sensible'
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
Una volta che il file è salvato si può:
- avviare una nuova sessione di tmux
- ricaricare il file di configurazione con il comando:
tmux source ~/.tmux.conf
Installare plugins
- aggiungere il plugin in
~/.tmux.conf
conset -g @plugin '...'
- Digita
prefix + I
(i è maiuscola, come in Install) per installare il plugin.
Il plugin è installato in ~/.tmux/plugins/
.
Disintallare plugins
- Rimuovi (o commenta) il plugin dalla lista.
- Digita
prefix + alt + u
(u minuscola come in uninstall) per remuovere il plugin.
La cartella del plugin si trova in ~/.tmux/plugins/
, ma non viene rimossa in automatico, se neccessario puoi procedere alla rimozione manualmente.
Key bindings
prefix + I
: Installa i plugin aggiunti alla lista, e aggiorna l’ambiente di tmuxprefix + U
: Aggiorna i pluginsprefix + alt + u
: rimuove/disinstalla i plugin non presenti nella lista
Installare plugins per tmux
Si può navigare Lista di plugins per scegliere cosa installare.
Io ho deciso di installare i seguenti plugins:
- tmux-resurrect
- tmux-logging
Tmux Resurrect
Questo plugin permette di salvare e ripristinare lo stato delle finestre e dei pannelli:
- Tutte le sessioni, finestre, riquadri e il loro ordine
- Directory di lavoro corrente per ciascun riquadro
- Layout esatto dei riquadri all’interno delle finestre (anche con zoom)
- Sessione attiva e alternativa
- Finestra attiva e alternativa per ciascuna sessione
- Finestre con focus
- Riquadro attivo per ciascuna finestra
- “Sessioni raggruppate” (funzionalità utile quando si utilizza tmux con più monitor)
- Programmi in esecuzione all’interno di un riquadro
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'tmux-plugins/tmux-resurrect'
e premere: prefix + I
Key bindings
prefix + Ctrl-s
: Salva le sessioni attiveprefix + Ctrl-r
: Ripristina le sessioni salvate
Supporto per sessioni vim
Nel caso si usi nvim o vim vanilla si può integrare con vim-obsession
Se si usa astrovim ( come nel mio caso) il salvataggio delle sessioni è già integrato (docs.astronvim.com - sessions)[https://docs.astronvim.com/recipes/sessions/], è sufficiente
aggiungere al file ~/.tmux.conf
:
# for neovim
set -g @resurrect-strategy-nvim 'session'
Supporto per btop++
Come monitor di sistema, di solito uso btop++, per aggiungere il supporto a questo programma,
aggiungere al file ~/.tmux.conf
:
# save btop
set -g @resurrect-processes 'btop'
Qui si possono trovare altre info sulla gestione dei programmi.
Supporto il contenuto dei pannelli
Ripristinare il contenuto dei pannelli,
aggiungere al file ~/.tmux.conf
:
# save btop
set -g @resurrect-capture-pane-contents 'on'
NB: la documentazione riporta problemi nel caso la direttiva default-command
contenga dei ||
o &&
Tmux Logging
Funzionalità:
- Registrazione di tutto l’output nel riquadro corrente
- Dopo aver avviato la registrazione, tutto ciò che è stato digitato e tutto l’output verranno salvati in un file. Comodo per tenere traccia del proprio lavoro.
- “Cattura schermo” nel riquadro corrente
- Tutto il testo visibile nel riquadro corrente viene salvato in un file. Come uno screenshot, ma in formato testuale.
- Salva la cronologia completa del riquadro corrente
- Tutto ciò che è stato digitato e tutto l’output dalla creazione del riquadro corrente possono essere salvati in un file.
- Cancella la cronologia del riquadro con prefisso + alt + c
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'tmux-plugins/tmux-logging'
e premere: prefix + I
Key bindings
Registrazione
Attiva/disattiva la registrazione nel riquadro corrente.
- Tasti di scelta rapida:
prefix + maiusc + p
- Formato del nome file:
tmux-#{nome_sessione}-#{indice_finestra}-#{indice_pane}-%Y%m%dT%H%M%S.log
- Percorso file:
$HOME
(directory home utente) - File di esempio:
~/tmux-mia-sessione-0-1-20140527T165614.log
Cattura schermata
Salva il testo visibile nel riquadro corrente. Equivalente a uno “screenshot testuale”.
- Tasti di scelta rapida:
prefisso + alt + p
- Formato del nome file:
tmux-screen-capture-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log
- Percorso del file:
$HOME
(directory home dell’utente) - File di esempio:
tmux-screen-capture-my-session-0-1-20140527T165614.log
Salva la cronologia completa
Salva la cronologia completa del pannello in un file. Comodo se ti ricordi retroattivamente di dover registrare/salvare tutto il lavoro.
- Tasti di scelta rapida:
prefix + alt + maiusc + p
- Formato del nome del file:
tmux-history-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log
- Percorso del file:
$HOME
(directory home dell’utente) - File di esempio:
tmux-history-my-session-0-1-20140527T165614.log
NOTA: questa funzionalità dipende dal valore di history-limit, ovvero il numero di righe che Tmux conserva nel buffer di scrollback. Verrà salvato in un file solo ciò che Tmux ha conservato. Utilizzare set -g history-limit 50000 in .tmux.conf; sui computer moderni è accettabile impostare questa opzione su un numero elevato.
Cancella la cronologia del riquadro
Questa è solo una comoda combinazione di tasti.
- Tasti di scelta rapida:
prefix + alt + c
Tmux Pain Control
Plugin Tmux per il controllo dei riquadri. Aggiunge associazioni standard per la navigazione dei riquadri.
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'tmux-plugins/tmux-pain-control'
e premere: prefix + I
Key bindings
Navigazione
prefix + h
eprefix + C-h
: seleziona il riquadro a sinistraprefix + j
eprefix + C-j
: seleziona il riquadro sotto quello correnteprefix + k
eprefix + C-k
: seleziona il riquadro sopraprefix + l
eprefix + C-l
: seleziona il riquadro a destra
Nota: questo sostituisce il binding predefinito di tmux per alternare tra le ultime finestre attive, prefix + l. tmux-sensible offre un binding migliore, prefix + a (se il prefix è C-a).
Ridimensionamento dei riquadri
prefix + Maiusc + h
: ridimensiona il riquadro corrente di 5 celle a sinistraprefix + Maiusc + j
: ridimensiona 5 celle verso il bassoprefix + Maiusc + k
: ridimensiona 5 celle verso l’altoprefix + Maiusc + l
: ridimensiona 5 celle a destra
Queste mappature sono ripetibili. Il numero di celle da ridimensionare può essere configurato con l’opzione @pane_resize. Consultare la sezione di configurazione per i dettagli.
Suddivisione dei riquadri
prefix + |
: Divide il riquadro corrente in due, a sinistra e a destra.prefix + -
: Divide il riquadro corrente in due, in alto e in basso.prefix + \
: Divide l’intera larghezza del riquadro corrente in due, a sinistra e a destra.prefix + _
: Divide l’intera altezza del riquadro corrente in due, in alto e in basso.
Il riquadro appena creato ha sempre lo stesso percorso del riquadro originale.
Scambio di finestre
prefix + <
: Sposta la finestra corrente di una posizione a sinistraprefix + >
: Sposta la finestra corrente di una posizione a destra
Tmux CPU and GPU status
Permette di visualizzare le informazioni su CPU e GPU in Tmux status-right
e status-left
. Visualizzazione configurabile di percentuale e icone.
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'tmux-plugins/tmux-cpu'
e premere: prefix + I
Tmux battery status
Permette di visualizzare le informazioni della batteria in Tmux status-right
e status-left
. Visualizzazione configurabile di percentuale e icone.
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'tmux-plugins/tmux-battery'
e premere: prefix + I
Installare temi per tmux
Installazione
Aggiungere questa linea all’elenco dei plugins:
set -g @plugin 'catppuccin/tmux#v2.1.3'
e premere: prefix + I
Configurazione
Per scegliere il flavour usiamo:
set -g @catppuccin_flavor 'mocha' # latte, frappe, macchiato or mocha
Seguono alcune configurazioni finali da aggiungere al file per ~/.tmux.conf
ottenere una barra di stato carina:
# Make the status line pretty and add some modules
set -g status-right-length 100
set -g status-left-length 100
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -agF status-right "#{E:@catppuccin_status_cpu}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -ag status-right "#{E:@catppuccin_status_uptime}"
set -agF status-right "#{E:@catppuccin_status_battery}"
Conclusione
Il file di configurazione finale è :
# unbind C-b
# set -g prefix C-a
# bind C-a send-prefix
# abbilita la modalità 256 colori
set -g default-terminal "tmux-256color"
# abilita il supporto per il mouse
# set -g mouse on
# modifica le shortcat per splittare i pannelli
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %
# vim like shortcat per lo spostamento
bind -r h select-pane -L
bind -r j select-pane -D
bind -r k select-pane -U
bind -r l select-pane -R
# quando premi prefix + q il pannello attivo ha il colore blu
set -g display-panes-active-colour blue
set -g display-panes-colour grey
# for neovim
set -g @resurrect-strategy-nvim 'session'
set -g @resurrect-processes 'btop'
set -g @resurrect-capture-pane-contents 'on'
set -g @catppuccin_flavor 'mocha' # latte, frappe, macchiato or mocha
# Make the status line pretty and add some modules
set -g status-right-length 100
set -g status-left-length 100
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -agF status-right "#{E:@catppuccin_status_cpu}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -ag status-right "#{E:@catppuccin_status_uptime}"
set -agF status-right "#{E:@catppuccin_status_battery}"
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-logging'
set -g @plugin 'tmux-plugins/tmux-pain-control'
set -g @plugin 'tmux-plugins/tmux-cpu'
set -g @plugin 'tmux-plugins/tmux-battery'
set -g @plugin 'catppuccin/tmux#v2.1.3'
# Other examples:
# set -g @plugin 'tmux-plugins/tmux-sensible'
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'github_username/plugin_name#branch'
# set -g @plugin 'git@github.com:user/plugin'
# set -g @plugin 'git@bitbucket.com:user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
Key bindings
File pdf delle scorciatoie è :
Plugins
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi I |
Installa i plugins |
Ctrl + b , poi U |
Aggiorna i plugins |
Ctrl + b , poi alt + u |
Rimuove/disinstalla i plugin |
Sessioni
Combinazione di Tasti / Comando | Azione |
---|---|
tmux o tmux new |
Avviare una nuova sessione |
tmux new -s nome_sessione |
Avviare una nuova sessione con nome |
Ctrl + b , poi $ |
Rinominare la sessione corrente |
Ctrl + b , poi d |
Staccarsi dalla sessione |
Ctrl + b , poi s |
Visualizzare tutte le sessioni |
Ctrl + b , poi ( |
Passare alla sessione precedente |
Ctrl + b , poi ) |
Passare alla sessione successiva |
tmux attach -t nome_sessione |
Collegarsi a una sessione esistente |
tmux kill-session -t nome_sessione |
Terminare una sessione specifica |
tmux kill-session -a -t nome_sessione |
Terminare tutte le sessioni tranne una |
Ctrl + b , poi Ctrl + s |
Savla le sessioni attive |
Ctrl + b , poi Ctrl + r |
Ripristina le sessioni salvate |
Finestre
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi c |
Creare una nuova finestra |
Ctrl + b , poi , |
Rinominare la finestra corrente |
Ctrl + b , poi & |
Chiudere la finestra corrente |
Ctrl + b , poi w |
Elencare tutte le finestre |
Ctrl + b , poi p |
Passare alla finestra precedente |
Ctrl + b , poi n |
Passare alla finestra successiva |
Ctrl + b , poi l |
Passare all’ultima finestra attiva |
Ctrl + b , poi 0 …9 |
Selezionare finestra per numero |
:swap-window -s 2 -t 1 |
Scambiare due finestre |
:move-window -r |
Rinumerare le finestre |
Pannelli
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi " |
Dividere orizzontalmente |
Ctrl + b , poi % |
Dividere verticalmente |
Ctrl + b , poi o |
Passare al pannello successivo |
Ctrl + b , poi q |
Mostrare i numeri dei pannelli |
Ctrl + b , poi q , quindi 0 …9 |
Selezionare pannello per numero |
Ctrl + b , poi { |
Spostare il pannello a sinistra |
Ctrl + b , poi } |
Spostare il pannello a destra |
Ctrl + b , poi z |
Massimizzare/ripristinare il pannello |
Ctrl + b , poi ! |
Convertire il pannello in finestra |
Ctrl + b , poi x |
Chiudere il pannello corrente |
Ctrl + b + frecce direzionali |
Ridimensionare il pannello |
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi h |
seleziona il riquadro a sinistra |
Ctrl + b , poi j |
seleziona il riquadro sotto |
Ctrl + b , poi k |
seleziona il riquadro sopra |
Ctrl + b , poi l |
seleziona il riquadro a destra |
Ctrl + b , poi H |
ridimensiona a sinistra |
Ctrl + b , poi J |
ridimensiona verso il basso |
Ctrl + b , poi K |
ridimensiona verso l’alto |
Ctrl + b , poi L |
ridimensiona a destra |
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi | |
Divide il riquadro in due, a sinistra e a destra. |
Ctrl + b , poi - |
Divide il riquadro in due, in alto e in basso. |
Ctrl + b , poi \ |
Divide l’intera larghezza del riquadro corrente in due, a sinistra e a destra. |
Ctrl + b , poi _ |
Divide l’intera altezza del riquadro corrente in due, in alto e in basso. |
Modalità Copia
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi [ |
Entrare in modalità copia |
Ctrl + b , poi PgUp |
Scorrere una pagina su |
Spazio |
Iniziare la selezione |
Invio |
Copiare la selezione |
q |
Uscire dalla modalità copia |
Ctrl + b , poi ] |
Incollare il contenuto copiato |
/ |
Cercare avanti |
? |
Cercare indietro |
n |
Prossima occorrenza |
N |
Occorrenza precedente |
Logging
Combinazione di Tasti / Comando | Azione |
---|---|
Ctrl + b , poi P |
Attiva/disattiva la registrazione |
Ctrl + b , poi p |
Salva il testo visibile |
Ctrl + b , poi alt + P |
Salva la cronologia |
Ctrl + b , alt + c |
Cancella la cronologia |
Riferimenti
- tmuxcheatsheet
- tmux
- Tmux Plugin Manager
- Tmux Resurrect
- Vim Obsession
- Tmux Logging
- Tmux Pain Control
- Tmux CPU and GPU status
- Tmux battery status
- catppuccin

Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale Theme Moonwalk