tmux/tmux.conf

277 lines
7.9 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 ^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
# 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
#### 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
#
# Nouvelle session avec la première fenêtre qui exécute une mise à jour des dépôts
new -d -s0 -nh0me
# 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/'
# Nouvelle fenêtre 0:4 dans dépot git
neww -d -ngit -c '/home/jegardai/depot/ipr_puppet/environments/production'
setw -t0:4 aggressive-resize on
# Fenêtre par défaut: 3
select-window -t 3
#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