tmux/tmux.conf

283 lines
7.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

##############--------------------------------------------------------------
##
## 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 C-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 C-a
bind-key C-a last-window
# Aller au terminal suivant (CTRL+n)
unbind C-n
bind-key C-n next-window
# Aller au terminal précédent (CTRL+p)
unbind C-p
bind-key C-p previous-window
#Copy tmux buffer to CLIPBOARD
unbind C-y
bind-key y run-shell -b "tmux save-buffer - | xclip -i -selection clipboard"
#Copy CLIPBOARD to tmux buffer and paste-it in tmux
unbind C-v
bind-key C-v run "tmux set-buffer -- \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
# Copy-mode
unbind PPage
bind PPage copy-mode
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
# Paste buffer
unbind P
bind-key P run "tmux paste-buffer"
# 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 C-d
bind C-d detach
# 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 C-x
bind C-x lock-server
unbind x
bind x lock-server
# Activer/Désactiver la synchronisation des panels
unbind C-s
bind C-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"'
# Create a new session
unbind C-t
bind C-t command-prompt "new-session "
# Recharger la configuration de tmux
unbind R
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 _ switch-client -n
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