##############-------------------------------------------------------------- ## ## 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 copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel # 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' ### }}} ### bepo {{{ if 'setxkbmap -print|grep bepo' 'source-file $HOME/.tmux/tmux.conf.bepo' ### }}}