tmux/tmux.conf

250 lines
6.2 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:
## physlock: lightweight Linux console locking tool (CTRL+b x).
## urlview: Extracts URLs from text (CTRL+b u).
## cmatrix: Simulates the display from "The Matrix" used both with *physlock* (CTRL-b x).
### colors {{{
black="#000000"
lightblack="#151515"
blue="#0094cc"
grey="#909090"
darkgrey="#26221c"
lightgreen="#9fbc00"
green="#345f0c"
pink="#b00a44"
lightpink="#FF0675"
red="#ff0000"
darkred="#8f0000"
debianred="#D70A53"
white="#efefef"
### }}}
### global settings {{{
set -g default-terminal "screen-256color"
### }}}
### statusbar {{{
# Centrer la liste des terminaux
#set -g status-justify centre
# Partie gauche de la barre
# vide
set -g status-left ""
# 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]]"'
# right statusbar
# #H: hostname
# #(cat /proc/loadavg | cut -d \" \" -f 1,2,3) : CPU load
if '[ -z "$DISPLAY" ]' 'set -g status-right "#[fg=default,bold]#H#[fg=default,default] [ #[fg=default]#(cat /proc/loadavg | cut -d \" \" -f 1,2,3)#[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 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
# Present a menu of URLs to open from visible pane
bind-key u capture-pane \;\
save-buffer ~/.tmux/.tmux-buffer \;\
split-window -l 15 "urlview ~/.tmux/.tmux-buffer"
# Create a new session
unbind C-t
bind C-t command-prompt "new-session "
# reload tmux settings
unbind R
bind-key R source-file ~/.tmux/tmux.conf\; display-message "tmux config reloaded"
## 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
# toggle status bar
unbind c-h
bind c-h set -g status
### }}}
### 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 (aptitude install physlock)
# Use both cmatrix (if available) and physlock
if 'command -v cmatrix' 'set -g lock-command "cmatrix -s && physlock"' 'set -g lock-command physlock'
# Initialize sessions
bind I source-file ~/.tmux/splitWORK\; display-message "tmux split for Work"
bind V source-file ~/.tmux/split101010\; display-message "tmux split for 101010"
bind H source-file ~/.tmux/splitHP\; display-message "tmux split for HP"
### }}}
### session {{{
## If run a local session, source additionnal file to overload some config
if '[ -z "${SSH_TTY}" ]' 'source-file $HOME/.tmux/tmux.conf.local'
### }}}