2014-08-31 23:59:02 +02:00
|
|
|
|
###############--------------------------------------------------------------
|
|
|
|
|
##
|
2014-09-11 19:42:12 +02:00
|
|
|
|
## Fichier de configuration : ~/.tmux/tmux.conf
|
|
|
|
|
## 1.0: 14-09-11
|
2014-08-31 23:59:02 +02:00
|
|
|
|
##
|
|
|
|
|
## By Gardouille
|
|
|
|
|
##
|
|
|
|
|
## Ce fichier est lu automatiquement par tmux si il est placé dans le homedir
|
|
|
|
|
##
|
|
|
|
|
##
|
|
|
|
|
## Utilisation:
|
|
|
|
|
## tmux attach -d -t SESSION_ID
|
|
|
|
|
##
|
|
|
|
|
## Dépendances:
|
|
|
|
|
## vlock : permet de verrouiller tmux en cas d'inactivé ou d'appel (CTRL+b x)
|
2014-09-11 19:42:12 +02:00
|
|
|
|
## urlview : permet de lister les liens présents dans une fenêtre (CTRL+b u)
|
2014-08-31 23:59:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### UTF-8 -------------------------------------------------------------
|
|
|
|
|
set-option -g status-utf8 on
|
|
|
|
|
set-window-option -g utf8 on
|
|
|
|
|
|
|
|
|
|
#### statusbar ---------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
# Couleur du foreground (premier plan)
|
|
|
|
|
set -g status-fg yellow
|
|
|
|
|
# Couleur du background (arrière plan)
|
|
|
|
|
set -g status-bg black
|
|
|
|
|
|
|
|
|
|
## Terminaux par défaut
|
|
|
|
|
# Couleur du foreground
|
|
|
|
|
set-window-option -g window-status-fg cyan
|
|
|
|
|
# Couleur du background
|
|
|
|
|
set-window-option -g window-status-bg default
|
|
|
|
|
# Attribut
|
|
|
|
|
#bright/bold: gras
|
|
|
|
|
#dim:
|
|
|
|
|
#underscore: souligné
|
|
|
|
|
#blink: "clignotant"?
|
|
|
|
|
#reverse: Inverse les couleurs background et foreground
|
|
|
|
|
#hidden: caché
|
|
|
|
|
#italics: italique
|
|
|
|
|
set-window-option -g window-status-attr dim
|
|
|
|
|
|
|
|
|
|
## Terminal actif
|
|
|
|
|
# Couleur du foreground
|
|
|
|
|
set-window-option -g window-status-current-fg yellow
|
|
|
|
|
# Couleur du background
|
|
|
|
|
set-window-option -g window-status-current-bg cyan
|
|
|
|
|
# Attribut (cf ci-dessus pour la liste)
|
|
|
|
|
set-window-option -g window-status-current-attr bold
|
|
|
|
|
|
|
|
|
|
## Terminal avec notification
|
|
|
|
|
# Couleur du foreground
|
|
|
|
|
# Couleur du background
|
|
|
|
|
# Attribut
|
|
|
|
|
#setw -g window-status-alert-attr default
|
|
|
|
|
#setw -g window-status-alert-fg red
|
|
|
|
|
#setw -g window-status-alert-bg default
|
|
|
|
|
|
|
|
|
|
## Panel par défaut
|
|
|
|
|
set -g pane-border-fg white
|
|
|
|
|
#set -g pane-border-bg black
|
|
|
|
|
|
|
|
|
|
## Panel actif
|
|
|
|
|
set -g pane-active-border-fg cyan
|
|
|
|
|
#set -g pane-active-border-bg green
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Centrer la liste des terminaux
|
|
|
|
|
#set -g status-justify centre
|
|
|
|
|
|
|
|
|
|
# Partie gauche de la barre
|
|
|
|
|
# vide
|
|
|
|
|
set -g status-left ""
|
|
|
|
|
|
|
|
|
|
# Partie droit de la barre
|
|
|
|
|
# %H:%M:%S : Affiche de l'heure (actualisation lors de manipulation ou en fonction de la valeur de status-interval)
|
|
|
|
|
set -g status-right "[#[fg=cyan,bright]%H:%M:%S#[default]]"
|
|
|
|
|
|
|
|
|
|
# Si tmux est lancé hors de Xorg, on affiche des informations supplémentaires
|
|
|
|
|
## Partie gauche de la barre
|
|
|
|
|
# #H : le nom de la machine en vert
|
|
|
|
|
if '[ -z "$DISPLAY" ]' 'set -g status-left "[#[fg=green]#H#[default]]"'
|
|
|
|
|
## Partie droite de la barre
|
|
|
|
|
# #(cat /proc/loadavg | cut -d \" \" -f 1,2,3) : charge CPU en magenta
|
|
|
|
|
# %a %Y-%m-%d %H:%M : Le jour, la date d'aujourd'hui et l'heure en cyan et gras
|
|
|
|
|
if '[ -z "$DISPLAY" ]' 'set -g status-right "[ #[fg=magenta]#(cat /proc/loadavg | cut -d \" \" -f 1,2,3)#[default] ][ #[fg=cyan,bright]%a %Y-%m-%d %H:%M:%S #[default]]"'
|
|
|
|
|
if '[ -z "$DISPLAY" ]' 'set -g status-right-length 50'
|
|
|
|
|
|
|
|
|
|
# Raffraichissement de la barre d'état toutes les X secondes
|
|
|
|
|
set -g status-interval 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### keybindings --------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
## Redéfinition de la combinaison principale par celle de screen (CTRL+a)
|
|
|
|
|
unbind C-b
|
|
|
|
|
set -g prefix ^A
|
|
|
|
|
bind a send-prefix
|
|
|
|
|
|
|
|
|
|
## Redéfinition des raccourcis:
|
|
|
|
|
# Renommer le terminal courant
|
|
|
|
|
unbind A
|
|
|
|
|
bind A command-prompt "rename-window %%"
|
|
|
|
|
|
|
|
|
|
# Aller au terminal précédent (CTRL+a)
|
|
|
|
|
unbind ^A
|
|
|
|
|
bind ^A last-window
|
|
|
|
|
|
|
|
|
|
# Aller au terminal suivant (CTRL+n)
|
|
|
|
|
unbind ^N
|
|
|
|
|
bind ^N next-window
|
|
|
|
|
|
|
|
|
|
# Aller au terminal précédent (CTRL+p)
|
|
|
|
|
unbind ^P
|
|
|
|
|
bind ^P previous-window
|
|
|
|
|
|
|
|
|
|
# Créer un nouveau terminal (CTRL+c)
|
|
|
|
|
unbind ^C
|
|
|
|
|
#bind ^C new-window
|
|
|
|
|
##CLIPBOARD selection integration
|
|
|
|
|
##Requires prefix key before the command key
|
|
|
|
|
#Copy tmux paste buffer to CLIPBOARD
|
|
|
|
|
bind ^C run "tmux show-buffer | xclip -i -selection clipboard"
|
|
|
|
|
#Copy CLIPBOARD to tmux paste buffer and paste tmux paste buffer
|
|
|
|
|
bind ^V run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
|
|
|
|
|
|
|
|
|
|
# Détacher tmux
|
|
|
|
|
unbind ^D
|
|
|
|
|
bind ^D detach
|
|
|
|
|
|
|
|
|
|
# Verrouiller tmux
|
|
|
|
|
unbind ^X
|
|
|
|
|
bind ^X lock-server
|
|
|
|
|
unbind x
|
|
|
|
|
bind x lock-server
|
|
|
|
|
|
|
|
|
|
# Activer/Désactiver la synchronisation des panels
|
|
|
|
|
unbind ^S
|
|
|
|
|
bind ^S set-window-option synchronize-panes
|
|
|
|
|
|
2014-09-12 14:26:55 +02:00
|
|
|
|
# Lister les liens présents dans une fenêtre tmux (nécessite l'installation de urlview)
|
2014-09-11 19:42:12 +02:00
|
|
|
|
bind-key u capture-pane \; save-buffer ~/.tmux/.tmux-buffer \; new-window -n "urlview" '$SHELL -c "urlview < ~/.tmux/.tmux-buffer"'
|
|
|
|
|
|
|
|
|
|
# Recharger la configuration de tmux
|
|
|
|
|
bind-key r source-file ~/.tmux/tmux.conf
|
|
|
|
|
|
2014-08-31 23:59:02 +02:00
|
|
|
|
## Nouveaux raccourcis clavier pour les terminaux
|
|
|
|
|
# Aller au terminal n°{1,12} avec les touches F{1-12}
|
|
|
|
|
#bind ... selectw -t:0
|
|
|
|
|
#bind C-& selectw -t:0
|
|
|
|
|
bind F1 selectw -t:1
|
|
|
|
|
bind F2 selectw -t:2
|
|
|
|
|
bind F3 selectw -t:3
|
|
|
|
|
bind F4 selectw -t:4
|
|
|
|
|
bind F5 selectw -t:5
|
|
|
|
|
bind F6 selectw -t:6
|
|
|
|
|
bind F7 selectw -t:7
|
|
|
|
|
bind F8 selectw -t:8
|
|
|
|
|
bind F9 selectw -t:9
|
|
|
|
|
bind F10 selectw -t:10
|
|
|
|
|
bind F11 selectw -t:11
|
|
|
|
|
bind F12 selectw -t:12
|
|
|
|
|
|
|
|
|
|
# Pour basculer entre les différents terminaux, directement avec les touches F{1,12} (sans utiliser CTRL+a), on peut utiliser ça:
|
|
|
|
|
#bind -n F1 select-window -t 1
|
|
|
|
|
#bind -n F2 select-window -t 2
|
|
|
|
|
#bind -n F3 select-window -t 3
|
|
|
|
|
#bind -n F4 select-window -t 4
|
|
|
|
|
#bind -n F5 select-window -t 5
|
|
|
|
|
#bind -n F6 select-window -t 6
|
|
|
|
|
#bind -n F7 select-window -t 7
|
|
|
|
|
#bind -n F8 select-window -t 8
|
|
|
|
|
#bind -n F9 select-window -t 9
|
|
|
|
|
#bind -n F10 select-window -t 10
|
|
|
|
|
#bind -n F11 select-window -t 11
|
|
|
|
|
#bind -n F12 select-window -t 12
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Nouveaux raccourcis clavier pour les splits/panels
|
2014-09-12 14:26:55 +02:00
|
|
|
|
# split windows comme herbsluft + bépo
|
2014-08-31 23:59:02 +02:00
|
|
|
|
# Définition des splits comme dans vim (s: vertical et v: horizontal)
|
|
|
|
|
#bind s split-window -v
|
2014-09-12 14:26:55 +02:00
|
|
|
|
bind Enter split-window -h
|
|
|
|
|
unbind Space
|
|
|
|
|
bind Space split-window
|
2014-08-31 23:59:02 +02:00
|
|
|
|
|
|
|
|
|
# Permet de se déplacer entre les panels avec les touches hjkl
|
|
|
|
|
# h: gauche
|
|
|
|
|
# j: bas
|
|
|
|
|
# k: haut
|
|
|
|
|
# l: droite
|
|
|
|
|
bind h select-pane -L
|
|
|
|
|
bind j select-pane -D
|
|
|
|
|
bind k select-pane -U
|
|
|
|
|
bind l select-pane -R
|
|
|
|
|
|
2014-09-12 14:26:55 +02:00
|
|
|
|
# Changer la réorganisation des panes
|
|
|
|
|
unbind .
|
|
|
|
|
bind . next-layout
|
|
|
|
|
|
2014-08-31 23:59:02 +02:00
|
|
|
|
# Redimentionnement des panels comme vim
|
|
|
|
|
# Possibilité de changer la valeur "2" par ce qu'on veut
|
|
|
|
|
# < : agrandissement vers la gauche
|
|
|
|
|
# > : agrandissement vers la droite
|
|
|
|
|
# - : agrandissement vers le bas
|
|
|
|
|
# + : agrandissement vers la haut
|
|
|
|
|
bind < resize-pane -L 2
|
|
|
|
|
bind > resize-pane -R 2
|
|
|
|
|
bind - resize-pane -D 2
|
|
|
|
|
bind + resize-pane -U 2
|
|
|
|
|
|
|
|
|
|
# Aller au panel suivant avec Tab
|
|
|
|
|
unbind Tab
|
|
|
|
|
bind Tab select-pane -t:.+
|
|
|
|
|
# Aller au panel précédent avec SHIFT+Tab
|
|
|
|
|
unbind BTab
|
|
|
|
|
bind BTab select-pane -t:.-
|
|
|
|
|
|
|
|
|
|
## Raccourcis clavier pour les sessions
|
|
|
|
|
# Proposer la liste des sessions avec choix possible
|
|
|
|
|
unbind _
|
|
|
|
|
bind _ choose-session
|
|
|
|
|
unbind C-_
|
|
|
|
|
bind C-_ choose-session
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Configuration --------------------------------------------------------------
|
2014-09-11 19:42:12 +02:00
|
|
|
|
# Numéroter les fenêtres et les splits à partir de 1
|
|
|
|
|
set -g base-index 1
|
|
|
|
|
set -g pane-base-index 1
|
2014-08-31 23:59:02 +02:00
|
|
|
|
|
|
|
|
|
# Verrouillage de la session après inactivité (en s)
|
|
|
|
|
set -g lock-after-time 1800
|
|
|
|
|
# pour que le lock marche sous linux (apt-get install vlock)
|
|
|
|
|
set -g lock-command vlock
|
|
|
|
|
|
|
|
|
|
# Initialize sessions
|
|
|
|
|
bind I source-file ~/.tmux/splitWORK
|
|
|
|
|
bind V source-file ~/.tmux/split101010
|
|
|
|
|
|
|
|
|
|
#### Session --------------------------------------------------------------
|
|
|
|
|
# -sX : numéro de la session
|
|
|
|
|
# -nNOM_TERMINAL : nom du terminal
|
|
|
|
|
# -d : indique à tmux de ne pas attacher la session et de ne pas prendre les
|
|
|
|
|
# nouvelles fenêtres comme une fenêtre courante
|
|
|
|
|
# -t0:X : modifier les paramètres de la fenêtre X de la session 0. !Attention
|
|
|
|
|
# la fenêtre doit exister avant de pouvoir modifier ses paramètres!
|
|
|
|
|
# monitor-activity : permet de mettre en avant une fenêtre quand son contenu reçoit un événement
|
|
|
|
|
#
|
2014-09-10 21:38:08 +02:00
|
|
|
|
# Nouvelle session avec la première fenêtre qui exécute une mise à jour des dépôts
|
2014-09-12 14:26:55 +02:00
|
|
|
|
new -d -s0 -nh0me
|
2014-08-31 23:59:02 +02:00
|
|
|
|
# Nouvelle fenêtre 0:1 avec htop
|
|
|
|
|
neww -d -nht0p 'exec htop'
|
|
|
|
|
# Nouvelle fenêtre 0:2 avec weechat-curses distant
|
|
|
|
|
neww -d -nwee
|
|
|
|
|
# Nouvelle fenêtre 0:3 dans /media
|
|
|
|
|
neww -d -nSdata -c '/media/sdata/'
|
2014-09-12 14:26:55 +02:00
|
|
|
|
# Nouvelle fenêtre 0:4 dans dépot git
|
2015-02-20 11:07:44 +01:00
|
|
|
|
neww -d -ngit -c '/home/jegardai/depot'
|
2014-09-12 14:26:55 +02:00
|
|
|
|
setw -t0:4 aggressive-resize on
|
2014-08-31 23:59:02 +02:00
|
|
|
|
|
2014-09-12 14:26:55 +02:00
|
|
|
|
# Fenêtre par défaut: 3
|
|
|
|
|
select-window -t 3
|
2014-08-31 23:59:02 +02:00
|
|
|
|
|
|
|
|
|
#new -d -s1 -nvulgrim 'exec ssh tunnel.vulgrim.gardouille.fr'
|
|
|
|
|
#neww -d -nht0p 'exec htop'
|
|
|
|
|
#neww
|
|
|
|
|
|
|
|
|
|
# Pour se connecter à une session, on peut utiliser:
|
|
|
|
|
# tmux attach -d -t X
|