##############-------------------------------------------------------------- ## ## 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 #### session --------------------------------------------------------- ## If run a local session, source additionnal configuration # Different prefix key # Different colors if '[ -z "${SSH_TTY}" ]' 'source-file $HOME/.tmux/tmux.conf.local' #### statusbar --------------------------------------------------------- # 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 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