tmux/tmux.conf

271 lines
7.5 KiB
Plaintext
Raw Normal View History

###############--------------------------------------------------------------
##
## Fichier de configuration : ~/.tmux/tmux.conf
## 1.0: 14-09-11
##
## 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)
## urlview : permet de lister les liens présents dans une fenêtre (CTRL+b u)
#### 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
#Copy tmux buffer to CLIPBOARD
unbind ^C
bind-key y run-shell -b "tmux save-buffer - | xclip -i -selection clipboard"
#Copy CLIPBOARD to tmux buffer and paste-it in tmux
bind ^V run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
# Copy-mode
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
# Window selection by name
unbind b
bind-key b command-prompt "find-window -NT '%%'"
unbind C-b
bind-key C-b command-prompt "find-window -CNT '%%'"
# Détacher tmux
unbind ^D
bind ^D detach
2015-05-19 22:09:02 +02:00
# Zoom/Unzoom a pane
unbind f
bind-key f resize-pane -Z
unbind C-f
bind-key C-f resize-pane -Z
# 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
# Lister les liens présents dans une fenêtre tmux (nécessite l'installation de urlview)
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
## 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
# split windows comme herbsluft + bépo
# Définition des splits comme dans vim (s: vertical et v: horizontal)
#bind s split-window -v
bind Enter split-window -h
unbind Space
bind Space split-window
# 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
# Changer la réorganisation des panes
unbind .
bind . next-layout
# 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 --------------------------------------------------------------
# Numéroter les fenêtres et les splits à partir de 1
set -g base-index 1
set -g pane-base-index 1
# 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
bind H source-file ~/.tmux/splitHP
#### 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
# Pour se connecter à une session, on peut utiliser:
# tmux attach -d -t X