###############-------------------------------------------------------------- ## ## 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 (refresh every minute) neww -d -nht0p 'exec htop -d 600' # 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' 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