- SYNTAXE
- DESCRIPTION
- COMBINAISONS DE TOUCHES PAR DÉFAUT
- ANALYSE ET EXÉCUTION DES COMMANDES
- SYNTAXE D’ANALYSE
- COMMANDES
- CLIENTS ET SESSIONS
- FENÊTRES ET PANNEAUX
- LIAISONS DE TOUCHES
- OPTIONS
- HOOKS
- FORMATS
- STYLES
- NOMS ET TITRES
- ENVIRONNEMENT GLOBAL ET DE SESSION
- BARRE D’ÉTAT
- TAMPOONS
- COMMANDES DIVERSES
- MESSAGES DE SORTIE
- EXTENSIONS TERMINFO
- MODE DE CONTRÔLE
- ENVIRONNEMENT
- FICHIERS
- EXEMPLES
- VOIR AUSSI
- AUTEURS
tmux — multiplexeur de terminal
SYNTAXE
tmux [-2CDhlNuVv] [-c commande-shell] [-f fichier] [-L nom-socket] [-S chemin-socket] [-T fonctionnalités]
[commande [indicateurs]]
DESCRIPTION
tmux est un multiplexeur de terminal : il permet de créer, d’accéder et de contrôler plusieurs terminaux à partir d’un seul écran. tmux peut être détaché d’un écran et continuer à s’exécuter en arrière-plan, puis être réattaché ultérieurement.
Lorsque tmux est démarré, il crée une nouvelle session avec une seule fenêtre et l’affiche à l’écran. Une ligne d’état en bas de l’écran affiche des informations sur la session actuelle et est utilisée pour entrer des commandes interactives.
Une session est une collection de pseudo-terminaux gérée par tmux. Chaque session possède une ou plusieurs fenêtres qui lui sont associées. Une fenêtre occupe tout l’écran et peut être divisée en panneaux rectangulaires, chacun étant un pseudo-terminal distinct (la page de manuel pty(4) documente les détails techniques des pseudo-terminaux). N’importe quel nombre d’instances de tmux peut se connecter à la même session, et n’importe quel nombre de fenêtres peut être présent dans la même session. Une fois que toutes les sessions sont arrêtées, tmux se termine.
Chaque session est persistante et survivra à une déconnexion accidentelle (telle qu’une interruption de connexion ssh(1)) ou à un détachement intentionnel (avec les touches ‘C-b d’). tmux peut être réattaché en utilisant :
$ tmux attach
Dans tmux, une session est affichée à l’écran par un client et toutes les sessions sont gérées par un seul serveur. Le serveur et chaque client sont des processus distincts qui communiquent via un socket dans /tmp.
Les options sont les suivantes :
-2 Forcer tmux à supposer que le terminal prend en charge 256 couleurs. Cela équivaut à -T 25.
-C Démarrer en mode contrôle (voir la section « MODE DE CONTRÔLE »). Indiqué deux fois (-CC), désactive l’écho.
-c commande-shell
Exécuter commande-shell en utilisant le shell par défaut. Si nécessaire, le serveur tmux sera démarré pour récupérer l’option default-shell. Cette option est destinée à la compatibilité avec [sh]({filename}../../sh)(1) lorsque tmux est utilisé comme shell de connexion.
-D Ne pas démarrer le serveur tmux en tant que démon. Cela désactive également l’option exit-empty. Avec -D, la commande ne peut pas être spécifiée.
-f fichier Spécifier un fichier de configuration alternatif. Par défaut, tmux charge le fichier de configuration système à partir de /etc/tmux.conf, s’il est présent, puis recherche un fichier de configuration utilisateur à l’emplacement ~/.tmux.conf ou $XDG_CONFIG_HOME/tmux/tmux.conf.
Le fichier de configuration est un ensemble de commandes tmux qui sont exécutées en séquence lorsque le serveur est démarré pour la première fois. tmux charge les fichiers de configuration une seule fois lorsque le processus du serveur a démarré. La commande source-file peut être utilisée pour charger un fichier ultérieurement.
tmux affiche tous les messages d'erreur provenant des commandes dans les fichiers de configuration dans la première session créée, et continue à traiter le reste du fichier de configuration.
-h Affiche les informations d'utilisation et quitte.
-L socket-name
tmux stocke le socket du serveur dans un répertoire sous TMUX_TMPDIR ou /tmp s'il n'est pas défini. Le socket par défaut est nommé default. Cette option permet de spécifier un nom de socket différent, permettant ainsi d'exécuter plusieurs serveurs tmux indépendants. Contrairement à -S, un chemin complet n'est pas nécessaire : tous les sockets sont créés dans un répertoire tmux-UID sous le répertoire spécifié par TMUX_TMPDIR ou dans /tmp. Le répertoire tmux-UID est créé par tmux et ne doit pas être accessible en lecture, écriture ou exécution par les autres utilisateurs.
Si le socket est supprimé par erreur, le signal SIGUSR1 peut être envoyé au processus serveur tmux pour le recréer (notez que cela échouera si les répertoires parents sont manquants).
-l Se comporter comme un shell de connexion. Cette option n'a actuellement aucun effet et est destinée à la compatibilité avec d'autres shells lors de l'utilisation de tmux comme shell de connexion.
-N Ne pas démarrer le serveur, même si la commande le ferait normalement (par exemple, new-session ou start-server).
-S socket-path
Spécifie un chemin d'accès complet alternatif au socket du serveur. Si -S est spécifié, le répertoire de socket par défaut n'est pas utilisé et toute option -L est ignorée.
-T features Définit les fonctionnalités du terminal pour le client. Il s'agit d'une liste de fonctionnalités séparées par des virgules. Consultez l'option terminal-features.
-u Écrit une sortie UTF-8 vers le terminal, même si la première variable d'environnement de LC_ALL, LC_CTYPE ou LANG définie ne contient pas "UTF-8" ou "UTF8".
-V Affiche la version de tmux.
-v Demande une journalisation détaillée. Les messages de journalisation seront enregistrés dans les fichiers tmux-client-PID.log et tmux-server-PID.log dans le répertoire actuel, où PID est l'ID du processus serveur ou client. Si -v est spécifié deux fois, un fichier tmux-out-PID.log supplémentaire est généré, qui contient une copie de tout ce que tmux écrit sur le terminal.
Le signal SIGUSR2 peut être envoyé au processus serveur tmux pour activer ou désactiver la journalisation (comme si -v était donné).
command [flags]
Cela spécifie l'une des commandes utilisées pour contrôler tmux, comme décrit dans les sections suivantes. Si aucune commande n'est spécifiée, la commande de default-client-command est supposée, ce qui est new-session par défaut.
COMBINAISONS DE TOUCHES PAR DÉFAUT
tmux peut être contrôlé depuis un client connecté en utilisant une combinaison de touches composée d'une touche de préfixe, 'C-b' (Ctrl-b) par défaut, suivie d'une touche de commande.
Les combinaisons de touches de commande par défaut sont :
C-b Envoie la touche de préfixe (C-b) à l'application.
C-o Fait pivoter les volets de la fenêtre actuelle vers l'avant.
C-z Suspend le client tmux.
! Sépare le volet actuel de la fenêtre.
" Divise le volet actuel en deux, en haut et en bas.
# Affiche la liste de tous les tampons de collage.
$ Renomme la session actuelle.
% Divise le volet actuel en deux, à gauche et à droite.
& Tue la fenêtre actuelle.
' Invite à entrer un index de fenêtre pour la sélectionner.
( Passe le client connecté à la session précédente.
) Passe le client connecté à la session suivante.
, Renomme la fenêtre actuelle.
- Supprime le tampon de texte copié le plus récent.
. Invite à entrer un index pour déplacer la fenêtre actuelle.
0 à 9 Sélectionne les fenêtres 0 à 9.
: Ouvre l'invite de commande tmux.
; Passe au volet actif précédent.
= Permet de choisir interactivement le tampon à coller dans une liste.
? Affiche la liste de toutes les combinaisons de touches.
D Permet de choisir un client à partir duquel se déconnecter.
L Permet de revenir à la dernière session du client connecté.
[ Ouvre le mode de copie pour copier du texte ou afficher l'historique.
] Colle le tampon de texte copié le plus récent.
c Crée une nouvelle fenêtre.
d Déconnecte le client actuel.
f Invite à rechercher du texte dans les fenêtres ouvertes.
i Affiche des informations sur la fenêtre actuelle.
l Passe à la fenêtre sélectionnée précédemment.
m Marque le volet actuel (voir select-pane -m).
M Efface le volet marqué.
n Passe à la fenêtre suivante.
o Sélectionne le volet suivant dans la fenêtre actuelle.
p Passe à la fenêtre précédente.
q Affiche brièvement les index des volets.
r Force le re-dessin du client connecté.
s Permet de sélectionner interactivement une nouvelle session pour le client connecté.
t Affiche l'heure.
w Permet de choisir interactivement la fenêtre actuelle.
x Tue le volet actuel.
z Active/désactive l'état de zoom du volet actuel.
{ Échange le volet actuel avec le volet précédent.
} Échange le volet actuel avec le volet suivant.
~ Affiche les messages tmux précédents, le cas échéant.
Page Up Ouvre le mode de copie et fait défiler une page vers le haut.
Flèche haut,
Flèche bas,
Flèche gauche,
Flèche droite
Passe au volet au-dessus, en dessous, à gauche ou à droite du volet actuel.
Alt+1 à Alt+7 Dispose les volets dans l'une des sept mises en page prédéfinies : even-horizontal, even-vertical, main-horizontal, main-horizontal-mirrored, main-vertical, main-vertical-mirrored ou tiled.
Espace Dispose la fenêtre actuelle dans la mise en page prédéfinie suivante.
Alt+n Passe à la fenêtre suivante avec un indicateur de cloche ou d'activité.
Alt+o Fait pivoter les volets de la fenêtre actuelle vers l'arrière.
Alt+p Passe à la fenêtre précédente avec un indicateur de cloche ou d'activité.
Ctrl+Flèche
haut, Ctrl+Flèche
bas,
Ctrl+Flèche
gauche, Ctrl+Flèche
droite
Redimensionne le volet actuel par étapes d'une cellule.
Alt+Flèche
haut, Alt+Flèche
bas,
Alt+Flèche
gauche, Alt+Flèche
droite
Redimensionne le volet actuel par étapes de cinq cellules.
Les raccourcis clavier peuvent être modifiés à l'aide des commandes bind-key et unbind-key.
ANALYSE ET EXÉCUTION DES COMMANDES
tmux prend en charge un grand nombre de commandes qui peuvent être utilisées pour contrôler son comportement. Chaque commande a un nom et peut accepter zéro ou plusieurs indicateurs et arguments. Elles peuvent être liées à une touche avec la commande `bind-key` ou exécutées à partir de l'invite de commandes, d'un script shell, d'un fichier de configuration ou de l'invite de commandes. Par exemple, la même commande `set-option` exécutée à partir de l'invite de commandes, depuis `~/.tmux.conf` et liée à une touche peut ressembler à :
$ tmux set-option -g status-style bg=cyan
set-option -g status-style bg=cyan
bind-key C set-option -g status-style bg=cyan
Ici, le nom de la commande est « set-option », « -g » est un indicateur et « status-style » et « bg=cyan » sont des arguments.
tmux distingue l’analyse et l’exécution des commandes. Pour exécuter une commande, tmux doit la diviser en son nom et ses arguments. C’est l’analyse de la commande. Si une commande est exécutée à partir du shell, c’est le shell qui l’analyse ; si elle est exécutée à l’intérieur de tmux ou à partir d’un fichier de configuration, c’est tmux qui le fait. Voici quelques exemples de moments où tmux analyse les commandes :
- dans un fichier de configuration ;
- tapée à l’invite de commandes (voir invite de commandes) ;
- transmise à bind-key ;
- transmise en arguments à if-shell ou confirm-before.
Pour exécuter les commandes, chaque client dispose d’une « file d’attente de commandes ». Une file d’attente de commandes globale, non attachée à un client, est utilisée au démarrage pour les fichiers de configuration tels que ~/.tmux.conf. Les commandes analysées ajoutées à la file d’attente sont exécutées dans l’ordre. Certaines commandes, comme if-shell et confirm-before, analysent leur argument pour créer une nouvelle commande qui est insérée immédiatement après elles. Cela signifie que les arguments peuvent être analysés deux fois ou plus, une fois lorsque la commande parente (telle qu’if-shell) est analysée et une seconde fois lorsqu’elle analyse et exécute sa commande. Les commandes telles qu’if-shell, run-shell et display-panes arrêtent l’exécution des commandes suivantes dans la file d’attente jusqu’à ce que quelque chose se produise : if-shell et run-shell jusqu’à ce qu’une commande shell soit terminée, et display-panes jusqu’à ce qu’une touche soit enfoncée.
Par exemple, les commandes suivantes :
new-session ; new-window
if-shell "true" "split-window"
kill-session
Exécuteront new-session, new-window, if-shell, la commande shell true(1), split-window et kill-session dans cet ordre.
La section « COMMANDES » répertorie les commandes tmux et leurs arguments.
SYNTAXE D’ANALYSE
Cette section décrit la syntaxe des commandes analysées par tmux, par exemple dans un fichier de configuration ou à l’invite de commandes. Notez que lorsque des commandes sont saisies dans le shell, elles sont analysées par le shell (voir par exemple ksh(1) ou csh(1)).
Chaque commande est terminée par un saut de ligne ou un point-virgule (;). Les commandes séparées par des points-virgules forment ensemble une « séquence de commandes » ; si une commande de la séquence rencontre une erreur, aucune des commandes suivantes n’est exécutée.
Il est recommandé qu’un point-virgule utilisé comme séparateur de commandes soit écrit comme un jeton distinct, par exemple à partir de sh(1) :
$ tmux neww \; splitw
Ou :
$ tmux neww ';' splitw
Ou à partir de l’invite de commandes tmux :
neww ; splitw
Cependant, un point-virgule en fin de ligne est également interprété comme un séparateur de commandes, par exemple dans ces commandes sh(1) :
$ tmux neww\; splitw
Ou :
$ tmux 'neww;' splitw
Comme dans ces exemples, lorsque tmux est exécuté à partir du shell, il faut prendre des précautions particulières pour citer correctement les point-virgules :
Les point-virgules qui doivent être interprétés comme un séparateur de commandes doivent être échappés conformément aux conventions du shell. Pour [sh]({filename}../../sh)(1), cela signifie généralement les mettre entre guillemets (par exemple, « neww ; splitw ») ou les échapper (par exemple, « neww \; splitw »).
Les point-virgules individuels ou les point-virgules en fin de ligne qui doivent être interprétés comme des arguments doivent être échappés deux fois : une fois conformément aux conventions du shell, et une seconde fois pour tmux ; par exemple :
$ tmux neww 'foo\;' bar
$ tmux neww foo\\\; bar
Les point-virgules qui ne sont pas des éléments individuels ou qui ne suivent pas un autre élément ne doivent être échappés qu’une seule fois, conformément aux conventions du shell ; par exemple :
$ tmux neww 'foo-;-bar'
$ tmux neww foo-\;-bar
Les commentaires sont marqués par le caractère # non entre guillemets. Tout le texte restant après un commentaire est ignoré jusqu’à la fin de la ligne.
Si le dernier caractère d’une ligne est \, la ligne est jointe à la ligne suivante (le \ et le saut de ligne sont complètement supprimés). Il s’agit d’une continuation de ligne qui s’applique à la fois à l’intérieur et à l’extérieur des chaînes entre guillemets et dans les commentaires, mais pas à l’intérieur des accolades.
Les arguments des commandes peuvent être spécifiés sous forme de chaînes entourées de guillemets simples (') ou de guillemets doubles ("), ou sous forme de listes de commandes entourées d’accolades ({}). Ceci est requis lorsque l’argument contient un caractère spécial. Les chaînes entre guillemets simples et entre guillemets doubles ne peuvent pas s’étendre sur plusieurs lignes, sauf avec une continuation de ligne. Les accolades peuvent s’étendre sur plusieurs lignes.
À l’extérieur des guillemets et à l’intérieur des guillemets doubles, les remplacements suivants sont effectués :
- Les variables d’environnement précédées de $ sont remplacées par leur valeur provenant de l’environnement global (voir la section « ENVIRONNEMENT GLOBAL ET DE SESSION »).
- Un ~ ou ~utilisateur en tête est étendu au répertoire personnel de l’utilisateur actuel ou spécifié.
- \uXXXX ou \uXXXXXXXX est remplacé par le point de code Unicode correspondant au nombre hexadécimal à quatre ou huit chiffres donné.
- Lorsqu’il est précédé (échappé) par un \, les caractères suivants sont remplacés : \e par le caractère d’échappement ; \r par un retour chariot ; \n par un saut de ligne ; et \t par une tabulation.
- \ooo est remplacé par un caractère de valeur octale ooo. Trois chiffres octaux sont nécessaires, par exemple \001. Le plus grand caractère valide est \377.
- Tout autre caractère précédé de \ est remplacé par lui-même (c’est-à-dire que le \ est supprimé) et n’est pas traité comme ayant une signification spéciale. Par conséquent, par exemple, \; ne marquera pas une séquence de commandes et \$ n’étendra pas une variable d’environnement.
Les accolades sont analysées comme un fichier de configuration (de sorte que des conditions telles que « %if » sont traitées), puis converties en une chaîne. Elles sont conçues pour éviter la nécessité d’échappements supplémentaires lors du passage d’un groupe de commandes tmux en tant qu’argument (par exemple, à if-shell). Ces deux exemples produisent la même commande : notez qu’aucun échappement n’est nécessaire lors de l’utilisation de {}.
if-shell true {
display -p 'brace-dollar-foo: }$foo'
}
if-shell true "display -p 'brace-dollar-foo: }\$foo'"
Les accolades peuvent être imbriquées, par exemple :
bind x if-shell "true" {
if-shell "true" {
display "true!"
}
}
Les variables d’environnement peuvent être définies à l’aide de la syntaxe « nom=valeur », par exemple « HOME=/home/user ». Les variables définies pendant l’analyse sont ajoutées à l’environnement global. Une variable cachée peut être définie avec « %hidden », par exemple :
%hidden MYVAR=42
Les variables cachées ne sont pas transmises à l’environnement des processus créés par tmux. Voir la section « ENVIRONNEMENT GLOBAL ET DE SESSION ».
Les commandes peuvent être analysées conditionnellement en les entourant de « %if », « %elif », « %else » et « %endif ». L’argument de « %if » et « %elif » est développé en tant que format (voir « FORMATS ») et, si cela est évalué à faux (zéro ou vide), le texte suivant est ignoré jusqu’au « %elif », « %else » ou « %endif » de fermeture. Par exemple :
%if "#{==:#{host},myhost}"
set -g status-style bg=red
%elif "#{==:#{host},myotherhost}"
set -g status-style bg=green
%else
set -g status-style bg=blue
%endif
Cela modifiera la ligne d’état en rouge si elle s’exécute sur « myhost », en vert si elle s’exécute sur « myotherhost », ou en bleu si elle s’exécute sur un autre hôte. Les instructions conditionnelles peuvent être données sur une seule ligne, par exemple :
%if #{==:#{host},myhost} set -g status-style bg=red %endif
COMMANDES
Cette section décrit les commandes prises en charge par tmux. La plupart des commandes acceptent l’argument optionnel -t (et parfois -s) avec l’une des valeurs target-client, target-session, target-window ou target-pane. Celles-ci spécifient le client, la session, la fenêtre ou le panneau sur lequel la commande doit agir.
target-client doit être le nom du client, généralement le fichier pty(4) auquel le client est connecté, par exemple, soit /dev/ttyp1, soit ttyp1 pour le client connecté à /dev/ttyp1. Si aucun client n’est spécifié, tmux tente de déterminer le client actuellement utilisé ; si cela échoue, une erreur est signalée. Les clients peuvent être répertoriés avec la commande list-clients.
target-session est essayé comme suit, dans l’ordre :
Un ID de session préfixé par un $.
Un nom exact de session (comme indiqué par la commande list-sessions).
Le début d’un nom de session, par exemple, « mysess » correspondrait à une session nommée « mysession ».
Un modèle glob(7) qui est mis en correspondance avec le nom de la session.
Si le nom de la session est préfixé par un « = », seule une correspondance exacte est acceptée (de sorte que « =mysess » ne correspondra qu’à « mysess », et non à « mysession »).
Si une seule session est trouvée, elle est utilisée comme session cible ; plusieurs correspondances produisent une erreur. Si une session est omise, la session actuelle est utilisée si elle est disponible ; s’il n’y a pas de session actuelle disponible, la plus récemment utilisée est choisie.
target-window (ou src-window ou dst-window) spécifie une fenêtre sous la forme session:fenêtre.
session suit les mêmes règles que pour target-session, et fenêtre est recherchée dans l’ordre suivant :
Un jeton spécial, répertorié ci-dessous.
Un index de fenêtre, par exemple « mysession:1 » est la fenêtre 1 dans la session « mysession ».
Un ID de fenêtre, tel que @1.
Un nom de fenêtre exact, tel que « mysession:mafenêtre ».
Le début d’un nom de fenêtre, tel que « mysession:mafen ».
Sous forme de modèle glob(7) appliqué au nom de la fenêtre.
Comme pour les sessions, un préfixe « = » effectuera une correspondance exacte uniquement. Un nom de fenêtre vide spécifie l’index suivant non utilisé, si cela est approprié (par exemple pour les commandes new-window et link-window), sinon, la fenêtre actuelle dans la session est choisie.
Les jetons spéciaux suivants sont disponibles pour indiquer des fenêtres spécifiques. Chacun a une forme alternative à un seul caractère.
Jeton Signification
{start} ^ La fenêtre avec le numéro le plus bas
{end} $ La fenêtre avec le numéro le plus élevé
{last} ! La dernière fenêtre (précédemment actuelle)
{next} + La fenêtre suivante par numéro
{previous} - La fenêtre précédente par numéro
target-pane (ou src-pane ou dst-pane) peut être un ID de pane ou prend une forme similaire à target-window,
mais avec l’ajout facultatif d’un point suivi d’un index de pane ou d’un ID de pane, par exemple :
« mysession:mafenêtre.1 ». Si l’index de pane est omis, la pane actuellement active dans la fenêtre spécifiée est utilisée. Les jetons spéciaux suivants sont disponibles pour l’index de pane :
Jeton Signification
{last} ! La dernière pane (précédemment active)
{next} + La pane suivante par numéro
{previous} - La pane précédente par numéro
{top} La pane supérieure
{bottom} La pane inférieure
{left} La pane la plus à gauche
{right} La pane la plus à droite
{top-left} La pane en haut à gauche
{top-right} La pane en haut à droite
{bottom-left} La pane en bas à gauche
{bottom-right} La pane en bas à droite
{up-of} La pane au-dessus de la pane active
{down-of} La pane en dessous de la pane active
{left-of} La pane à gauche de la pane active
{right-of} La pane à droite de la pane active
Les jetons « + » et « - » peuvent être suivis d’un décalage, par exemple :
select-window -t:+2
De plus, target-session, target-window ou target-pane peuvent consister entièrement du jeton « {mouse} » (forme alternative « = ») pour spécifier la session, la fenêtre ou la pane où le dernier événement de souris s’est produit (voir la section « SUPPORT DES SOURIS ») ou « {marked} » (forme alternative « ~ ») pour spécifier la pane marquée (voir la commande select-pane -m).
Les sessions, les fenêtres et les panes sont numérotées avec un ID unique ; les ID de session sont préfixés par un « $ », les fenêtres par un « @ » et les panes par un « % ». Ils sont uniques et restent inchangés pendant toute la durée de la session, de la fenêtre ou du pane dans le serveur tmux. L’ID de pane est transmis au processus enfant de la pane dans la variable d’environnement TMUX_PANE. Les ID peuvent être affichés à l’aide des formats « session_id », « window_id » ou « pane_id » (voir la section « FORMATS ») et des commandes display-message, list-sessions, list-windows ou list-panes.
les arguments de la commande shell sont des commandes sh(1). Il peut s'agir d'un seul argument transmis à la shell, par exemple :
new-window 'vi ~/.tmux.conf'
Cela exécutera :
/bin/sh -c 'vi ~/.tmux.conf'
De plus, les commandes new-window, new-session, split-window, respawn-window et respawn-pane permettent de fournir la commande shell sous la forme de plusieurs arguments et de l’exécuter directement (sans « sh -c »). Cela peut éviter les problèmes liés aux guillemets de la shell. Par exemple :
$ tmux new-window vi ~/.tmux.conf
Cela exécutera directement vi(1) sans invoquer la shell.
command [argument ...] fait référence à une commande tmux, transmise soit avec la commande et les arguments séparément, par exemple :
bind-key F1 set-option status off
Soit transmise sous la forme d’un seul argument de chaîne dans .tmux.conf, par exemple :
bind-key F1 { set-option status off }
Les exemples de commandes tmux incluent :
refresh-client -t/dev/ttyp2
rename-session -tfirst newname
set-option -wt:0 monitor-activity on
new-window ; split-window -d
bind-key R source-file ~/.tmux.conf \; \
display-message "source-file done"
Ou depuis sh(1) :
$ tmux kill-window -t :1
$ tmux new-window \; split-window -d
$ tmux new-session -d 'vi ~/.tmux.conf' \; split-window -d \; attach
CLIENTS ET SESSIONS
Le serveur tmux gère les clients, les sessions, les fenêtres et les panneaux. Les clients sont connectés aux sessions pour interagir avec celles-ci, soit lorsqu’elles sont créées avec la commande new-session, soit ultérieurement avec la commande attach-session. Chaque session possède une ou plusieurs fenêtres qui y sont liées. Les fenêtres peuvent être liées à plusieurs sessions et sont constituées d’un ou plusieurs panneaux, chacun contenant un pseudo-terminal. Les commandes permettant de créer, de lier et de manipuler les fenêtres sont décrites dans la section « FENÊTRES ET PANNEAUX ».
Les commandes suivantes sont disponibles pour gérer les clients et les sessions :
attach-session [-dErx] [-c working-directory] [-f flags] [-t target-session]
(alias : attach)
Si elle est exécutée depuis l’extérieur de tmux, elle se connecte à target-session dans le terminal actuel. target-session doit déjà exister ; pour créer une nouvelle session, voir la commande new-session (avec -A pour créer ou se connecter). Si elle est utilisée à l’intérieur, elle fait basculer la session connectée actuelle vers target-session. Si -d est spécifié, tous les autres clients connectés à la session sont déconnectés. Si -x est spécifié, elle envoie un signal SIGHUP au processus parent du client et le déconnecte, ce qui a généralement pour effet de le faire quitter. -f définit une liste de drapeaux de client séparés par des virgules. Les drapeaux sont :
active-pane
le client dispose d’un volet actif indépendant
ignore-size
le client n’affecte pas la taille des autres clients
no-detach-on-destroy
ne détachez pas le client lorsque la session à laquelle il est attaché est détruite s’il reste d’autres sessions
no-output
le client ne reçoit pas la sortie du volet en mode de contrôle
pause-after=secondes
la sortie est interrompue une fois que le volet est en retard de « secondes » en mode de contrôle
read-only
le client est en lecture seule
wait-exit
attendez une ligne d’entrée vide avant de quitter en mode de contrôle
Un « ! » en tête désactive un indicateur si le client est déjà attaché. -r est un alias pour -f read-only,ignore-size. Lorsqu’un client est en lecture seule, seules les touches liées aux commandes detach-client ou switch-client ont un effet. Un client doté de l’indicateur active-pane permet de sélectionner le volet actif indépendamment du volet actif de la fenêtre utilisé par les clients qui n’ont pas cet indicateur. Cela n’affecte que la position du curseur et les commandes émises à partir du client ; les autres fonctionnalités, telles que les hooks et les styles, continuent d’utiliser le volet actif de la fenêtre.
Si aucun serveur n’est démarré, attach-session tentera de le démarrer ; cela échouera, sauf si des sessions sont créées dans le fichier de configuration.
Les règles target-session pour attach-session sont légèrement ajustées : si tmux doit sélectionner la session la plus récemment utilisée, il préférera la session la plus récemment utilisée qui n’est pas attachée.
-c définira le répertoire de travail de la session (utilisé pour les nouvelles fenêtres) sur working-directory.
Si -E est utilisé, l’option update-environment ne sera pas appliquée.
detach-client [-aP] [-E shell-command] [-s target-session] [-t target-client]
(alias : detach)
Détachez le client actuel si celui-ci est lié à une touche, le client spécifié avec -t ou tous les clients actuellement attachés à la session spécifiée par -s. L’option -a tue tous les clients sauf celui spécifié avec -t. Si -P est donné, envoyez le signal SIGHUP au processus parent du client, ce qui le fera généralement se terminer. Avec -E, exécutez shell-command pour remplacer le client.
has-session [-t target-session]
(alias : has)
Signalez une erreur et quittez avec le code 1 si la session spécifiée n’existe pas. Si elle existe, quittez avec le code 0.
kill-server
Tuez le serveur tmux et les clients et détruisez toutes les sessions.
kill-session [-aC] [-t target-session]
Détruisez la session donnée, fermez toutes les fenêtres qui y sont liées et aucune autre session, et détachez tous les clients qui y sont attachés. Si -a est donné, toutes les sessions sauf celle spécifiée sont tuées. L’indicateur -C efface les alertes (sonnerie, activité ou silence) dans toutes les fenêtres liées à la session.
list-clients [-F format] [-f filter] [-t target-session]
(alias : lsc)
Affichez tous les clients attachés au serveur. -F spécifie le format de chaque ligne et -f un filtre. Seuls les clients pour lesquels le filtre est vrai sont affichés. Voir la section « FORMATS ». Si target-session est spécifié, affichez uniquement les clients connectés à cette session.
list-commands [-F format] [command]
(alias: lscm)
Affiche la syntaxe de la commande ou, si elle est omise, de toutes les commandes prises en charge par tmux.
list-sessions [-F format] [-f filter]
(alias: ls)
Affiche toutes les sessions gérées par le serveur. -F spécifie le format de chaque ligne et -f un filtre. Seules les sessions pour lesquelles le filtre est vrai sont affichées. Voir la section « FORMATS ».
lock-client [-t target-client]
(alias: lockc)
Verrouille le client cible, voir la commande lock-server.
lock-session [-t target-session]
(alias: locks)
Verrouille tous les clients connectés à la session cible.
new-session [-AdDEPX] [-c start-directory] [-e environment] [-f flags] [-F format] [-n
window-name] [-s session-name] [-t group-name] [-x width] [-y height] [shell-command
[argument ...]]
(alias: new)
Crée une nouvelle session avec le nom session-name.
La nouvelle session est connectée au terminal actuel, à moins que -d ne soit spécifié. window-name et shell-command sont le nom et la commande shell à exécuter dans la fenêtre initiale. Avec -d, la taille initiale est celle de l’option globale default-size ; -x et -y peuvent être utilisés pour spécifier une taille différente. « - » utilise la taille du client actuel, le cas échéant. Si -x ou -y est donné, l’option default-size est définie pour la session. -f définit une liste de drapeaux client séparés par des virgules (voir attach-session).
Si elle est exécutée à partir d’un terminal, tous les caractères spéciaux termios(4) sont enregistrés et utilisés pour les nouvelles fenêtres dans la nouvelle session.
Le drapeau -A fait que new-session se comporte comme attach-session si session-name existe déjà ; si -A est donné, -D se comporte comme -d pour attach-session, et -X se comporte comme -x pour attach-session.
Si -t est donné, il spécifie un groupe de sessions. Les sessions du même groupe partagent le même ensemble de fenêtres ; les nouvelles fenêtres sont liées à toutes les sessions du groupe et toute fenêtre fermée est supprimée de toutes les sessions. La fenêtre actuelle et précédente et toutes les options de session restent indépendantes, et toute session d’un groupe peut être supprimée sans affecter les autres. L’argument group-name peut être :
le nom d’un groupe existant, auquel cas la nouvelle session est ajoutée à ce groupe ;
le nom d’une session existante ; la nouvelle session est ajoutée au même groupe que cette session, en créant un nouveau groupe si nécessaire ;
le nom d’un nouveau groupe contenant uniquement la nouvelle session.
-n et shell-command sont invalides si -t est utilisé.
L’option -P affiche des informations sur la nouvelle session après sa création. Par défaut, elle utilise le format « #{session_name}: », mais un format différent peut être spécifié avec -F.
Si -E est utilisé, l’option update-environment ne sera pas appliquée. -e prend la forme « VARIABLE=value » et définit une variable d’environnement pour la nouvelle session ; elle peut être spécifiée plusieurs fois.
refresh-client [-cDLRSU] [-A pane:state] [-B name:what:format] [-C size] [-f flags] [-l
[target-pane]] [-r pane:report] [-t target-client] [adjustment]
(alias: refresh)
Rafraîchit le client actuel si elle est liée à une touche, ou un seul client si l’un est donné avec -t. Si -S est spécifié, seule la barre d’état du client est mise à jour.
Les options -U, -D, -L, -R et -c permettent de modifier la portion visible d’une fenêtre plus grande que le client. -U déplace la partie visible vers le haut de « adjustment » lignes et -D vers le bas, -L vers la gauche et -R vers la droite. -c permet de revenir au suivi automatique du curseur. Si « adjustment » est omis, la valeur 1 est utilisée. Notez que la position visible est une propriété du client et non de la fenêtre, la modification de la fenêtre actuelle dans la session attachée réinitialisera cette valeur.
-C définit la largeur et la hauteur d’un client en mode contrôle ou d’une fenêtre pour un client en mode contrôle. La taille doit être l’une des valeurs « widthxheight » ou « window ID:widthxheight », par exemple « 80x24 » ou « @0:80x24 ». -A permet à un client en mode contrôle de déclencher des actions sur un volet. L’argument est un ID de volet (précédé d’un « % »), un signe deux-points, puis l’une des valeurs « on », « off », « continue » ou « pause ». Si « off », tmux n’enverra pas la sortie du volet au client et, si tous les clients ont désactivé le volet, il cessera de lire les données du volet. Si « continue », tmux reprendra l’envoi de la sortie au volet s’il avait été mis en pause (manuellement ou avec l’option « pause-after »). Si « pause », tmux mettra le volet en pause. -A peut être spécifié plusieurs fois pour différents volets.
-B définit un abonnement à un format pour un client en mode contrôle. L’argument est divisé en trois éléments par des deux-points : « name » est un nom pour l’abonnement ; « what » est un type d’élément auquel s’abonner ; « format » est le format. Une fois qu’un abonnement est ajouté, les modifications du format sont signalées avec la notification « %subscription-changed », au maximum une fois par seconde. Si seul le nom est spécifié, l’abonnement est supprimé. « what » peut être vide pour vérifier uniquement le format de la session attachée, ou être l’un des éléments suivants : un ID de volet tel que « %0 » ; « %* » pour tous les volets de la session attachée ; un ID de fenêtre tel que « @0 » ; ou « @* » pour toutes les fenêtres de la session attachée.
-f définit une liste séparée par des virgules de drapeaux de client, voir « attach-session ». -r permet à un client en mode contrôle de fournir des informations sur un volet via un rapport (tel que la réponse à OSC 10). L’argument est un ID de volet (précédé d’un « % »), un signe deux-points, puis une séquence d’échappement de rapport.
-l demande le presse-papiers au client à l’aide de la séquence d’échappement xterm(1). Si « target-pane » est spécifié, le presse-papiers est envoyé (sous forme codée), sinon il est stocké dans un nouveau tampon de collage.
-L, -R, -U et -D déplacent la portion visible de la fenêtre vers la gauche, la droite, le haut ou le bas de « adjustment », si la fenêtre est plus grande que le client. -c réinitialise le suivi du curseur. Voir l’option « window-size ».
rename-session [-t target-session] new-name
(alias : rename) Renomme la session en « new-name ».
server-access [-adlrw] [user]
Modifie l’accès ou les autorisations de lecture/écriture de l’utilisateur. L’utilisateur exécutant le serveur tmux (son propriétaire) et l’utilisateur root ne peuvent pas être modifiés et ont toujours accès.
-a et -d sont utilisés pour accorder ou révoquer l’accès à l’utilisateur spécifié. Si l’utilisateur est déjà associé, l’option -d provoque la déconnexion de ses clients.
-r et -w modifient les permissions pour l’utilisateur : -r rend leurs clients en lecture seule et -w en lecture-écriture. -l affiche les permissions d’accès actuelles.
Par défaut, la liste d’accès est vide et tmux crée des sockets avec des permissions du système de fichiers empêchant l’accès par tout utilisateur autre que le propriétaire (et root). Ces permissions doivent être modifiées manuellement. Il faut prendre grand soin de ne pas autoriser l’accès à des utilisateurs non fiables, même en lecture seule.
show-messages [-JT] [-t target-client]
(alias : showmsgs)
Affiche les messages ou les informations du serveur. Les messages sont stockés, jusqu’à une limite définie par l’option de serveur message-limit. -J et -T affichent des informations de débogage sur les tâches et les terminaux.
source-file [-Fnqv] [-t target-pane] path ...
(alias : source)
Exécute des commandes à partir d’un ou plusieurs fichiers spécifiés par path (qui peuvent être des motifs glob(7)). Si -F est présent, path est développé en tant que format. Si -q est donné, aucune erreur ne sera renvoyée si path n’existe pas. Avec -n, le fichier est analysé mais aucune commande n’est exécutée. -v affiche les commandes analysées et les numéros de ligne si possible.
start-server
(alias : start)
Démarre le serveur tmux, s’il n’est pas déjà en cours d’exécution, sans créer de sessions.
Notez que, par défaut, le serveur tmux se terminera s’il n’y a aucune session, cela n’est donc utile que si une session est créée dans ~/.tmux.conf, si exit-empty est désactivé, ou si une autre commande est exécutée dans la même séquence de commandes. Par exemple :
$ tmux start \; show -g
suspend-client [-t target-client]
(alias : suspendc)
Suspend un client en envoyant SIGTSTP (arrêt du terminal).
switch-client [-ElnprZ] [-c target-client] [-t target-session] [-T key-table]
(alias : switchc)
Change la session actuelle pour le client target-client vers target-session. Dans un cas particulier, -t peut faire référence à un panneau (une cible qui contient ‘:’, ‘.’ ou ‘%’), pour changer de session, de fenêtre et de panneau. Dans ce cas, -Z conserve la fenêtre zoomée si elle l’était. Si -l, -n ou -p est utilisé, le client est déplacé vers la dernière, la suivante ou la session précédente respectivement. -r bascule les indicateurs read-only et ignore-size (voir la commande attach-session).
Si -E est utilisé, l’option update-environment ne sera pas appliquée.
-T définit la table de clés du client ; la touche suivante du client sera interprétée à partir de key-table. Cela peut être utilisé pour configurer plusieurs touches de préfixe, ou pour lier des commandes à des séquences de touches. Par exemple, pour que la saisie de « abc » exécute la commande list-keys :
bind-key -Ttable2 c list-keys
bind-key -Ttable1 b switch-client -Ttable2
bind-key -Troot a switch-client -Ttable1
FENÊTRES ET PANNEAUX
Chaque fenêtre affichée par tmux peut être divisée en un ou plusieurs panneaux ; chaque panneau occupe une certaine zone de l’écran et constitue un terminal distinct. Une fenêtre peut être divisée en panneaux à l’aide de la commande split-window. Les fenêtres peuvent être divisées horizontalement (avec l’option -h) ou verticalement. Les panneaux peuvent être redimensionnés avec la commande resize-pane (liée à « C-Haut », « C-Bas », « C-Gauche » et « C-Droite » par défaut), le panneau actuel peut être modifié avec la commande select-pane et les commandes rotate-window et swap-pane peuvent être utilisées pour échanger des panneaux sans en modifier la position. Les panneaux sont numérotés à partir de zéro dans l’ordre de leur création.
Par défaut, un panneau tmux permet un accès direct au terminal contenu dans ce panneau. Un panneau peut également être placé dans l’un des modes suivants :
- Mode copie, qui permet de copier une section d’une fenêtre ou de son historique dans un tampon de presse-papiers pour une insertion ultérieure dans une autre fenêtre. Ce mode est accessible avec la commande `copy-mode`, qui est liée à la touche ‘[’ par défaut. Le texte copié peut être collé à l’aide de la commande `paste-buffer`, liée à la touche ‘]’.
- Mode visualisation, qui est similaire au mode copie, mais qui est activé lorsqu’une commande qui produit une sortie, telle que `list-keys`, est exécutée à partir d’une liaison de touches.
- Mode de sélection, qui permet de choisir un élément dans une liste. Il peut s’agir d’un client, d’une session, d’une fenêtre ou d’un panneau, ou d’un tampon. Ce mode est accessible avec les commandes `choose-buffer`, `choose-client` et `choose-tree`.
En mode copie, un indicateur est affiché dans le coin supérieur droit du panneau, indiquant la position actuelle et le nombre de lignes dans l’historique.
Les commandes sont envoyées au mode copie à l’aide de l’indicateur -X de la commande send-keys. Lorsqu’une touche est enfoncée, le mode copie utilise automatiquement l’une des deux tables de touches, en fonction de l’option mode-keys : copy-mode pour Emacs ou copy-mode-vi pour Vi. Les tables de touches peuvent être consultées à l’aide de la commande list-keys.
Les commandes suivantes sont prises en charge en mode copie :
`append-selection`
Ajoute la sélection au tampon de presse-papiers supérieur.
`append-selection-and-cancel` (vi : `A`)
Ajoute la sélection au tampon de presse-papiers supérieur et quitte le mode copie.
`back-to-indentation` (vi : `^`) (emacs : `M-m`)
Déplace le curseur vers l’indentation précédente.
`begin-selection` (vi : `Espace`) (emacs : `C-Espace`)
Démarre la sélection.
`bottom-line` (vi : `L`)
Déplace le curseur à la dernière ligne.
`cancel` (vi : `q`) (emacs : `Échap`)
Quitte le mode copie.
`clear-selection` (vi : `Échap`) (emacs : `C-g`)
Efface la sélection actuelle.
`copy-end-of-line` [-CP] [prefix]
Copie à partir de la position du curseur jusqu’à la fin de la ligne. `prefix` est utilisé pour nommer le nouveau tampon de presse-papiers.
`copy-end-of-line-and-cancel` [-CP] [prefix]
Copie à partir de la position du curseur et quitte le mode copie.
`copy-pipe-end-of-line` [-CP] [command] [prefix]
Copie à partir de la position du curseur jusqu’à la fin de la ligne et transmet le texte à la commande. `prefix` est utilisé pour nommer le nouveau tampon de presse-papiers.
`copy-pipe-end-of-line-and-cancel` [-CP] [command] [prefix]
Identique à `copy-pipe-end-of-line`, mais quitte également le mode copie.
`copy-line` [-CP] [prefix]
Copie toute la ligne.
copy-line-and-cancel [-CP] [prefix]
Copie toute la ligne et quitte le mode de copie.
copy-pipe-line [-CP] [command] [prefix]
Copie toute la ligne et transmet le texte au command. Le préfixe est utilisé pour nommer le nouveau tampon de collage.
copy-pipe-line-and-cancel [-CP] [command] [prefix]
Identique à copy-pipe-line, mais quitte également le mode de copie.
copy-pipe [-CP] [command] [prefix]
Copie la sélection, l’efface et transmet son texte au command. Le préfixe est utilisé pour nommer le nouveau tampon de collage.
copy-pipe-no-clear [-CP] [command] [prefix]
Identique à copy-pipe, mais n’efface pas la sélection.
copy-pipe-and-cancel [-CP] [command] [prefix]
Identique à copy-pipe, mais quitte également le mode de copie.
copy-selection [-CP] [prefix]
Copie la sélection actuelle.
copy-selection-no-clear [-CP] [prefix]
Identique à copy-selection, mais n’efface pas la sélection.
copy-selection-and-cancel [-CP] [prefix] (vi : Entrée) (emacs : M-w)
Copie la sélection actuelle et quitte le mode de copie.
cursor-down (vi : j) (emacs : Bas)
Déplace le curseur vers le bas.
cursor-down-and-cancel
Identique à cursor-down, mais quitte également le mode de copie si la fin est atteinte.
cursor-left (vi : h) (emacs : Gauche)
Déplace le curseur vers la gauche.
cursor-right (vi : l) (emacs : Droit)
Déplace le curseur vers la droite.
cursor-up (vi : k) (emacs : Haut)
Déplace le curseur vers le haut.
cursor-centre-vertical (emacs : C-l)
Déplace le curseur au centre vertical du panneau.
cursor-centre-horizontal (emacs : M-l)
Déplace le curseur au centre horizontal du panneau.
end-of-line (vi : $) (emacs : C-e)
Déplace le curseur à la fin de la ligne.
goto-line line (vi : :) (emacs : g)
Déplace le curseur vers une ligne spécifique.
halfpage-down (vi : C-d) (emacs : M-Bas)
Fait défiler vers le bas d’une demi-page.
halfpage-down-and-cancel
Identique à halfpage-down, mais quitte également le mode de copie si la fin est atteinte.
halfpage-up (vi : C-u) (emacs : M-Haut)
Fait défiler vers le haut d’une demi-page.
history-bottom (vi : G) (emacs : M->)
Fait défiler jusqu’en bas de l’historique.
history-top (vi : g) (emacs : M-<)
Fait défiler jusqu’en haut de l’historique.
jump-again (vi : ;) (emacs : ;)
Répète le dernier saut.
jump-backward to (vi : F) (emacs : F)
Saut vers le texte spécifié, en arrière.
jump-forward to (vi : f) (emacs : f)
Saut vers le texte spécifié, en avant.
jump-reverse (vi : ,) (emacs : ,)
Répète le dernier saut dans le sens inverse (avant devient arrière et inversement).
jump-to-backward to (vi : T)
Saut vers l’arrière, mais d’un caractère de moins, en plaçant le curseur sur le caractère suivant la cible.
jump-to-forward to (vi : t)
Saut vers l’avant, mais d’un caractère de moins, en plaçant le curseur sur le caractère précédant la cible.
jump-to-mark (vi : M-x) (emacs : M-x)
Saut vers le dernier marqueur.
middle-line (vi : M) (emacs : M-r)
Déplace vers la ligne du milieu.
next-matching-bracket (vi : %) (emacs : M-C-f)
Déplace vers la parenthèse correspondante suivante.
next-paragraph (vi : }) (emacs : M-})
Déplace vers le paragraphe suivant.
next-prompt [-o]
Déplace vers l’invite suivante.
next-word (vi : w)
Déplace vers le mot suivant.
next-word-end (vi : e) (emacs : M-f)
Déplace vers la fin du mot suivant.
next-space (vi: W)
Identique à next-word, mais utilise un simple espace comme séparateur de mots.
next-space-end (vi: E)
Identique à next-word-end, mais utilise un simple espace comme séparateur de mots.
other-end (vi: o)
Inverse l’extrémité de la sélection où se trouve le curseur.
page-down (vi: C-f) (emacs: PageDown)
Fait défiler le contenu d’une page vers le bas.
page-down-and-cancel
Identique à page-down, mais quitte également le mode de copie une fois le bas atteint.
page-up (vi: C-b) (emacs: PageUp)
Fait défiler le contenu d’une page vers le haut.
pipe [commande]
Envoie le texte sélectionné à la commande et efface la sélection.
pipe-no-clear [commande]
Identique à pipe, mais n’efface pas la sélection.
pipe-and-cancel [commande] [préfixe]
Identique à pipe, mais quitte également le mode de copie.
previous-matching-bracket (emacs: M-C-b)
Déplace le curseur vers la parenthèse correspondante précédente.
previous-paragraph (vi: {) (emacs: M-{)
Déplace le curseur vers le paragraphe précédent.
previous-prompt [-o]
Déplace le curseur vers l’invite précédente.
previous-word (vi: b) (emacs: M-b)
Déplace le curseur vers le mot précédent.
previous-space (vi: B)
Identique à previous-word, mais utilise un simple espace comme séparateur de mots.
rectangle-on
Active le mode de sélection rectangulaire.
rectangle-off
Désactive le mode de sélection rectangulaire.
rectangle-toggle (vi: v) (emacs: R)
Bascule le mode de sélection rectangulaire.
refresh-from-pane (vi: r) (emacs: r)
Actualise le contenu à partir du panneau.
scroll-bottom
Fait défiler le contenu vers le haut jusqu’à ce que la ligne actuelle se trouve en bas, tout en gardant le curseur sur cette ligne.
scroll-down (vi: C-e) (emacs: C-Down)
Fait défiler le contenu vers le bas.
scroll-down-and-cancel
Identique à scroll-down, mais quitte également le mode de copie une fois le bas atteint.
scroll-middle (vi: z)
Fait défiler le contenu de sorte que la ligne actuelle se trouve au milieu, tout en gardant le curseur sur cette ligne.
scroll-top
Fait défiler le contenu vers le haut jusqu’à ce que la ligne actuelle se trouve en haut, tout en gardant le curseur sur cette ligne.
scroll-up (vi: C-y) (emacs: C-Up)
Fait défiler le contenu vers le haut.
search-again (vi: n) (emacs: n)
Répète la dernière recherche.
search-backward text (vi: ?)
Effectue une recherche inversée du texte spécifié.
search-backward-incremental text (emacs: C-r)
Effectue une recherche inversée incrémentale du texte spécifié. Il est recommandé de l’utiliser avec l’indicateur -i de la commande command-prompt.
search-backward-text text
Effectue une recherche inversée du texte brut spécifié.
search-forward text (vi: /)
Effectue une recherche du texte spécifié.
search-forward-incremental text (emacs: C-s)
Effectue une recherche incrémentale du texte spécifié. Il est recommandé de l’utiliser avec l’indicateur -i de la commande command-prompt.
search-forward-text text
Effectue une recherche du texte brut spécifié.
search-reverse (vi: N) (emacs: N)
Répète la dernière recherche dans la direction inverse (une recherche avant devient une recherche arrière, et vice versa).
select-line (vi: V)
Sélectionne la ligne actuelle.
select-word
Sélectionne le mot actuel.
selection-mode [char | word | line]
Modifie le mode de sélection.
set-mark (vi: X) (emacs: X)
Marque la ligne actuelle.
start-of-line (vi: 0) (emacs: C-a)
Déplace le curseur au début de la ligne.
stop-selection
Arrête la sélection sans effacer la sélection actuelle.
toggle-position (vi : P) (emacs : P)
Bascule la visibilité de l’indicateur de position dans le coin supérieur droit.
top-line (vi : H) (emacs : M-R)
Déplace le curseur vers la première ligne.
Les commandes de recherche se déclinent en plusieurs variantes : ‘search-forward’ et ‘search-backward’ recherchent une expression régulière ; les variantes ‘-text’ recherchent une chaîne de texte simple plutôt qu’une expression régulière ; ‘-incremental’ effectue une recherche incrémentale et doit être utilisée avec l’indicateur -i de la commande d’invite. ‘search-again’ répète la dernière recherche et ‘search-reverse’ fait de même mais inverse la direction (la recherche vers l’avant devient une recherche vers l’arrière, et vice versa).
Les raccourcis par défaut pour la recherche incrémentale, ‘C-r’ et ‘C-s’, sont conçus pour émuler emacs(1). Lorsqu’ils sont enfoncés pour la première fois, ils permettent de saisir un nouveau terme de recherche ; s’ils sont enfoncés avec un terme de recherche vide, ils répètent le terme de recherche utilisé précédemment.
Les commandes ‘next-prompt’ et ‘previous-prompt’ permettent de passer d’une invite de shell à l’autre, mais nécessitent que le shell émette une séquence d’échappement (\033]133;A\033\) pour indiquer à tmux où se trouvent les invites ; si le shell ne le fait pas, ces commandes ne feront rien. L’indicateur -o permet de passer au début de la sortie de la commande au lieu de l’invite du shell. Pour trouver le début de la sortie de la commande, le shell doit émettre une séquence d’échappement (\033]133;C\033\) pour indiquer à tmux où commence la sortie. Si le shell n’envoie pas ces séquences d’échappement, ces commandes ne font rien.
Les commandes de copie peuvent prendre un argument de préfixe de tampon facultatif, qui est utilisé pour générer le nom du tampon (la valeur par défaut est ‘buffer’, de sorte que les tampons sont nommés ‘buffer0’, ‘buffer1’, etc.). Les commandes de type ‘pipe’ prennent un argument de commande, qui est la commande à laquelle le texte sélectionné est transmis. Les variantes ‘copy-pipe’ copient également la sélection. Les variantes ‘-and-cancel’ de certaines commandes quittent le mode de copie après leur exécution (pour les commandes de copie) ou lorsque le curseur atteint le bas (pour les commandes de défilement). Les variantes ‘-no-clear’ ne suppriment pas la sélection. Toutes les commandes de copie peuvent prendre les indicateurs -C et -P. L’indicateur -C empêche la définition du presse-papiers du terminal lors de la copie, tandis que l’indicateur -P empêche l’ajout d’un tampon de collage avec le texte.
Les touches « mot suivant » et « mot précédent » ignorent les espaces et traitent les séquences consécutives de séparateurs de mots ou d’autres lettres comme des mots. Les séparateurs de mots peuvent être personnalisés à l’aide de l’option de session « word-separators ». « Mot suivant » déplace le curseur au début du mot suivant, « mot suivant (fin) » au début du mot suivant et « mot précédent » au début du mot précédent. Les trois touches « espace suivant » fonctionnent de la même manière, mais utilisent un espace unique comme séparateur de mots. Définir « word-separators » sur une chaîne vide rend « mot suivant/précédent » équivalent à « espace suivant/précédent ».
Les commandes de saut permettent de se déplacer rapidement dans une ligne. Par exemple, taper ‘f’ suivi de ‘/’ déplace le curseur vers le prochain caractère ‘/’ de la ligne actuelle. Un point-virgule (;) permet ensuite de passer à l’occurrence suivante.
En mode copie, les commandes peuvent être précédées d’un nombre indiquant le nombre de répétitions. Avec les raccourcis clavier vi, un préfixe est entré à l’aide des touches numériques ; avec emacs, la touche Alt (meta) et un nombre commencent l’entrée du préfixe.
La syntaxe de la commande du mode copie est la suivante :
copy-mode [-deHMqSu] [-s src-pane] [-t target-pane]
Entre en mode copie.
-u entre en mode copie et fait défiler d’une page vers le haut et -d fait défiler d’une page vers le bas. -H masque l’indicateur de position en haut à droite. -q annule le mode copie et tous les autres modes.
-M commence un glissement de souris (valide uniquement s’il est lié à une touche de souris, voir « PRise en charge de la souris »).
-S fait défiler lorsque lié à un événement de glissement de souris ; par exemple, copy-mode -Se est lié à MouseDrag1ScrollbarSlider par défaut.
-s copie à partir de src-pane au lieu de target-pane.
-e spécifie que la défilement jusqu’au bas de l’historique (jusqu’à l’écran visible) doit quitter le mode copie. Pendant que vous êtes en mode copie, appuyer sur une touche autre que celles utilisées pour faire défiler désactivera ce comportement. Ceci est destiné à permettre une défilement rapide dans l’historique d’un panneau, par exemple avec :
bind PageUp copy-mode -eu
bind PageDown copy-mode -ed
Un certain nombre d’agencements prédéfinis de panneaux sont disponibles, et ils sont appelés mises en page. Ceux-ci peuvent être sélectionnés avec la commande select-layout ou faire l’objet d’un cycle avec next-layout (liée à « Espace » par défaut) ; une fois qu’une mise en page est choisie, les panneaux qui s’y trouvent peuvent être déplacés et redimensionnés comme d’habitude.
Les mises en page suivantes sont prises en charge :
even-horizontal
Les panneaux sont répartis uniformément de gauche à droite dans la fenêtre.
even-vertical
Les panneaux sont répartis uniformément de haut en bas.
main-horizontal
Un grand panneau (principal) est affiché en haut de la fenêtre et les panneaux restants sont répartis de gauche à droite dans l’espace restant en bas. Utilisez l’option de fenêtre main-pane-height pour spécifier la hauteur du panneau supérieur.
main-horizontal-mirrored
Identique à main-horizontal, mais inversé, de sorte que le panneau principal se trouve en bas de la fenêtre.
main-vertical
Un grand panneau (principal) est affiché à gauche de la fenêtre et les panneaux restants sont répartis de haut en bas dans l’espace restant à droite. Utilisez l’option de fenêtre main-pane-width pour spécifier la largeur du panneau de gauche.
main-vertical-mirrored
Identique à main-vertical, mais inversé, de sorte que le panneau principal se trouve à droite de la fenêtre.
tiled Les panneaux sont répartis aussi uniformément que possible dans la fenêtre, à la fois en lignes et en colonnes.
De plus, select-layout peut être utilisé pour appliquer une mise en page précédemment utilisée ; la commande list-windows affiche la disposition de chaque fenêtre dans un format adapté à l’utilisation avec select-layout. Par exemple :
$ tmux list-windows
0 ksh [159x48]
layout: bb62,159x48,0,0{79x48,0,0,79x48,80,0}
$ tmux select-layout 'bb62,159x48,0,0{79x48,0,0,79x48,80,0}'
tmux ajuste automatiquement la taille de la mise en page pour la taille de fenêtre actuelle. Notez qu’une mise en page ne peut pas être appliquée à une fenêtre ayant plus de panneaux que celle à partir de laquelle la mise en page a été initialement définie.
Les commandes relatives aux fenêtres et aux panneaux sont les suivantes :
break-pane [-abdP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]
(alias : breakp)
Sépare le panneau src-pane de sa fenêtre parente afin qu’il devienne le seul panneau de la fenêtre dst-window. Avec -a ou -b, la fenêtre est déplacée vers l’index suivant ou précédent (les fenêtres existantes sont déplacées si nécessaire). Si -d est spécifié, la nouvelle fenêtre ne devient pas la fenêtre actuelle. L’option -P affiche des informations sur la nouvelle fenêtre après sa création. Par défaut, elle utilise le format « #{session_name}:#{window_index}.#{pane_index} », mais un format différent peut être spécifié avec -F.
capture-pane [-aepPqCJMN] [-b buffer-name] [-E end-line] [-S start-line] [-t target-pane]
(alias : capturep)
Capture le contenu d’un panneau. Si -p est spécifié, la sortie est envoyée vers stdout, sinon vers le tampon spécifié avec -b ou un nouveau tampon si aucun n’est spécifié. Si -a est spécifié, l’écran alternatif est utilisé et l’historique n’est pas accessible. Si aucun écran alternatif n’existe, une erreur est renvoyée à moins que -q soit spécifié. De même, si le panneau se trouve dans un mode, -M utilise l’écran pour ce mode. Si -e est spécifié, la sortie inclut des séquences d’échappement pour les attributs de texte et d’arrière-plan. -C effectue également l’échappement des caractères non imprimables sous forme de séquences octales \xxx. -T ignore les positions finales qui ne contiennent pas de caractère. -N conserve les espaces à la fin de chaque ligne et -J conserve les espaces à la fin et joint toutes les lignes tronquées ; -J implique -T. -P capture uniquement toute sortie que le panneau a reçue qui correspond au début d’une séquence d’échappement incomplète.
-S et -E spécifient les numéros de ligne de début et de fin, zéro étant la première ligne du panneau visible et les nombres négatifs étant les lignes de l’historique. « - » à -S indique le début de l’historique et à -E la fin du panneau visible. Par défaut, seul le contenu visible du panneau est capturé.
choose-client [-NryZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane]
[template]
Place un panneau en mode client, permettant à un client d’être sélectionné de manière interactive dans une liste. Chaque client est affiché sur une ligne. Une touche de raccourci est affichée à gauche, permettant une sélection immédiate, ou la liste peut être parcourue et un élément peut être choisi ou manipulé à l’aide des touches ci-dessous. -Z agrandit le panneau. -y désactive toutes les invites de confirmation. Les touches suivantes peuvent être utilisées en mode client :
Touche Fonction
Entrée Choisir le client sélectionné
Haut Sélectionner le client précédent
Bas Sélectionner le client suivant
C-s Rechercher par nom
n Répéter la dernière recherche vers l’avant
N Répéter la dernière recherche vers l’arrière
t Activer/désactiver l’indicateur pour le client
T Aucun indicateur pour les clients
C-t Activer l’indicateur pour tous les clients
d Détacher le client sélectionné
D Détacher les clients avec indicateur
x Détacher et envoyer un signal HUP au client sélectionné
X Détacher et envoyer un signal HUP aux clients avec indicateur
z Suspendre le client sélectionné
Z Suspendre les clients avec indicateur
f Entrer un format pour filtrer les éléments
O Modifier le champ de tri
r Inverser l’ordre de tri
v Activer/désactiver l’aperçu
q Quitter le mode
Une fois qu'un client est choisi, « %% » est remplacé par le nom du client dans le modèle, et le résultat est exécuté en tant que commande. Si aucun modèle n’est fourni, « detach-client -t ‘%%’ » est utilisé.
-O spécifie le champ de tri initial : l’un des éléments suivants : ‘name’ (nom), ‘size’ (taille), ‘creation’ (date de création) ou ‘activity’ (date d’activité). -r inverse l’ordre de tri. -f spécifie un filtre initial : le filtre est un format. S’il renvoie zéro, l’élément de la liste n’est pas affiché, sinon il est affiché. Si un filtre entraînerait une liste vide, il est ignoré. -F spécifie le format de chaque élément de la liste et -K un format pour chaque raccourci ; les deux sont évalués une fois pour chaque ligne. -N démarre sans l’aperçu, ou si donné deux fois, avec l’aperçu plus grand. Cette commande ne fonctionne que si au moins un client est connecté.
choose-tree [-GNrswyZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]
Affiche un panneau en mode arborescence, où une session, une fenêtre ou un panneau peut être choisi interactivement dans une arborescence. Chaque session, fenêtre ou panneau est affiché sur une ligne. Un raccourci est affiché à gauche entre crochets, permettant une sélection immédiate, ou l’arborescence peut être parcourue et un élément choisi ou manipulé à l’aide des touches ci-dessous. -s démarre avec les sessions réduites et -w avec les fenêtres réduites. -Z agrandit le panneau. -y désactive toutes les invites de confirmation. Les touches suivantes peuvent être utilisées en mode arborescence :
Touche Fonction
Entrée Choisir l’élément sélectionné
Haut Sélectionner l’élément précédent
Bas Sélectionner l’élément suivant
S-Haut Échanger la fenêtre actuelle avec la fenêtre précédente
S-Bas Échanger la fenêtre actuelle avec la fenêtre suivante
+ Développer l’élément sélectionné
- Réduire l’élément sélectionné
M-+ Développer tous les éléments
M-- Réduire tous les éléments
x Supprimer l’élément sélectionné
X Supprimer les éléments marqués
< Déplacer la liste des aperçus vers la gauche
> Déplacer la liste des aperçus vers la droite
C-s Rechercher par nom
m Définir le panneau marqué
M Effacer le panneau marqué
n Répéter la dernière recherche vers l’avant
N Répéter la dernière recherche vers l’arrière
t Activer/désactiver le marquage de l’élément
T Ne pas marquer d’éléments
C-t Marquer tous les éléments
: Exécuter une commande pour chaque élément marqué
f Entrer un format pour filtrer les éléments
H Aller au panneau de départ
O Modifier le champ de tri
r Inverser l’ordre de tri
v Activer/désactiver l’aperçu
q Quitter le mode
Une fois qu’une session, une fenêtre ou un panneau est choisi, la première instance de « %% » et toutes les instances de « %1 » sont remplacées par la cible dans le modèle, et le résultat est exécuté en tant que commande. Si aucun modèle n’est fourni, « switch-client -t ‘%%’ » est utilisé.
-O spécifie le champ de tri initial : l’un des éléments suivants : ‘index’ (indice), ‘name’ (nom) ou ‘time’ (activité). -r inverse l’ordre de tri. -f spécifie un filtre initial : le filtre est un format. S’il renvoie zéro, l’élément n’est pas affiché, sinon il est affiché. Si un filtre entraînerait une liste vide, il est ignoré. -F spécifie le format de chaque élément de l’arborescence et -K un format pour chaque raccourci ; les deux sont évalués une fois pour chaque ligne. -N démarre sans l’aperçu, ou si donné deux fois, avec l’aperçu plus grand. -G inclut toutes les sessions de tous les groupes de sessions dans l’arborescence, plutôt que seulement la première. Cette commande ne fonctionne que si au moins un client est connecté.
customize-mode [-NZ] [-F format] [-f filter] [-t target-pane] [template]
Place une fenêtre en mode de personnalisation, où les options et les raccourcis clavier peuvent être consultés et modifiés dans une liste. Les valeurs des options dans la liste sont affichées pour la fenêtre active dans la fenêtre actuelle. -Z agrandit la fenêtre. Les touches suivantes peuvent être utilisées en mode de personnalisation :
Touche Fonction Entrée Définir la valeur de l’option de fenêtre, de la fenêtre, de la session ou globale Haut Sélectionner l’élément précédent Bas Sélectionner l’élément suivant + Développer l’élément sélectionné - Réduire l’élément sélectionné M-+ Développer tous les éléments M-- Réduire tous les éléments s Définir la valeur de l’option ou l’attribut de la touche S Définir la valeur de l’option globale w Définir la valeur de l’option de fenêtre, si l’option est destinée à la fenêtre et à la session d Définir une option ou une touche avec la valeur par défaut D Définir les options et les touches marquées avec la valeur par défaut u Annuler une option (définir à la valeur par défaut si elle est globale) ou supprimer une touche U Annuler les options et supprimer les touches marquées C-s Rechercher par nom n Répéter la dernière recherche vers l’avant N Répéter la dernière recherche vers l’arrière t Activer/désactiver le fait qu’un élément soit marqué T Aucun élément n’est marqué C-t Tous les éléments sont marqués f Entrer un format pour filtrer les éléments v Activer/désactiver les informations sur les options q Quitter le mode
-f spécifie un filtre initial : le filtre est un format. Si sa valeur est zéro, l’élément de la liste n’est pas affiché, sinon il est affiché. Si un filtre entraînerait une liste vide, il est ignoré. -F spécifie le format de chaque élément de l’arborescence. -N démarre sans les informations sur les options. Cette commande ne fonctionne que si au moins un client est connecté.
display-panes [-bN] [-d duration] [-t target-client] [template]
(alias : displayp)
Affiche un indicateur visible de chaque fenêtre affichée par le client cible. Voir les options de session display-panes-colour et display-panes-active-colour. L’indicateur se ferme lorsqu’une touche est enfoncée (sauf si -N est spécifié) ou après que la durée spécifiée en millisecondes est écoulée. Si -d n’est pas spécifié, display-panes-time est utilisé. Une durée de zéro signifie que l’indicateur reste affiché jusqu’à ce qu’une touche soit enfoncée. Pendant que l’indicateur est affiché à l’écran, une fenêtre peut être sélectionnée à l’aide des touches « 0 » à « 9 », ce qui entraîne l’exécution du modèle en tant que commande, « %% » étant remplacé par l’ID de la fenêtre. Le modèle par défaut est « select-pane -t ‘%%’ ». Avec -b, les autres commandes ne sont pas bloquées jusqu’à la fermeture de l’indicateur.
find-window [-iCNrTZ] [-t target-pane] match-string
(alias : findw)
Recherche un modèle glob(7) ou, avec -r, une expression régulière match-string dans les noms, titres et contenus visibles des fenêtres (mais pas dans l’historique). Les indicateurs contrôlent le comportement de la correspondance : -C correspond uniquement au contenu visible de la fenêtre, -N correspond uniquement au nom de la fenêtre et -T correspond uniquement au titre de la fenêtre. -i rend la recherche insensible à la casse. La valeur par défaut est -CNT. -Z agrandit la fenêtre.
Cette commande fonctionne uniquement si au moins un client est connecté.
join-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]
(alias : joinp)
Comme split-window, mais au lieu de diviser dst-pane et de créer un nouveau volet, il le divise et déplace src-pane dans l’espace. Cela peut être utilisé pour inverser break-pane. L’option -b fait en sorte que src-pane soit joint à gauche ou au-dessus de dst-pane.
Si -s est omis et qu’un volet marqué est présent (voir select-pane -m), le volet marqué est utilisé à la place du volet actuel.
kill-pane [-a] [-t target-pane]
(alias : killp)
Détruit le volet donné. Si aucun volet ne reste dans la fenêtre contenant, celle-ci est également détruite. L’option -a permet de tuer tous les volets sauf celui spécifié avec -t.
kill-window [-a] [-t target-window]
(alias : killw)
Tue la fenêtre actuelle ou la fenêtre à target-window, en la supprimant de toutes les sessions auxquelles elle est liée. L’option -a permet de tuer toutes les fenêtres sauf celle spécifiée avec -t.
last-pane [-deZ] [-t target-window]
(alias : lastp)
Sélectionne le dernier volet (précédemment sélectionné). -Z maintient la fenêtre en mode zoom si elle l’était. -e active ou -d désactive l’entrée vers le volet.
last-window [-t target-session]
(alias : last)
Sélectionne la dernière fenêtre (précédemment sélectionnée). Si aucune target-session n’est spécifiée, sélectionne la dernière fenêtre de la session actuelle.
link-window [-abdk] [-s src-window] [-t dst-window]
(alias : linkw)
Lie la fenêtre à src-window à la fenêtre spécifiée dst-window. Si dst-window est spécifiée et qu’une telle fenêtre n’existe pas, la fenêtre src-window y est liée. Avec -a ou -b, la fenêtre est déplacée à l’index suivant après ou avant dst-window (les fenêtres existantes sont déplacées si nécessaire). Si -k est donné et que dst-window existe, elle est tuée, sinon une erreur est générée. Si -d est donné, la fenêtre nouvellement liée n’est pas sélectionnée.
list-panes [-as] [-F format] [-f filter] [-t target]
(alias : lsp)
Si -a est donné, target est ignoré et tous les volets du serveur sont listés. Si -s est donné, target est une session (ou la session actuelle). Si aucun des deux n’est donné, target est une fenêtre (ou la fenêtre actuelle). -F spécifie le format de chaque ligne et -f un filtre. Seuls les volets pour lesquels le filtre est vrai sont affichés. Voir la section « FORMATS ».
list-windows [-a] [-F format] [-f filter] [-t target-session]
(alias : lsw)
Si -a est donné, liste toutes les fenêtres du serveur. Sinon, liste les fenêtres de la session actuelle ou de target-session. -F spécifie le format de chaque ligne et -f un filtre. Seules les fenêtres pour lesquelles le filtre est vrai sont affichées. Voir la section « FORMATS ».
move-pane [-bdfhv] [-l size] [-s src-pane] [-t dst-pane]
(alias : movep)
Fait la même chose que join-pane.
move-window [-abrdk] [-s src-window] [-t dst-window]
(alias : movew)
Ceci est similaire à link-window, sauf que la fenêtre à src-window est déplacée vers dst-window. Avec -r, toutes les fenêtres de la session sont renumérotées dans l’ordre séquentiel, en respectant l’option base-index.
new-window [-abdkPS] [-c start-directory] [-e environment] [-F format] [-n window-name] [-t
target-window] [shell-command [argument ...]]
(alias : neww)
Crée une nouvelle fenêtre. Avec -a ou -b, la nouvelle fenêtre est insérée après ou avant la fenêtre cible spécifiée, en déplaçant les fenêtres si nécessaire ; sinon, target-window est l’emplacement de la nouvelle fenêtre.
Si -d est donné, la session ne sélectionne pas la nouvelle fenêtre en tant que fenêtre courante.
target-window représente la fenêtre à créer ; si la cible existe déjà, une erreur est affichée,
sauf si l’indicateur -k est utilisé, auquel cas elle est détruite. Si -S est donné et qu’une
fenêtre nommée window-name existe déjà, elle est sélectionnée (à moins que -d ne soit également
donné, auquel cas la commande ne fait rien).
shell-command est la commande à exécuter. Si shell-command n’est pas spécifié, la valeur de
l’option default-command est utilisée. -c spécifie le répertoire de travail dans lequel la
nouvelle fenêtre est créée.
Lorsque la commande shell est terminée, la fenêtre se ferme. Voir l’option remain-on-exit pour modifier ce comportement.
-e prend la forme « VARIABLE=valeur » et définit une variable d’environnement pour la nouvelle
fenêtre créée ; il peut être spécifié plusieurs fois.
La variable d’environnement TERM doit être définie sur « screen » ou « tmux » pour tous les programmes exécutés à l’intérieur de tmux. Les nouvelles fenêtres auront automatiquement « TERM=screen » ajouté à leur environnement, mais il faut veiller à ne pas réinitialiser cela dans les fichiers de démarrage du shell ou via l’option -e.
L’option -P affiche des informations sur la nouvelle fenêtre après sa création. Par défaut, elle utilise le format « #{session_name}:#{window_index} », mais un format différent peut être spécifié avec -F.
next-layout [-t target-window]
(alias : nextl)
Déplace une fenêtre vers la disposition suivante et réorganise les panneaux pour l’adapter.
next-window [-a] [-t target-session]
(alias : next)
Passe à la fenêtre suivante dans la session. Si -a est utilisé, passe à la fenêtre suivante avec une alerte.
pipe-pane [-IOo] [-t target-pane] [shell-command]
(alias : pipep)
Transmet la sortie du programme dans target-pane à une commande shell ou vice versa. Un panneau ne peut être connecté qu’à une seule commande à la fois ; tout canal existant est fermé avant l’exécution de shell-command. La chaîne shell-command peut contenir les séquences de caractères spéciales prises en charge par l’option status-left. Si aucune commande shell n’est fournie, le canal actuel (le cas échéant) est fermé.
-I et -O spécifient lesquels des flux de sortie de shell-command sont connectés au panneau :
avec -I, la sortie standard est connectée (de sorte que tout ce que shell-command affiche est
écrit dans le panneau comme s’il était tapé) ; avec -O, l’entrée standard est connectée (de
sorte que toute sortie dans le panneau est transmise à shell-command). Les deux peuvent être
utilisés ensemble, et si aucun n’est spécifié, -O est utilisé.
L'option -o ouvre uniquement un nouveau pipe si aucun pipe précédent n'existe, ce qui permet de basculer un pipe avec une seule touche, par exemple :
bind-key C-p pipe-pane -o 'cat >>~/output.#I-#P'
previous-layout [-t target-window]
(alias : prevl)
Déplace vers la disposition précédente dans la session.
previous-window [-a] [-t target-session]
(alias : prev)
Déplace vers la fenêtre précédente dans la session. Avec `-a`, déplace vers la fenêtre précédente qui a une alerte.
rename-window [-t target-window] new-name
(alias : renamew)
Renomme la fenêtre actuelle, ou la fenêtre spécifiée par `target-window`, en `new-name`.
resize-pane [-DLMRTUZ] [-t target-pane] [-x width] [-y height] [adjustment]
(alias : resizep)
Redimensionne un panneau, vers le haut, le bas, la gauche ou la droite avec `adjustment` à l'aide de `-U`, `-D`, `-L` ou `-R`, ou à une taille absolue avec `-x` ou `-y`. L'ajustement est donné en lignes ou en colonnes (la valeur par défaut est 1 ; `-x` et `-y` peuvent être donnés en tant que nombre de lignes ou de colonnes, ou suivis de `%` pour un pourcentage de la taille de la fenêtre (par exemple, `-x 10%`). Avec `-Z`, le panneau actif bascule entre l'état zoomé (occupant toute la fenêtre) et l'état non zoomé (sa position normale dans la disposition).
`-M` lance le redimensionnement à la souris (valide uniquement s'il est lié à une liaison de touche de souris, voir « SUPPORT DE LA SOURIS »).
`-T` supprime toutes les lignes en dessous de la position actuelle du curseur et déplace les lignes hors de l'historique pour les remplacer.
resize-window [-aADLRU] [-t target-window] [-x width] [-y height] [adjustment]
(alias : resizew)
Redimensionne une fenêtre, vers le haut, le bas, la gauche ou la droite avec `adjustment` à l'aide de `-U`, `-D`, `-L` ou `-R`, ou à une taille absolue avec `-x` ou `-y`. L'ajustement est donné en lignes ou en cellules (la valeur par défaut est 1. `-A` définit la taille de la session la plus grande contenant la fenêtre ; `-a` la taille de la plus petite. Cette commande définira automatiquement `window-size` sur `manual` dans les options de la fenêtre.
respawn-pane [-k] [-c start-directory] [-e environment] [-t target-pane] [shell-command [argument ...]]
(alias : respawnp)
Réactive un panneau dans lequel la commande a quitté (voir l'option de fenêtre `remain-on-exit`). Si `shell-command` n'est pas donné, la commande utilisée lors de la création du panneau ou du dernier redémarrage est exécutée. Le panneau doit déjà être inactif, à moins que `-k` ne soit donné, auquel cas toute commande existante est terminée. `-c` spécifie un nouveau répertoire de travail pour le panneau. L'option `-e` a la même signification que pour la commande `new-window`.
respawn-window [-k] [-c start-directory] [-e environment] [-t target-window] [shell-command [argument ...]]
(alias : respawnw)
Réactive une fenêtre dans laquelle la commande a quitté (voir l'option de fenêtre `remain-on-exit`). Si `shell-command` n'est pas donné, la commande utilisée lors de la création de la fenêtre ou du dernier redémarrage est exécutée. La fenêtre doit déjà être inactive, à moins que `-k` ne soit donné, auquel cas toute commande existante est terminée. `-c` spécifie un nouveau répertoire de travail pour la fenêtre. L'option `-e` a la même signification que pour la commande `new-window`.
rotate-window [-DUZ] [-t target-window]
(alias : rotatew)
Fait pivoter les positions des volets dans une fenêtre, soit vers le haut (numériquement inférieur) avec -U, soit vers le bas (numériquement supérieur). L’option -Z conserve l’état zoom de la fenêtre si elle était déjà zoomée.
select-layout [-Enop] [-t target-pane] [layout-name]
(alias : selectl)
Sélectionne une disposition spécifique pour une fenêtre. Si le nom de la disposition n’est pas spécifié, la dernière disposition prédéfinie utilisée (le cas échéant) est réappliquée. Les options -n et -p sont équivalentes aux commandes next-layout et previous-layout. L’option -o applique la dernière disposition définie si possible (annule la dernière modification de disposition). L’option -E répartit uniformément le volet actuel et tous les volets adjacents.
select-pane [-DdeLlMmRUZ] [-T title] [-t target-pane]
(alias : selectp)
Définit le volet target-pane comme volet actif dans sa fenêtre. Si l’une des options -D, -L, -R ou -U est utilisée, le volet situé respectivement en dessous, à gauche, à droite ou au-dessus du volet cible sera utilisé. L’option -Z conserve l’état zoom de la fenêtre si elle était déjà zoomée. L’option -l est identique à l’utilisation de la commande last-pane. L’option -e active ou désactive l’entrée vers le volet. L’option -T définit le titre du volet.
Les options -m et -M sont utilisées pour définir et effacer le volet marqué. Il n’y a qu’un seul volet marqué à la fois ; la définition d’un nouveau volet marqué efface le précédent. Le volet marqué est la cible par défaut pour les commandes -s, join-pane, move-pane et swap-window.
select-window [-lnpT] [-t target-window]
(alias : selectw)
Sélectionne la fenêtre target-window. Les options -l, -n et -p sont équivalentes aux commandes last-window, next-window et previous-window. Si l’option -T est donnée et que la fenêtre sélectionnée est déjà la fenêtre actuelle, la commande se comporte comme last-window.
split-window [-bdfhIvPZ] [-c start-directory] [-e environment] [-F format] [-l size] [-t
target-pane] [shell-command [argument ...]]
(alias : splitw)
Crée un nouveau volet en divisant target-pane : l’option -h effectue une division horizontale et l’option -v une division verticale ; si aucune des deux n’est spécifiée, l’option -v est supposée. L’option -l spécifie la taille du nouveau volet en lignes (pour une division verticale) ou en colonnes (pour une division horizontale) ; la taille peut être suivie de « % » pour spécifier un pourcentage de l’espace disponible. L’option -b fait en sorte que le nouveau volet soit créé à gauche ou au-dessus de target-pane. L’option -f crée un nouveau volet qui s’étend sur toute la hauteur de la fenêtre (avec -h) ou sur toute la largeur de la fenêtre (avec -v), au lieu de diviser le volet actif. L’option -Z zoome si la fenêtre n’est pas zoomée, ou conserve le zoom si elle l’est déjà.
Une commande shell vide (« ») créera un volet sans commande en cours d’exécution. La sortie peut être envoyée à un tel volet à l’aide de la commande display-message. L’option -I (si shell-command n’est pas spécifiée ou est vide) créera un volet vide et transférera toute la sortie de stdin vers celui-ci. Par exemple :
$ make 2>&1|tmux splitw -dI &
Toutes les autres options ont la même signification que pour la commande new-window.
swap-pane [-dDUZ] [-s src-pane] [-t dst-pane]
(alias : swapp)
Permet d’échanger deux panneaux. Si l’option -U est utilisée et qu’aucun panneau source n’est spécifié avec l’option -s, le panneau de destination est échangé avec le panneau précédent (numériquement). L’option -D permet d’échanger avec le panneau suivant (numériquement). L’option -d indique à tmux de ne pas modifier le panneau actif, et l’option -Z conserve le zoom de la fenêtre si elle était zoomée.
Si l’option -s est omise et qu’un panneau marqué est présent (voir la commande select-pane -m), le panneau marqué est utilisé au lieu du panneau actuel.
swap-window [-d] [-s src-window] [-t dst-window]
(alias : swapw)
Cette commande est similaire à link-window, sauf que les fenêtres source et de destination sont échangées. Si aucune fenêtre n’existe à src-window, une erreur se produit. Si l’option -d est spécifiée, la nouvelle fenêtre ne devient pas la fenêtre actuelle.
Si l’option -s est omise et qu’un panneau marqué est présent (voir la commande select-pane -m), la fenêtre contenant le panneau marqué est utilisée au lieu de la fenêtre actuelle.
unlink-window [-k] [-t target-window]
(alias : unlinkw)
Permet de dissocier target-window. À moins que l’option -k soit spécifiée, une fenêtre ne peut être dissociée que si elle est liée à plusieurs sessions. Il n’est pas possible de lier une fenêtre à aucune session ; si l’option -k est spécifiée et que la fenêtre est liée à une seule session, elle est dissociée et détruite.
LIAISONS DE TOUCHES
tmux permet d’associer une commande à la plupart des touches, avec ou sans une touche de préfixe. Lors de la spécification des touches, la plupart représentent elles-mêmes (par exemple, « A » à « Z »). Les touches Ctrl peuvent être préfixées par « C- » ou « ^ », les touches Majuscule par « S- » et Alt (Meta) par « M- ». De plus, les noms de touches spéciaux suivants sont acceptés : Up, Down, Left, Right, BSpace, BTab, DC (Delete), End, Enter, Escape, F1 à F12, Home, IC (Insert), NPage/PageDown/PgDn, PPage/PageUp/PgUp, Space et Tab. Notez que pour lier les touches « " » ou « ' », les guillemets sont nécessaires, par exemple :
bind-key '"' split-window
bind-key "'" new-window
Une commande liée à la touche Any s’exécutera pour toutes les touches qui n’ont pas de liaison plus spécifique.
Les commandes relatives aux liaisons de touches sont les suivantes :
bind-key [-nr] [-N note] [-T key-table] key [command [argument ...]]
(alias : bind)
Lie la touche key à la commande command. Les touches sont liées dans une table de touches. Par défaut (sans l’option -T), la touche est liée dans la table de touches de préfixe. Cette table est utilisée pour les touches pressées après la touche de préfixe (par exemple, par défaut, « c » est lié à new-window dans la table de préfixe, de sorte que « C-b
c » crée une nouvelle fenêtre). La table racine est utilisée pour les touches pressées sans la touche de préfixe : lier « c » à new-window dans la table racine (ce qui n’est pas recommandé) signifie qu’un simple « c » créera une nouvelle fenêtre. L’option -n est un alias de -T root. Les touches peuvent également être liées dans des tables de touches personnalisées, et la commande switch-client -T peut être utilisée pour basculer vers celles-ci à partir d’une liaison de touches. L’option -r indique que cette touche peut être répétée, voir les options initial-repeat-time et repeat-time. L’option -N attache une note à la touche (affichée avec list-keys -N), qui peut être effacée en passant une chaîne vide. Les options -r et -N peuvent être utilisées sans commande pour modifier une liaison existante.
Pour afficher les liaisons par défaut et les commandes possibles, consultez la commande list-keys.
list-keys [-1aN] [-P prefix-string] [-T key-table] [key]
(alias: lsk)
Affiche les liaisons de touches. Il existe deux formes : la forme par défaut affiche les touches sous forme de commandes bind-key ; -N affiche uniquement les touches dotées d’une note et affiche uniquement la touche et la note pour chaque touche.
Dans la forme par défaut, toutes les tables de touches sont affichées par défaut. -T affiche uniquement les touches de key-table.
Avec la forme -N, seules les touches des tables de touches racine et de préfixe sont affichées par défaut ; -T affiche également uniquement les touches de key-table. -P spécifie un préfixe à imprimer avant chaque touche et -1 affiche uniquement la première touche correspondante. -a affiche la commande pour les touches qui n’ont pas de note au lieu de les ignorer.
send-keys [-FHKlMRX] [-c target-client] [-N repeat-count] [-t target-pane] [key ...]
(alias: send)
Envoie une ou plusieurs touches à une fenêtre ou un client. Chaque argument key est le nom de la touche (par exemple, « C-a » ou « NPage ») à envoyer ; si la chaîne n’est pas reconnue comme une touche, elle est envoyée sous forme de série de caractères. Si -K est spécifié, les touches sont envoyées à target-client, de sorte qu’elles sont recherchées dans la table de touches du client, plutôt que vers target-pane. Tous les arguments sont envoyés séquentiellement, du premier au dernier. S’il n’y a pas de touches spécifiées et que la commande est liée à une touche, cette touche est alors utilisée.
Le drapeau `-l` désactive la recherche de noms de touches et traite les touches comme des caractères UTF-8 littéraux.
Le drapeau `-H` indique que chaque touche doit être un nombre hexadécimal pour un caractère ASCII.
Le drapeau `-R` a pour effet de réinitialiser l’état du terminal.
-M transmet un événement de souris (valide uniquement s’il est lié à une liaison de touche de souris, voir la section « PRISE EN CHARGE DE LA SOURIS »).
-X est utilisé pour envoyer une commande au mode copie (voir la section « FENÊTRES ET PANNEAUX »). `-N` spécifie un nombre de répétitions et `-F` développe les formats dans les arguments, le cas échéant.
send-prefix [-2] [-t target-pane]
Envoie la touche de préfixe, ou avec -2 la touche de préfixe secondaire, à une fenêtre comme si elle était enfoncée.
unbind-key [-anq] [-T key-table] key
(alias: unbind)
Supprime la commande liée à key. -n et -T sont les mêmes que pour bind-key. Si -a est présent, toutes les liaisons de touches sont supprimées. L’option -q empêche le renvoi d’erreurs.
OPTIONS
L’apparence et le comportement de tmux peuvent être modifiés en modifiant la valeur de diverses options. Chaque option appartient à un ou plusieurs domaines (serveur, session, fenêtre et panneau) et possède un type (chaîne, nombre, touche, couleur, indicateur, choix ou commande). Les valeurs des options de type indicateur peuvent être : 1, on, yes, 0, off ou no ; pour les valeurs de choix possibles, voir l’option respective ; pour les options de touches, la section « LIAISONS DE TOUCHES » ; et pour les options de couleurs, la section « STYLES ».
Le serveur tmux dispose d’un ensemble d’options globales de serveur qui ne s’appliquent à aucune fenêtre ou session ou panneau particulier. Celles-ci sont modifiées à l’aide de la commande set-option -s, ou affichées à l’aide de la commande show-options -s.
De plus, chaque session individuelle peut avoir un ensemble d’options de session, et il existe un ensemble distinct d’options de session globales. Les sessions qui n’ont pas une option particulière configurée héritent de la valeur des options de session globales. Les options de session sont définies ou supprimées à l’aide de la commande set-option et peuvent être répertoriées à l’aide de la commande show-options. Les options de serveur et de session disponibles sont répertoriées dans la commande set-option.
De même, un ensemble d’options de fenêtre est associé à chaque fenêtre et un ensemble d’options de volet à chaque volet. Les options de volet héritent des options de fenêtre. Cela signifie que toute option de volet peut être définie comme une option de fenêtre pour appliquer l’option à tous les volets de la fenêtre sans que l’option soit définie, par exemple, les commandes suivantes définiront la couleur d’arrière-plan sur rouge pour tous les volets, à l’exception du volet 0 :
set -w window-style bg=red
set -pt:.0 window-style bg=blue
Il existe également un ensemble d’options de fenêtre globales à partir duquel toute option de fenêtre ou de volet non définie est héritée. Les options de fenêtre et de volet sont modifiées à l’aide des commandes set-option -w et -p, et affichées à l’aide des commandes show-option -w et -p.
Tmux prend également en charge les options utilisateur, qui sont préfixées par un « @ ». Les options utilisateur peuvent avoir n’importe quel nom, à condition qu’elles soient préfixées par un « @ », et peuvent être définies sur n’importe quelle chaîne. Par exemple :
$ tmux set -wq @foo "abc123"
$ tmux show -wv @foo
abc123
Les options sont gérées à l’aide de ces commandes :
set-option [-aFgopqsuUw] [-t target-pane] option [value]
(alias : set)
Définit une option de volet avec -p, une option de fenêtre avec -w, une option de serveur avec -s, sinon une option de session. Si l’option n’est pas une option utilisateur, -w ou -s peuvent ne pas être nécessaires : tmux déduira la portée à partir du nom de l’option, en supposant -w pour les options de volet. Si -g est donné, l’option de session ou de fenêtre globale est définie.
-F développe les formats dans la valeur de l’option. Le drapeau `-u` supprime une option, de sorte qu’une session hérite de l’option des options globales (ou, avec `-g`, restaure une option globale à sa valeur par défaut). `-U` supprime une option (comme `-u`), mais si l’option est une option de volet, supprime également l’option sur tous les volets de la fenêtre. `value` dépend de l’option et de son type, et peut être omis pour les options de type drapeau et de type choix afin de modifier sa valeur (les options de type choix alternent entre les deux premiers choix).
Le drapeau -o empêche la définition d’une option qui est déjà définie, et le drapeau -q supprime les erreurs concernant les options inconnues ou ambiguës.
Avec -a, et si l’option attend une chaîne ou un style, value est ajouté au paramètre existant. Par exemple :
set -g status-left "foo"
set -ag status-left "bar"
Le résultat sera « foobar ». Et :
set -g status-style "bg=red"
set -ag status-style "fg=blue"
Le résultat sera un arrière-plan rouge et un premier plan bleu. Sans -a, le résultat serait l’arrière-plan par défaut et un premier plan bleu.
show-options [-AgHpqsvw] [-t target-pane] [option]
(alias : show)
Affiche les options de volet (ou une seule option si option est fourni) avec -p, les options de fenêtre avec -w, les options de serveur avec -s, sinon les options de session. Si l’option n’est pas une option utilisateur, -w ou -s peuvent ne pas être nécessaires : tmux déduira la portée à partir du nom de l’option, en supposant -w pour les options de volet. Les options de session ou de fenêtre globales sont répertoriées si -g est utilisé. -v affiche uniquement la valeur de l’option, et non le nom. Si -q est défini, aucune erreur ne sera renvoyée si l’option n’est pas définie. -H inclut les hooks (omis par défaut). -A inclut les options héritées d’un ensemble d’options parent ; ces options sont marquées d’un astérisque.
Les options de serveur disponibles sont :
backspace key
Définir la touche envoyée par tmux pour la touche retour arrière.
buffer-limit number
Définir le nombre de tampons ; au fur et à mesure que de nouveaux tampons sont ajoutés en haut de la pile, les anciens sont supprimés du bas si nécessaire pour maintenir cette longueur maximale.
command-alias[] name=value
Il s’agit d’un tableau d’alias personnalisés pour les commandes. Si une commande inconnue correspond à « name », elle est remplacée par « value ». Par exemple, après :
set -s command-alias[100] zoom='resize-pane -Z'
En utilisant :
zoom -t:.1
est équivalent à :
resize-pane -Z -t:.1
Notez que les alias sont développés lorsque la commande est analysée plutôt que lorsqu’elle est exécutée, de sorte que la définition d’un alias avec « bind-key » définira la forme développée.
codepoint-widths[] string
Une option de tableau qui permet de remplacer les largeurs des points de code Unicode. Notez que la nouvelle largeur s’applique à tous les clients. Chaque entrée a la forme « codepoint=width », où « codepoint » peut être un caractère UTF-8 ou un identifiant de la forme « U+nombre », où « nombre » est un nombre hexadécimal.
copy-command shell-command
Définir la commande à transmettre si la commande de mode de copie « copy-pipe » est utilisée sans arguments.
default-client-command command
Définir la commande par défaut à exécuter lorsque tmux est appelé sans commande. La valeur par défaut est « new-session ».
default-terminal terminal
Définir le terminal par défaut pour les nouvelles fenêtres créées dans cette session, la valeur par défaut de la variable d’environnement TERM. Pour que tmux fonctionne correctement, cette valeur doit être définie sur « screen », « tmux » ou une variante de ces dernières.
escape-time time
Définir le temps, en millisecondes, pendant lequel tmux attend après qu’une séquence d’échappement est entrée pour déterminer si elle fait partie d’une fonction ou d’une séquence de touches Meta.
editor shell-command
Définir la commande utilisée lorsque tmux exécute un éditeur.
exit-empty [on | off]
Si cette option est activée (la valeur par défaut), le serveur se terminera lorsqu’il n’y aura plus de sessions actives.
exit-unattached [on | off]
Si cette option est activée, le serveur se terminera lorsqu’il n’y aura plus de clients connectés.
extended-keys [on | off | always]
Contrôle la façon dont les touches modifiées (touches enfoncées avec Control, Meta ou Shift) sont signalées. Ceci est équivalent à la ressource xterm(1) « modifyOtherKeys ».
Lorsque cette option est définie sur « on », le programme à l’intérieur du panneau peut demander l’un des deux modes : le mode 1, qui modifie la séquence pour les touches qui n’ont pas de représentation bien connue ; ou le mode 2, qui modifie la séquence pour toutes les touches. Lorsque cette option est définie sur « always », les modes 1 et 2 peuvent toujours être demandés par les applications, mais le mode 1 sera forcé à la place du mode standard. Lorsque cette option est définie sur « off », cette fonctionnalité est désactivée et seules les touches standard sont signalées.
tmux demandera toujours les séquences de touches étendues si le terminal les prend en charge. Voir également
l’option `extkeys` pour l’option `terminal-features`, l’option `extended-keys-format` et
la variable `pane_key_mode`.
`extended-keys-format` [`csi-u` | `xterm`]
Sélectionne l’un des deux formats possibles pour signaler les touches modifiées aux applications.
Cela équivaut à la ressource `formatOtherKeys` de `xterm(1)`. Par exemple, `C-S-a`
sera signalé comme `^[[27;6;65~` lorsqu’il est défini sur `xterm`, et comme `^[[65;6u` lorsqu’il est défini sur `csi-u`.
`focus-events` [`on` | `off`]
Lorsque cette option est activée, les événements de focus sont demandés au terminal, si pris en charge, et transmis
aux applications exécutées dans tmux. Les clients connectés doivent être déconnectés et reconnectés après avoir modifié cette option.
`history-file` `path`
Si non vide, c’est le fichier dans lequel tmux écrira l’historique des commandes lors de la fermeture et le chargera au démarrage.
`input-buffer-size` `bytes`
Taille maximale, en octets, autorisée pour la lecture des séquences d’échappement et de contrôle. Une fois cette limite atteinte, la séquence sera supprimée.
`message-limit` `number`
Définit le nombre de messages d’erreur ou d’information à enregistrer dans le journal des messages pour chaque
client.
`prompt-history-limit` `number`
Définit le nombre d’éléments d’historique à enregistrer dans le fichier d’historique pour chaque type
d’invite de commande.
`set-clipboard` [`on` | `external` | `off`]
Tente de définir le contenu du presse-papiers du terminal en utilisant la séquence d’échappement `xterm(1)`, s’il existe une entrée `Ms` dans la description `terminfo(5)` (voir la section « EXTENSIONS TERMINFO »).
Si cette option est définie sur `on`, tmux acceptera à la fois la séquence d’échappement pour créer un tampon et tentera de
définir le presse-papiers du terminal. Si elle est définie sur `external`, tmux tentera de définir le presse-papiers du terminal mais ignorera les tentatives des applications pour définir les tampons tmux. Si elle est définie sur `off`, tmux
n’acceptera ni la séquence d’échappement du presse-papiers, ni ne tentera de définir le presse-papiers.
Notez que cette fonctionnalité doit être activée dans `xterm(1)` en définissant la ressource :
`disallowedWindowOps: 20,21,SetXprop`
Ou en modifiant cette propriété à partir du menu interactif de `xterm(1)` si nécessaire.
`terminal-features[]` `string`
Définit les fonctionnalités du terminal pour les types de terminaux lus à partir de `terminfo(5)`. tmux dispose d’un ensemble de fonctionnalités de terminal nommées.
Chaque fonctionnalité appliquera les modifications appropriées à l’entrée `terminfo(5)` utilisée.
tmux peut détecter les fonctionnalités de certains terminaux courants ; cette option peut être utilisée pour indiquer facilement à tmux les fonctionnalités prises en charge par les terminaux qu’il ne peut pas détecter.
L’option `terminal-overrides` permet de définir des capacités `terminfo(5)` individuelles, tandis que `terminal-features` est destinée aux classes de fonctionnalités prises en charge de manière standard mais non signalées par `terminfo(5)`.
Il faut veiller à ne configurer ceci qu’avec les fonctionnalités que le terminal prend réellement en charge.
Il s’agit d’une option de tableau où chaque entrée est une chaîne séparée par des deux-points, composée d’un modèle de type de terminal (mis en correspondance à l’aide de modèles glob(7)) suivi d’une liste de fonctionnalités de terminal. Les fonctionnalités disponibles sont les suivantes :
256 Prend en charge 256 couleurs avec les séquences d’échappement SGR.
clipboard
Permet de définir la zone de presse-papiers du système.
ccolour
Permet de définir la couleur du curseur.
cstyle
Permet de définir le style du curseur.
extkeys
Prend en charge les touches étendues.
focus
Prend en charge la notification de focus.
hyperlinks
Prend en charge les liens hypertextes OSC 8.
ignorefkeys
Ignore les touches de fonction de terminfo(5) et utilise uniquement l’ensemble interne de tmux.
margins
Prend en charge les marges DECSLRM.
mouse
Prend en charge les séquences de souris xterm(1).
osc7
Prend en charge l’extension de répertoire de travail OSC 7.
overline
Prend en charge l’attribut SGR de ligne horizontale.
rectfill
Prend en charge la séquence d’échappement de remplissage de rectangle DECFRA.
RGB
Prend en charge la couleur RVB avec les séquences d’échappement SGR.
sixel
Prend en charge les graphiques SIXEL.
strikethrough
Prend en charge la séquence d’échappement SGR de texte barré.
sync
Prend en charge les mises à jour synchronisées.
title
Prend en charge la définition du titre xterm(1).
usstyle
Permet de définir le style et la couleur du soulignement.
terminal-overrides[] chaîne
Permet de remplacer les descriptions de terminal lues à l’aide de terminfo(5). Chaque entrée est une chaîne séparée par des deux-points, composée d’un modèle de type de terminal (mis en correspondance à l’aide de modèles glob(7)) et d’un ensemble d’entrées de type nom=valeur.
Par exemple, pour définir l’entrée « clear » de terminfo(5) sur « \e[H\e[2J » pour tous les types de terminal correspondant à « rxvt* » :
rxvt*:clear=\e[H\e[2J
La valeur d’entrée de terminal est transmise via strunvis(3) avant son interprétation.
user-keys[] clé
Définit la liste des séquences d’échappement de clé définies par l’utilisateur. Chaque élément est associé à une clé nommée « User0 », « User1 », etc.
Par exemple :
set -s user-keys[0] "\e[5;30012~"
bind User0 resize-pane -L 3
variation-selector-always-wide [on | off]
Traite toujours le sélecteur de variation Unicode 16 comme marquant un caractère large. Il s’agit d’une fonctionnalité de certains terminaux dans le cadre de leur prise en charge de Unicode 14.
Les options de session disponibles sont les suivantes :
activity-action [any | none | current | other]
Définit l’action à effectuer en cas d’activité dans une fenêtre lorsque monitor-activity est activé. any signifie que l’activité dans n’importe quelle fenêtre liée à une session déclenche un bip ou un message (en fonction de visual-activity) dans la fenêtre actuelle de cette session, none signifie que toute activité est ignorée (ce qui équivaut à ce que monitor-activity soit désactivé), current signifie que seule l’activité dans les fenêtres autres que la fenêtre actuelle est ignorée, et other signifie que l’activité dans la fenêtre actuelle est ignorée, mais pas celle des autres fenêtres.
assume-paste-time millisecondes
Si les touches sont entrées plus rapidement qu’une fois par milliseconde, elles sont considérées comme ayant été collées plutôt que tapées, et les liaisons de touches tmux ne sont pas traitées. La valeur par défaut est une milliseconde, et zéro la désactive.
base-index index
Définit l’index de base à partir duquel un index inutilisé doit être recherché lors de la création d’une nouvelle fenêtre. La valeur par défaut est zéro.
bell-action [any | none | current | other]
Définit l’action à effectuer sur une alerte dans une fenêtre lorsque monitor-bell est activé. Les valeurs sont les mêmes que celles de l’option activity-action.
default-command shell-command
Définit la commande utilisée pour les nouvelles fenêtres (si elle n’est pas spécifiée lors de la création de la fenêtre) sur shell-command, qui peut être n’importe quelle commande [sh]({filename}../../sh)(1). La valeur par défaut est une chaîne vide, ce qui indique à tmux de créer un shell de connexion en utilisant la valeur de l’option default-shell.
default-shell path
Spécifie le shell par défaut. Il est utilisé comme shell de connexion pour les nouvelles fenêtres lorsque l’option default-command est définie sur une chaîne vide, et doit être le chemin complet de l’exécutable. Au démarrage, tmux tente de définir une valeur par défaut à partir de la première des variables d’environnement SHELL, du shell renvoyé par getpwuid(3), ou /bin/sh. Cette option doit être configurée lorsque tmux est utilisé comme shell de connexion.
default-size XxY
Définit la taille par défaut des nouvelles fenêtres lorsque l’option window-size est définie sur manual ou lorsqu’une session est créée avec new-session -d. La valeur est la largeur et la hauteur séparées par un caractère « x ». La valeur par défaut est 80x24.
destroy-unattached [off | on | keep-last | keep-group]
Si on, détruit la session après que le dernier client s’est déconnecté. Si off (par défaut), laisse la session orpheline. Si keep-last, détruit la session uniquement si elle se trouve dans un groupe et que d’autres sessions se trouvent dans ce groupe. Si keep-group, détruit la session à moins qu’elle ne se trouve dans un groupe et qu’elle soit la seule session de ce groupe.
detach-on-destroy [off | on | no-detached | previous | next]
Si on (par défaut), le client est déconnecté lorsque la session à laquelle il est connecté est détruite. Si off, le client est basculé vers la session la plus récemment active parmi les sessions restantes. Si no-detached, le client est déconnecté uniquement s’il n’y a pas de sessions déconnectées ; s’il existe des sessions déconnectées, le client est basculé vers la session la plus récemment active. Si previous ou next, le client est basculé vers la session précédente ou suivante dans l’ordre alphabétique.
display-panes-active-colour colour
Définit la couleur utilisée par la commande display-panes pour afficher l’indicateur du panneau actif.
display-panes-colour colour
Définit la couleur utilisée par la commande display-panes pour afficher les indicateurs des panneaux inactifs.
display-panes-time time
Définit le temps en millisecondes pendant lequel les indicateurs affichés par la commande display-panes apparaissent.
display-time time
Définit la durée pendant laquelle les messages de la ligne d’état et autres indicateurs à l’écran sont affichés. Si la valeur est définie sur 0, les messages et les indicateurs sont affichés jusqu’à ce qu’une touche soit enfoncée. Le temps est exprimé en millisecondes.
history-limit lines
Définit le nombre maximal de lignes conservées dans l’historique des fenêtres. Ce paramètre ne s’applique qu’aux nouvelles fenêtres ; les historiques des fenêtres existantes ne sont pas redimensionnés et conservent la limite au moment de leur création.
initial-repeat-time time
Définit le temps en millisecondes pour la répétition initiale lorsqu’une touche est liée avec le drapeau -r. Cela permet d’entrer plusieurs commandes sans avoir à appuyer à nouveau sur la touche de préfixe. Voir également l’option repeat-time. Si initial-repeat-time est égal à zéro, repeat-time est utilisé pour la première pression de touche.
key-table key-table
Définit la table de clés par défaut sur key-table au lieu de root.
lock-after-time nombre
Verrouille la session (comme la commande lock-session) après nombre secondes d’inactivité.
La valeur par défaut est de ne pas verrouiller (définir sur 0).
lock-command commande-shell
Commande à exécuter lors du verrouillage de chaque client. La valeur par défaut consiste à exécuter lock(1) avec -np.
menu-style style
Définit le style du menu. Voir la section « STYLES » pour savoir comment spécifier le style.
menu-selected-style style
Définit le style de l’élément de menu sélectionné. Voir la section « STYLES » pour savoir comment spécifier le style.
menu-border-style style
Définit le style de la bordure du menu. Voir la section « STYLES » pour savoir comment spécifier le style.
menu-border-lines type
Définit le type de caractères utilisés pour dessiner les bordures du menu. Voir popup-border-lines pour les valeurs possibles de border-lines.
message-command-style style
Définit le style de la ligne de commande du message d’état. Ceci est utilisé pour l’invite de commandes avec les touches vi(1) lorsque vous êtes en mode commande. Pour savoir comment spécifier le style, voir la section « STYLES ».
message-line [0 | 1 | 2 | 3 | 4]
Définit la ligne sur laquelle les messages de la ligne d’état et l’invite de commandes sont affichés.
message-style style
Définit le style du message de la ligne d’état. Ceci est utilisé pour les messages et pour l’invite de commandes. Pour savoir comment spécifier le style, voir la section « STYLES ».
mouse [on | off]
Si activé, tmux capture la souris et permet de lier les événements de la souris aux liaisons de touches. Voir la section « PRise en charge de la souris » pour plus de détails.
prefix key
Définit la touche acceptée comme touche de préfixe. En plus des touches standard décrites dans la section « LIAISONS DE TOUCHES », le préfixe peut être défini sur la touche spéciale « None » pour ne pas définir de préfixe.
prefix2 key
Définit une touche secondaire acceptée comme touche de préfixe. Comme prefix, prefix2 peut être défini sur « None ».
prefix-timeout temps
Définit le temps en millisecondes pendant lequel tmux attend après que le préfixe a été entré avant de l’ignorer. Peut être défini sur zéro pour désactiver tout délai d’attente.
prompt-cursor-colour couleur
Définit la couleur du curseur dans l’invite de commandes.
prompt-cursor-style style
Définit le style du curseur dans l’invite de commandes. Voir les options cursor-style pour les styles disponibles.
renumber-windows [on | off]
Si activé, lorsqu’une fenêtre est fermée dans une session, renumérote automatiquement les autres fenêtres dans l’ordre numérique. Cela respecte l’option base-index si elle a été définie. Si désactivé, ne renumérote pas les fenêtres.
repeat-time temps
Permet de saisir plusieurs commandes sans appuyer à nouveau sur la touche de préfixe dans le temps en millisecondes spécifié (la valeur par défaut est 500). Il est possible de définir si une touche se répète lors de sa liaison à l’aide de l’indicateur -r de la commande bind-key. La répétition est activée pour les touches par défaut liées à la commande resize-pane. Voir également l’option initial-repeat-time.
set-titles [on | off]
Tente de définir le titre du terminal client à l’aide des entrées tsl et fsl terminfo(5) si elles existent. tmux définit automatiquement ces entrées sur la séquence \e]0;...\007 si le terminal semble être xterm(1). Cette option est désactivée par défaut.
set-titles-string string
Chaîne utilisée pour définir le titre du terminal client si set-titles est activé. Les formats sont étendus, voir la section « FORMATS ».
silence-action [any | none | current | other]
Définir l’action à effectuer lorsque le silence de la fenêtre est détecté lorsque monitor-silence est activé. Les valeurs sont les mêmes que celles de activity-action.
status [off | on | 2 | 3 | 4 | 5]
Afficher ou masquer la ligne d’état, ou spécifier sa taille. L’utilisation de on affiche une ligne d’état d’une ligne de hauteur ; 2, 3, 4 ou 5 pour afficher davantage de lignes.
status-format[] format
Spécifier le format à utiliser pour chaque ligne de la ligne d’état. La valeur par défaut construit la ligne d’état supérieure à partir des différentes options d’état individuelles ci-dessous.
status-interval interval
Mettre à jour la ligne d’état tous les interval secondes. Par défaut, les mises à jour se produisent toutes les 15 secondes. Un paramètre de zéro désactive le redessin à interval.
status-justify [left | centre | right | absolute-centre]
Définir la position de la liste des fenêtres dans la ligne d’état : gauche, centre ou droite. centre place la liste des fenêtres au centre relatif de l’espace libre disponible ; absolute-centre utilise le centre de l’espace horizontal entier.
status-keys [vi | emacs]
Utiliser des liaisons de touches de style vi ou emacs dans la ligne d’état, par exemple à l’invite de commande. La valeur par défaut est emacs, sauf si les variables d’environnement VISUAL ou EDITOR sont définies et contiennent la chaîne « vi ».
status-left string
Afficher une chaîne à gauche de la ligne d’état. Par défaut, le nom de la session est affiché. La chaîne sera transmise à strftime(3). Voir également les sections « FORMATS » et « STYLES ».
status-left-length length
Définir la longueur maximale de la composante gauche de la ligne d’état. La valeur par défaut est 10.
status-left-style style
Définir le style de la partie gauche de la ligne d’état. Pour savoir comment spécifier le style, voir la section « STYLES ».
status-position [top | bottom]
Définir la position de la ligne d’état.
status-right string
Afficher une chaîne à droite de la ligne d’état. Par défaut, le titre actuel du panneau entre guillemets, la date et l’heure sont affichés. Comme pour status-left, la chaîne sera transmise à strftime(3) et les paires de caractères seront remplacées.
status-right-length length
Définir la longueur maximale de la composante droite de la ligne d’état. La valeur par défaut est 40.
status-right-style style
Définir le style de la partie droite de la ligne d’état. Pour savoir comment spécifier le style, voir la section « STYLES ».
status-style style
Définir le style de la ligne d’état. Pour savoir comment spécifier le style, voir la section « STYLES ».
update-environment[] variable
Définit la liste des variables d'environnement à copier dans l'environnement de la session lorsqu'une nouvelle session est créée ou lorsqu'une session existante est attachée. Les variables qui n'existent pas dans l'environnement source sont supprimées de l'environnement de la session (comme si l'option -r était utilisée avec la commande set-environment).
visual-activity [on | off | both]
Si activé, affiche un message au lieu d'envoyer un signal sonore lorsqu'une activité se produit dans une fenêtre pour laquelle l'option de fenêtre monitor-activity est activée. Si défini sur « both », un signal sonore et un message sont produits.
visual-bell [on | off | both]
Si activé, un message est affiché au lieu d'envoyer un signal sonore dans une fenêtre pour laquelle l'option de fenêtre monitor-bell est activée. Si défini sur « both », un signal sonore et un message sont produits. Voir également l'option bell-action.
visual-silence [on | off | both]
Si monitor-silence est activé, affiche un message après l'expiration de l'intervalle dans une fenêtre donnée au lieu d'envoyer un signal sonore. Si défini sur « both », un signal sonore et un message sont produits.
word-separators string
Définit la conception de la session des caractères considérés comme des séparateurs de mots, aux fins des commandes de mot suivant et de mot précédent en mode copie.
Les options de fenêtre disponibles sont :
aggressive-resize [on | off]
Redimensionne de manière agressive la fenêtre sélectionnée. Cela signifie que tmux redimensionnera la fenêtre à la taille de la session la plus petite ou la plus grande (voir l'option window-size) pour laquelle il s'agit de la fenêtre actuelle, plutôt qu'à la session à laquelle elle est attachée. La fenêtre peut être redimensionnée lorsque la fenêtre actuelle est modifiée dans une autre session ; cette option est idéale pour les programmes en plein écran qui prennent en charge SIGWINCH et moins adaptée aux programmes interactifs tels que les shells.
automatic-rename [on | off]
Contrôle le renommage automatique des fenêtres. Lorsque ce paramètre est activé, tmux renomme automatiquement la fenêtre en utilisant le format spécifié par automatic-rename-format. Ce drapeau est automatiquement désactivé pour une fenêtre individuelle lorsqu'un nom est spécifié lors de la création avec new-window ou new-session, ou ultérieurement avec rename-window, ou avec une séquence d'échappement de terminal. Il peut être désactivé globalement avec :
set-option -wg automatic-rename off
automatic-rename-format format
Le format (voir la section « FORMATS ») utilisé lorsque l'option automatic-rename est activée.
clock-mode-colour colour
Définit la couleur de l'horloge.
clock-mode-style [12 | 24 | 12-with-seconds | 24-with-seconds]
Définit le format de l'heure de l'horloge.
fill-character character
Définit le caractère utilisé pour remplir les zones du terminal non utilisées par une fenêtre.
main-pane-height height
main-pane-width width
Définit la hauteur ou la largeur du panneau principal (gauche ou supérieur) dans les dispositions main-horizontal, main-horizontal-mirrored, main-vertical ou main-vertical-mirrored. Si suivi de « % », il s'agit d'un pourcentage de la taille de la fenêtre.
copy-mode-match-style style
Définit le style des correspondances de recherche en mode copie. Pour savoir comment spécifier le style, voir la section « STYLES ».
copy-mode-mark-style style
Définit le style de la ligne contenant le marqueur en mode copie. Pour savoir comment spécifier le style, consultez la section « STYLES ».
copy-mode-current-match-style style
Définit le style de la correspondance de recherche actuelle en mode copie. Pour savoir comment spécifier le style, consultez la section « STYLES ».
copy-mode-position-format format
Définit le format de l’indicateur de position en mode copie.
mode-keys [vi | emacs]
Utilise des liaisons de touches de type vi ou emacs en mode copie. La valeur par défaut est emacs, sauf si les variables d’environnement VISUAL ou EDITOR contiennent « vi ».
copy-mode-position-style style
Définit le style de l’indicateur de position en mode copie. Pour savoir comment spécifier le style, consultez la section « STYLES ».
copy-mode-selection-style style
Définit le style de la sélection en mode copie. Pour savoir comment spécifier le style, consultez la section « STYLES ».
mode-style style
Définit le style des modes de fenêtre. Pour savoir comment spécifier le style, consultez la section « STYLES ».
monitor-activity [on | off]
Surveille l’activité dans la fenêtre. Les fenêtres avec activité sont mises en évidence dans la ligne d’état.
monitor-bell [on | off]
Surveille un signal sonore dans la fenêtre. Les fenêtres avec un signal sonore sont mises en évidence dans la ligne d’état.
monitor-silence [interval]
Surveille l’absence d’activité (silence) dans la fenêtre pendant un intervalle de secondes. Les fenêtres qui sont restées silencieuses pendant l’intervalle sont mises en évidence dans la ligne d’état. Un intervalle de zéro désactive la surveillance.
other-pane-height height
Définit la hauteur des autres panneaux (pas le panneau principal) dans les dispositions main-horizontal et main-horizontal-mirrored. Si cette option est définie sur 0 (la valeur par défaut), elle n’aura aucun effet. Si les options main-pane-height et other-pane-height sont toutes deux définies, le panneau principal deviendra plus grand pour que les autres panneaux atteignent la hauteur spécifiée, mais ne rétrécira pas pour ce faire. Si elle est suivie de « % », il s’agit d’un pourcentage de la taille de la fenêtre.
other-pane-width width
Comme other-pane-height, mais définit la largeur des autres panneaux dans les dispositions main-vertical et main-vertical-mirrored.
pane-active-border-style style
Définit le style de la bordure du panneau actif. Pour savoir comment spécifier le style, consultez la section « STYLES ». Les attributs sont ignorés.
pane-base-index index
Comme base-index, mais définit l’index de départ des numéros de panneau.
pane-border-format format
Définit le texte affiché dans les lignes d’état de la bordure du panneau.
pane-border-indicators [off | colour | arrows | both]
Indique le panneau actif en colorant uniquement la moitié de la bordure dans les fenêtres avec exactement deux panneaux, en affichant des marqueurs de flèche, en dessinant les deux ou aucun.
pane-border-lines type
Définit le type de caractères utilisés pour dessiner les bordures des panneaux. type peut être l’un des suivants :
single lignes simples utilisant des caractères ACS ou UTF-8
double lignes doubles utilisant des caractères UTF-8
heavy lignes épaisses utilisant des caractères UTF-8
simple caractères ASCII simples
number le numéro du panneau
spaces caractères d’espace
« double » et « heavy » reviendront à l’utilisation des caractères de dessin de lignes ACS standard lorsque UTF-8 n’est pas pris en charge.
pane-border-status [off | top | bottom]
Affiche ou non les lignes d’état de la bordure du panneau, ou définit leur position.
pane-border-style style
Définit le style de la bordure du panneau pour les panneaux autres que le panneau actif. Pour savoir comment spécifier le style, consultez la section « STYLES ». Les attributs sont ignorés.
popup-style style
Définit le style de la fenêtre contextuelle. Consultez la section « STYLES » pour savoir comment spécifier le style. Les attributs sont ignorés.
popup-border-style style
Définit le style de la bordure de la fenêtre contextuelle. Consultez la section « STYLES » pour savoir comment spécifier le style. Les attributs sont ignorés.
popup-border-lines type
Définit le type de caractères utilisés pour dessiner les bordures de la fenêtre contextuelle. type peut être l’un des suivants :
single lignes simples utilisant des caractères ACS ou UTF-8 (par défaut)
rounded
variation de single avec des coins arrondis utilisant des caractères UTF-8
double lignes doubles utilisant des caractères UTF-8
heavy lignes épaisses utilisant des caractères UTF-8
simple caractères ASCII simples
padded caractère d’espace ASCII simple
none aucune bordure
« double » et « heavy » reviendront aux lignes de dessin ACS standard lorsque UTF-8 n’est pas pris en charge.
pane-scrollbars [off | modal | on]
Lorsqu’il est activé, une barre de défilement basée sur des caractères apparaît sur le côté gauche ou droit de chaque panneau. Une section remplie de la barre de défilement, appelée « curseur », représente la position et la taille de la partie visible du contenu du panneau.
Si elle est définie sur on, la barre de défilement est visible en permanence. Si elle est définie sur modal, la barre de défilement n’apparaît que lorsque le panneau est en mode copie ou en mode visualisation. Lorsque la barre de défilement est visible, le panneau est réduit de la largeur de la barre de défilement et le texte du panneau est réorganisé. Si elle est définie sur modal, le panneau est réduit uniquement lorsque la barre de défilement est visible.
Voir également pane-scrollbars-style.
pane-scrollbars-style style
Définit le style des barres de défilement. Pour savoir comment spécifier le style, consultez la section « STYLES ». La couleur de premier plan est utilisée pour le curseur, l’arrière-plan pour le reste de la barre de défilement. L’attribut width définit la largeur de la barre de défilement et l’attribut pad, le remplissage entre la barre de défilement et le panneau. Les autres attributs sont ignorés.
pane-scrollbars-position [left | right]
Définit le côté du panneau où afficher les barres de défilement.
pane-status-current-style style
Définit le style de la ligne d’état pour le panneau actuellement actif. Pour savoir comment spécifier le style, consultez la section « STYLES ».
pane-status-style style
Définit le style de la ligne d’état pour un panneau unique. Pour savoir comment spécifier le style, consultez la section « STYLES ».
session-status-current-style style
Définit le style de la ligne d’état pour la session actuellement active. Pour savoir comment spécifier le style, consultez la section « STYLES ».
session-status-style style
Définit le style de la ligne d’état pour une session unique. Pour savoir comment spécifier le style, consultez la section « STYLES ».
tiled-layout-max-columns number
Définit le nombre maximal de colonnes dans la disposition en mosaïque. Une valeur de 0 (par défaut) signifie qu’il n’y a pas de limite. Lorsqu’une limite est définie, les panneaux sont disposés de manière à ne pas dépasser ce nombre de colonnes, les panneaux supplémentaires étant empilés dans des rangées supplémentaires.
window-status-activity-style style
Définit le style de la ligne d’état pour les fenêtres avec une alerte d’activité. Pour savoir comment spécifier le style, consultez la section « STYLES ».
window-status-bell-style style
Définit le style de la ligne d’état pour les fenêtres avec une alerte sonore. Pour savoir comment spécifier le style, consultez la section « STYLES ».
window-status-current-format string
Similaire à window-status-format, mais c’est le format utilisé lorsque la fenêtre est la fenêtre active.
window-status-current-style style
Définit le style de la ligne d’état pour la fenêtre actuellement active. Pour savoir comment spécifier le style, consultez la section « STYLES ».
window-status-format string
Définit le format dans lequel la fenêtre est affichée dans la liste des fenêtres de la ligne d’état. Voir les sections « FORMATS » et « STYLES ».
window-status-last-style style
Définit le style de la ligne d’état pour la dernière fenêtre active. Pour savoir comment spécifier le style, consultez la section « STYLES ».
window-status-separator string
Définit le séparateur utilisé entre les fenêtres dans la ligne d’état. La valeur par défaut est un simple caractère d’espace.
window-status-style style
Définit le style de la ligne d’état pour une seule fenêtre. Pour savoir comment spécifier le style, consultez la section « STYLES ».
window-size largest | smallest | manual | latest
Configure la façon dont tmux détermine la taille de la fenêtre. Si c’est défini sur largest, c’est la taille de la session connectée la plus grande qui est utilisée ; si c’est smallest, c’est la taille de la session connectée la plus petite. Si c’est manual, la taille d’une nouvelle fenêtre est définie à partir de l’option default-size et les fenêtres sont redimensionnées automatiquement. Avec latest, tmux utilise la taille du client qui a eu l’activité la plus récente. Voir également la commande resize-window et l’option aggressive-resize.
wrap-search [on | off]
Si cette option est définie, les recherches s’étendront à la fin du contenu du panneau. La valeur par défaut est on.
Les options de panneau disponibles sont :
allow-passthrough [on | off | all]
Autorise les programmes dans le panneau à contourner tmux à l’aide d’une séquence d’échappement de terminal (\ePtmux;...\e\). Si c’est défini sur on, les séquences de contournement ne seront autorisées que si le panneau est visible. Si c’est défini sur all, elles seront autorisées même si le panneau est invisible.
allow-rename [on | off]
Autorise les programmes dans le panneau à modifier le nom de la fenêtre à l’aide d’une séquence d’échappement de terminal (\ek...\e\).
allow-set-title [on | off]
Autorise les programmes dans le panneau à modifier le titre à l’aide des séquences d’échappement de terminal (\e]2;...\e\ ou \e]0;...\e\).
alternate-screen [on | off]
Cette option configure si les programmes en cours d’exécution dans le panneau peuvent utiliser la fonctionnalité d’écran alternatif du terminal, qui permet les capacités smcup et rmcup de terminfo(5). La fonctionnalité d’écran alternatif préserve le contenu de la fenêtre lorsqu’une application interactive démarre et le restaure à la fin, de sorte que tout affichage visible avant le démarrage de l’application réapparaisse inchangé après sa fin.
cursor-colour colour
Définit la couleur du curseur.
cursor-style style
Définit le style du curseur. Les styles disponibles sont : default, blinking-block, block, blinking-underline, underline, blinking-bar, bar.
pane-colours[] couleur
La palette de couleurs par défaut. Chaque entrée du tableau définit la couleur que tmux utilise lorsque la couleur avec cet index est demandée. L'index peut aller de zéro à 255.
remain-on-exit [on | off | failed]
Un panneau avec ce drapeau défini n'est pas détruit lorsque le programme qui s'y exécute se termine. Si défini sur failed, alors uniquement lorsque le code de sortie du programme n'est pas zéro. Le panneau peut être réactivé avec la commande respawn-pane.
remain-on-exit-format chaîne
Définir le texte affiché en bas des panneaux qui se sont fermés lorsque remain-on-exit est activé.
scroll-on-clear [on | off]
Lorsque l'écran entier est effacé et que cette option est activée, faire défiler le contenu de l'écran dans l'historique avant de l'effacer.
synchronize-panes [on | off]
Dupliquer l'entrée dans tous les autres panneaux de la même fenêtre où cette option est également activée (uniquement pour les panneaux qui ne sont pas en mode).
window-active-style style
Définir le style du panneau lorsqu'il s'agit du panneau actif. Pour savoir comment spécifier un style, voir la section « STYLES ».
window-style style
Définir le style du panneau. Pour savoir comment spécifier un style, voir la section « STYLES ».
HOOKS
tmux permet d'exécuter des commandes à différents moments, appelés hooks. La plupart des commandes tmux ont un hook « after » et il existe un certain nombre de hooks qui ne sont pas associés à des commandes.
Les hooks sont stockés sous forme d'options de tableau. Les membres du tableau sont exécutés dans l'ordre lorsque le hook est déclenché. Comme pour les options, les hooks peuvent être globaux ou appartenir à une session, une fenêtre ou un panneau. Les hooks peuvent être configurés avec les commandes set-hook ou set-option et affichés avec show-hooks ou show-options -H. Les deux commandes suivantes sont équivalentes :
set-hook -g pane-mode-changed[42] 'set -g status-left-style bg=red'
set-option -g pane-mode-changed[42] 'set -g status-left-style bg=red'
Définir un hook sans spécifier d'index de tableau efface le hook et définit le premier membre du tableau.
Un hook « after » d'une commande est exécuté après son achèvement, sauf lorsque la commande est exécutée dans le cadre d'un hook. Ils sont nommés avec un préfixe « after- ». Par exemple, la commande suivante ajoute un hook pour sélectionner la disposition even-vertical après chaque split-window :
set-hook -g after-split-window "selectl even-vertical"
Si une commande échoue, le hook « command-error » sera déclenché. Par exemple, cela pourrait être utilisé pour écrire dans un fichier journal :
set-hook -g command-error "run-shell \"echo 'une commande tmux a échoué' >>/tmp/log\""
Toutes les notifications répertoriées dans la section « CONTROL MODE » sont des hooks (sans aucun argument), à l'exception de %exit. Les hooks supplémentaires suivants sont disponibles :
alert-activity
Exécuter lorsqu'une fenêtre a de l'activité. Voir monitor-activity.
alert-bell
Exécuter lorsqu'une fenêtre a reçu une alerte sonore. Voir monitor-bell.
alert-silence
Exécuter lorsqu'une fenêtre est restée silencieuse. Voir monitor-silence.
client-active
Exécuter lorsqu'un client devient le dernier client actif de sa session.
client-attached
Chaque élément doit être suivi d’un emplacement, par exemple « MouseDown1Status ».
Le jeton spécial « {mouse} » ou « = » peut être utilisé comme fenêtre cible ou panneau cible dans les commandes liées aux raccourcis clavier de la souris. Il se résout à la fenêtre ou au panneau sur lequel l’événement de la souris s’est produit (par exemple, la fenêtre dans la ligne d’état sur laquelle le bouton 1 a été relâché pour un raccourci « MouseUp1Status », ou le panneau sur lequel la molette a été défilée pour un raccourci « WheelDownPane »).
Le drapeau -M de la commande « send-keys » peut être utilisé pour transmettre un événement de souris à un panneau.
Les raccourcis clavier par défaut permettent d’utiliser la souris pour sélectionner et redimensionner les panneaux, pour copier du texte et pour changer de fenêtre en utilisant la ligne d’état. Ceux-ci entrent en vigueur si l’option « mouse » est activée.
FORMATS
Certaines commandes acceptent le drapeau -F avec un argument de format. Il s’agit d’une chaîne qui contrôle le format de sortie de la commande. Les variables de format sont entourées de « #{ » et « } », par exemple « #{session_name} ». Les variables possibles sont répertoriées dans le tableau ci-dessous, ou le nom d’une option tmux peut être utilisé pour la valeur de cette option, ou le nom d’une variable d’environnement. Certaines variables ont un alias plus court, tel que « #S » ; « ## » est remplacé par un seul « # », « #,» par une « , » et « #} » par une « } ».
Les conditionnelles sont disponibles en préfixant avec « ? ». Pour chaque paire de deux arguments, si la variable dans le premier de la paire existe et n’est pas nulle, le deuxième de la paire est choisi, sinon il passe à la suivante. Si aucune condition parmi les arguments appariés ne correspond, la valeur par défaut est choisie. S’il y a un argument final non apparié, c’est la valeur par défaut. Sinon, la valeur par défaut est la chaîne vide. Par exemple, « #{?session_attached,attached,not attached} » inclura la chaîne « attached » si la session est attachée et la chaîne « not attached » si elle ne l’est pas, ou « #{?automatic-rename,yes,no} » inclura « yes » si « automatic-rename » est activé, ou « no » si ce n’est pas le cas. « #{?#{n:window_name},#{window_name} - } » inclura le nom de la fenêtre avec un séparateur tiret s’il y a un nom de fenêtre, ou la chaîne vide si le nom de la fenêtre est vide. « #{?session_format,format1,window_format,format2,format3} » inclura « format1 » pour un format de session, « format2 » pour un format de fenêtre, ou « format3 » pour aucun des deux. Les conditionnelles peuvent être imbriquées arbitrairement. À l’intérieur d’une conditionnelle, « , » et « } » doivent être échappés en « #,» et « #} », à moins qu’ils ne fassent partie d’un remplacement « #{...} ». Par exemple :
#{?pane_in_mode,#[fg=white,bg=red],#[fg=red,bg=white]}#W
Les comparaisons de chaînes peuvent être exprimées en préfixant deux alternatives séparées par une virgule par « == », « != », « < », « > », « <= » ou « >= » et deux-points. Par exemple, « #{==:#{host},myhost} » sera remplacé par « 1 » s’il s’exécute sur « myhost », sinon par « 0 ». « || » et « && » évaluent à vrai si une ou toutes les alternatives séparées par des virgules sont vraies, par exemple « #{||:#{pane_in_mode},#{alternate_on}} ». « ! » évalue à vrai si la valeur est fausse et vice versa, par exemple « #{!:#{pane_in_mode}} ». « !! » convertit une valeur en une forme booléenne canonique, 1 pour vrai et 0 pour faux, par exemple « #{!!:non-empty string} » évalue à 1.
Un « m » spécifie une comparaison de motif glob(7) ou d’expression régulière. Le premier argument est le motif et le second, la chaîne à comparer. Un argument optionnel spécifie des indicateurs : « r » indique que le motif est une expression régulière au lieu du motif glob(7) par défaut, et « i » indique qu’il faut ignorer la casse. Par exemple : « #{m:\*foo\*,#{host}} » ou « #{m/ri:\^A,MYVAR} ». Un « C » effectue une recherche d’un motif glob(7) ou d’une expression régulière dans le contenu du panneau et renvoie zéro si introuvable, ou le numéro de ligne si trouvé. Comme « m », un indicateur « r » signifie rechercher une expression régulière, et « i » ignore la casse. Par exemple : « #{C/r:\^Start} ».
Des opérations numériques peuvent être effectuées en préfixant deux alternatives séparées par une virgule par un « e » et un opérateur. Un indicateur « f » optionnel peut être donné après l’opérateur pour utiliser des nombres à virgule flottante, sinon des entiers sont utilisés. Ceci peut être suivi d’un nombre indiquant le nombre de décimales à utiliser pour le résultat. Les opérateurs disponibles sont : addition « + », soustraction « - », multiplication « \* », division « / », modulo « m » ou « % » (notez que « % » doit être échappé en « %% » dans les formats également étendus par strftime(3)) et les opérateurs de comparaison numérique « == », « != », « < », « <= », « > » et « >= ». Par exemple, « #{e|*|f|4:5.5,3} » multiplie 5,5 par 3 pour un résultat avec quatre décimales, et « #{e|%%:7,3} » renvoie le modulo de 7 et 3. « a » remplace un argument numérique par son équivalent ASCII, de sorte que « #{a:98} » donne « b ». « c » remplace une couleur tmux par sa valeur RVB hexadécimale à six chiffres.
Une limite peut être placée sur la longueur de la chaîne résultante en la préfixant par un « = », un nombre et un deux-points. Les nombres positifs comptent à partir du début de la chaîne et les nombres négatifs à partir de la fin, de sorte que « #{=5:pane_title} » inclura au plus les cinq premiers caractères du titre du panneau, ou « #{=-5:pane_title} » les cinq derniers caractères. Un suffixe ou un préfixe peut être donné en tant que deuxième argument : s’il est fourni, il est ajouté ou préfixé à la chaîne si la longueur a été tronquée, par exemple « #{=/5/...:pane_title} » ajoutera « ... » si le titre du panneau a plus de cinq caractères. De même, « p » remplit la chaîne jusqu’à une largeur donnée, par exemple « #{p10:pane_title} » donnera une largeur d’au moins 10 caractères. Une largeur positive remplit à gauche, une largeur négative à droite. « n » s’étend à la longueur de la variable et « w » à sa largeur lorsqu’elle est affichée, par exemple « #{n:window_name} ». « R » répète le premier argument un certain nombre de fois donné par le second argument, de sorte que « #{R:a,3} » donnera « aaa ».
Préfixer une variable temporelle avec « t: » la convertira en une chaîne de caractères, ainsi si « #{window_activity} » donne « 1445765102 », « #{t:window_activity} » donne « Sun Oct 25 09:25:02 2015 ». L’ajout de « p » (``t/p``) utilisera un format de temps plus court mais moins précis pour les temps passés. Un format personnalisé peut être donné en utilisant un suffixe « f » (notez que « % » doit être échappé en « %% » si le format est transmis séparément à strftime(3), par exemple dans l’option status-left) : « #{t/f/%%H#:%%M:window_activity} », voir strftime(3).
Les préfixes « b: » et « d: » sont basename(3) et dirname(3) de la variable, respectivement. « q: » échappera les caractères spéciaux sh(1) ou, avec un suffixe « h », échappera les caractères de hachage (de sorte que « # » devienne « ## »). « E: » développera le format deux fois, par exemple « #{E:status-left} » est le résultat du développement du contenu de l’option status-left plutôt que de l’option elle-même. « T: » est similaire à « E: » mais développe également les spécificateurs strftime(3). « S: », « W: », « P: » ou « L: » parcourront chaque session, fenêtre, panneau ou client et inséreront le format une fois pour chacun. « L: », « S: » et « W: » peuvent prendre un argument de tri optionnel « /i », « /n », « /t » pour trier par index, nom ou heure de dernière activité ; de plus, « /r » pour trier dans l’ordre inverse. « /r » peut également être utilisé avec « P: » pour inverser l’ordre de tri par index de panneau. Par exemple, « S/nr: » pour trier les sessions par nom dans l’ordre inverse. Pour chacun, deux formats séparés par une virgule peuvent être donnés : le second est utilisé pour la fenêtre actuelle, le panneau actif ou la session active. Par exemple, pour obtenir une liste de fenêtres formatée comme la ligne d’état :
#{W:#{E:window-status-format} ,#{E:window-status-current-format} }
« N: » vérifie si un nom de fenêtre (sans suffixe ou avec le suffixe « w ») ou un nom de session (avec le suffixe « s ») existe, par exemple « N/w:foo » est remplacé par 1 si une fenêtre nommée « foo » existe.
Un préfixe de la forme « s/foo/bar/: » remplacera « foo » par « bar » partout. Le premier argument peut être une expression régulière étendue et un argument final peut être « i » pour ignorer la casse, par exemple « s/a(.)/\1x/i: » transformerait « abABab » en « bxBxbx ». Un autre caractère délimiteur peut également être utilisé, afin d’éviter les collisions avec les barres obliques littérales dans le motif. Par exemple, « s|foo/|bar/|: » remplacera « foo/ » par « bar/ » partout.
Plusieurs modificateurs peuvent être séparés par un point-virgule (;), comme dans « #{T;=10:status-left} », ce qui limite la chaîne résultante étendue par strftime(3) à un maximum de 10 caractères.
De plus, la dernière ligne de la sortie d’une commande shell peut être insérée à l’aide de « #() ». Par exemple, « #(uptime) » insérera le temps d’activité du système. Lors de la construction de formats, tmux n’attend pas la fin des commandes « #() »; au lieu de cela, le résultat précédent de l’exécution de la même commande est utilisé, ou un espace réservé si la commande n’a pas encore été exécutée. Si la commande n’est pas terminée, la dernière ligne de la sortie sera utilisée, mais la ligne d’état ne sera pas mise à jour plus d’une fois par seconde. Les commandes sont exécutées à l’aide de /bin/sh et avec l’environnement global tmux défini (voir la section « ENVIRONNEMENT GLOBAL ET DE SESSION »).
Un « l » spécifie qu’une chaîne doit être interprétée littéralement et non étendue. Par exemple, « \#{l:#{?pane_in_mode,yes,no}} » sera remplacé par « \#{?pane_in_mode,yes,no} ».
Les variables suivantes sont disponibles, le cas échéant :
Nom de la variable Alias Remplacée par
active_window_index Indice de la fenêtre active dans la session
alternate_on 1 si le panneau est en mode écran alternatif
alternate_saved_x X du curseur enregistré dans l’écran alternatif
alternate_saved_y Y du curseur enregistré dans l’écran alternatif
buffer_created Heure de création du tampon
buffer_full Contenu complet du tampon
buffer_name Nom du tampon
buffer_sample Échantillon du début du tampon
buffer_size Taille du tampon spécifié en octets
client_activity Temps de la dernière activité du client
client_cell_height Hauteur de chaque cellule client en pixels
client_cell_width Largeur de chaque cellule client en pixels
client_control_mode 1 si le client est en mode de contrôle
client_created Heure de création du client
client_discarded Octets supprimés lorsque le client est en arrière-plan
client_flags Liste des indicateurs du client
session_alerts Liste des index de fenêtre avec des alertes
session_attached Nombre de clients attachés à la session
session_attached_list Liste des clients attachés à la session
session_bell_flag 1 si une fenêtre de la session a une alerte sonore
session_created Heure de création de la session
session_format 1 si le format est pour une session
session_group Nom du groupe de session
session_group_attached Nombre de clients dont les sessions du groupe sont attachées
session_group_attached_list Liste des clients dont les sessions du groupe sont attachées
session_group_list Liste des sessions du groupe
session_group_many_attached 1 si plusieurs clients sont attachés aux sessions du groupe
session_group_size Taille du groupe de session
session_grouped 1 si la session est dans un groupe
session_id ID de session unique
session_index Index de la session
session_last_attached Dernière heure d’attachement de la session
session_many_attached 1 si plusieurs clients sont attachés
session_marked 1 si cette session contient le panneau marqué
session_name #S Nom de la session
session_path Répertoire de travail de la session
session_silence_flag 1 si une fenêtre de la session a une alerte de silence
session_stack Index des fenêtres dans l’ordre le plus récent
session_windows Nombre de fenêtres dans la session
socket_path Chemin du socket du serveur
sixel_support 1 si le serveur prend en charge SIXEL
start_time Heure de démarrage du serveur
uid ID de l’utilisateur du serveur
user Utilisateur du serveur
version Version du serveur
window_active 1 si la fenêtre est active
window_active_clients Nombre de clients affichant cette fenêtre
window_active_clients_list Liste des clients affichant cette fenêtre
window_active_sessions Nombre de sessions dans lesquelles cette fenêtre est active
window_active_sessions_list Liste des sessions dans lesquelles cette fenêtre est active
window_activity Heure de la dernière activité de la fenêtre
window_activity_flag 1 si la fenêtre a de l’activité
window_bell_flag 1 si la fenêtre a une alerte sonore
window_bigger 1 si la fenêtre est plus grande que le client
window_cell_height Hauteur de chaque cellule en pixels
window_cell_width Largeur de chaque cellule en pixels
window_end_flag 1 si la fenêtre a l’index le plus élevé
window_flags #F Indicateurs de fenêtre avec # échappé en ##
window_format 1 si le format est pour une fenêtre
window_height Hauteur de la fenêtre
window_id ID de fenêtre unique
window_index #I Index de la fenêtre
window_last_flag 1 si la fenêtre est la dernière utilisée
window_layout Description de la disposition de la fenêtre, ignorant les panneaux de fenêtre mis à l’échelle
window_linked 1 si la fenêtre est liée entre les sessions
window_linked_sessions Nombre de sessions auxquelles cette fenêtre est liée
window_linked_sessions_list Liste des sessions auxquelles cette fenêtre est liée
window_marked_flag 1 si la fenêtre contient le panneau marqué
window_name #W Nom de la fenêtre
window_offset_x Décalage X dans la fenêtre si elle est plus grande que le client
window_offset_y Décalage Y dans la fenêtre si elle est plus grande que le client
window_panes Nombre de panneaux dans la fenêtre
window_raw_flags Indicateurs de fenêtre sans rien d’échappé
window_silence_flag 1 si la fenêtre a une alerte de silence
window_stack_index Index dans la pile la plus récente de la session
window_start_flag 1 si la fenêtre a l’index le plus petit
window_visible_layout Description de la disposition de la fenêtre, respectant les panneaux de fenêtre mis à l’échelle
window_width Largeur de la fenêtre
window_zoomed_flag 1 si la fenêtre est agrandie
wrap_flag Indicateur d’enroulement du panneau
STYLES
tmux propose diverses options pour spécifier la couleur et les attributs de différents éléments de l’interface, par exemple `status-style` pour la ligne d’état. De plus, des styles intégrés peuvent être spécifiés dans les options de format, telles que `status-left`, en les encadrant avec « #[ » et « ] ».
Un style peut être le terme unique « default » pour spécifier le style par défaut (qui peut provenir d’une option, par exemple `status-style` dans la ligne d’état) ou une liste séparée par des espaces ou des virgules des éléments suivants :
fg=couleur
Définit la couleur de premier plan. La couleur est l’une des suivantes : noir, rouge, vert, jaune, bleu,
magenta, cyan, blanc ; si pris en charge, les variantes lumineuses brightblack, brightred, … ;
couleur0 à couleur255 de l’ensemble des 256 couleurs ; default pour la couleur par défaut ; terminal
pour la couleur par défaut du terminal ; ou une chaîne RGB hexadécimale telle que « #ffffff ».
bg=couleur
Définit la couleur de fond.
us=couleur
Définit la couleur du soulignement.
none
N’applique aucun attribut (désactive tous les attributs actifs).
acs, bright (ou bold), dim, underscore, blink, reverse, hidden, italics, overline, strikethrough,
double-underscore, curly-underscore, dotted-underscore, dashed-underscore
Définit un attribut. N’importe lequel de ces attributs peut être préfixé par « no » pour le supprimer. « acs » est l’ensemble de caractères alternatifs du terminal.
align=left (ou noalign), align=centre, align=right
Aligne le texte à gauche, au centre ou à droite de l’espace disponible, si possible.
fill=couleur
Remplit l’espace disponible avec une couleur de fond, si possible.
list=on, list=focus, list=left-marker, list=right-marker, nolist
Marque la position des différents composants de la liste dans l’option « status-format » : list=on marque le début de la liste ; list=focus est la partie de la liste qui doit être maintenue au premier plan si la liste entière ne tient pas dans l’espace disponible (généralement la fenêtre actuelle) ; list=left-marker et list=right-marker marquent le texte à utiliser pour indiquer qu’une partie du texte a été supprimée de gauche ou de droite de la liste s’il n’y a pas assez de place.
noattr
Ne copie pas les attributs du style par défaut.
push-default, pop-default
Stocke les couleurs et les attributs actuels comme valeurs par défaut, ou rétablit les valeurs par défaut précédentes. push-default affecte toute utilisation ultérieure de la valeur par défaut du terminal jusqu’à un pop-default. Seule une valeur par défaut peut être stockée (chaque push-default remplace la valeur par défaut enregistrée précédente).
range=left, range=right, range=session|X, range=window|X, range=pane|X, range=user|X, norange
Marque une plage pour les événements de souris dans l’option « status-format ». Lorsqu’un événement de souris se produit dans la plage « range=left » ou « range=right », les liaisons de touches « StatusLeft » et « StatusRight » sont déclenchées.
range=session|X, range=window|X et range=pane|X sont des plages pour une session, une fenêtre ou
un panneau. Elles déclenchent la touche de souris « Status » avec la session, la fenêtre ou le
panneau cible spécifié par l’argument « X ». « X » est un ID de session, un index de fenêtre
dans la session actuelle ou un ID de panneau. Pour ces cas, la variable de format
« mouse_status_range » sera définie sur « session », « window » ou « pane ».
range=user|X est une plage définie par l’utilisateur ; elle déclenche la touche de souris
« Status ». L’argument « X » sera disponible dans la variable de format « mouse_status_range ».
« X » doit avoir une longueur maximale de 15 octets.
set-default
Définit les couleurs et les attributs actuels comme valeurs par défaut, en remplaçant toutes les valeurs par défaut précédentes. La valeur par défaut précédente ne peut pas être restaurée.
Exemples :
fg=yellow bold underscore blink
bg=black,fg=default,noreverse
NOMS ET TITRES
tmux fait la distinction entre les noms et les titres. Les fenêtres et les sessions ont des
noms, qui peuvent être utilisés pour les spécifier dans les cibles et sont affichés dans la
barre d’état et dans diverses listes : le nom est l’identificateur de tmux pour une fenêtre ou
une session. Seuls les panneaux ont des titres. Le titre d’un panneau est généralement défini
par le programme en cours d’exécution dans le panneau à l’aide d’une séquence d’échappement
(comme il le ferait pour définir le titre de la fenêtre xterm(1) dans X(7)). Les fenêtres
elles-mêmes n’ont pas de titres : le titre d’une fenêtre est le titre de son panneau actif. tmux
peut définir le titre du terminal dans lequel le client est exécuté, voir l’option
« set-titles ».
Le nom d’une session est défini avec les commandes new-session et rename-session. Le nom d’une fenêtre est défini avec l’une des commandes suivantes :
Un argument de commande (tel que -n pour new-window ou new-session).
Une séquence d’échappement (si l’option allow-rename est activée) :
$ printf '\033kWINDOW_NAME\033\\'
Renommage automatique, qui définit le nom sur la commande active dans le panneau actif de la fenêtre. Voir l’option automatic-rename.
Lorsqu’un panneau est créé pour la première fois, son titre est le nom d’hôte. Le titre d’un panneau peut être défini via la séquence d’échappement title, par exemple :
$ printf '\033]2;My Title\033\\'
Il peut également être modifié avec la commande select-pane -T.
ENVIRONNEMENT GLOBAL ET DE SESSION
Lorsque le serveur est démarré, tmux copie l’environnement dans l’environnement global ; de plus, chaque session dispose d’un environnement de session. Lorsqu’une fenêtre est créée, les environnements de session et global sont fusionnés. Si une variable existe dans les deux, la valeur de l’environnement de session est utilisée. Le résultat est l’environnement initial transmis au nouveau processus.
L’option de session update-environment peut être utilisée pour mettre à jour l’environnement de session à partir du client lors de la création d’une nouvelle session ou de sa reconnexion. tmux initialise également la variable TMUX avec des informations internes afin de permettre l’exécution de commandes à partir de l’intérieur, et la variable TERM avec le paramètre de terminal correct ‘screen’.
Les variables des environnements de session et global peuvent être marquées comme masquées. Les variables masquées ne sont pas transmises à l’environnement des nouveaux processus et ne peuvent donc être utilisées que par tmux lui-même (par exemple, dans les formats, voir la section « FORMATS »).
Les commandes pour modifier et afficher l’environnement sont :
set-environment [-Fhgru] [-t target-session] variable [value]
(alias : setenv)
Définit ou supprime une variable d’environnement. Si -g est utilisé, la modification est apportée dans l’environnement global ; sinon, elle est appliquée à l’environnement de session de target-session. Si -F est présent, la valeur est développée comme un format. Le drapeau -u supprime une variable. -r indique que la variable doit être supprimée de l’environnement avant de démarrer un nouveau processus. -h marque la variable comme masquée.
show-environment [-hgs] [-t target-session] [variable]
(alias : showenv)
Affiche l’environnement pour target-session ou l’environnement global avec -g. Si la variable est omise, toutes les variables sont affichées. Les variables supprimées de l’environnement sont préfixées par ‘-’. Si -s est utilisé, la sortie est formatée comme un ensemble de commandes Bourne shell. -h affiche les variables masquées (omises par défaut).
BARRE D’ÉTAT
tmux inclut une barre d’état facultative, affichée dans la ligne inférieure de chaque terminal.
Par défaut, la barre d’état est activée et comporte une seule ligne (elle peut être désactivée ou avoir plusieurs lignes à l’aide de l’option de session status). Elle contient, de gauche à droite : le nom de la session actuelle entre crochets ; la liste des fenêtres ; le titre du panneau actif entre guillemets ; et l’heure et la date.
Chaque ligne de la barre d’état est configurée à l’aide de l’option status-format. La valeur par défaut est composée de trois parties : des sections gauche et droite configurables (qui peuvent contenir du contenu dynamique tel que l’heure ou la sortie d’une commande shell, voir les options status-left, status-left-length, status-right et status-right-length ci-dessous), et une liste de fenêtres centrale. Par défaut, la liste des fenêtres affiche l’index, le nom et (le cas échéant) le drapeau des fenêtres présentes dans la session actuelle, dans l’ordre numérique croissant. Elle peut être personnalisée à l’aide des options window-status-format et window-status-current-format. Le drapeau est l’un des symboles suivants ajouté au nom de la fenêtre :
Symbole Signification
* Indique la fenêtre actuelle.
- Marque la dernière fenêtre sélectionnée.
# L’activité de la fenêtre est surveillée et une activité a été détectée.
! Les sonneries de la fenêtre sont surveillées et une sonnerie s’est produite dans la fenêtre.
~ La fenêtre est silencieuse depuis l’intervalle monitor-silence.
M La fenêtre contient le panneau marqué.
Z Le panneau actif de la fenêtre est agrandi.
Le symbole # est lié à l’option de session monitor-activity. Le nom de la fenêtre est affiché en couleurs inversées si une alerte (sonnerie, activité ou silence) est présente.
La couleur et les attributs de la barre d’état peuvent être configurés, soit pour toute la barre d’état à l’aide de l’option de session status-style, soit pour les fenêtres individuelles à l’aide de l’option de fenêtre window-status-style.
La barre d’état est automatiquement actualisée à intervalles réguliers si elle a changé ; l’intervalle peut être contrôlé à l’aide de l’option de session status-interval.
Les commandes relatives à la barre d’état sont les suivantes :
clear-prompt-history [-T prompt-type]
(alias : clearphist)
Efface l’historique des invites de la barre d’état pour le type d’invite prompt-type. Si -T est omis, l’historique est effacé pour tous les types. Voir command-prompt pour les valeurs possibles de prompt-type.
command-prompt [-1bFiklN] [-I inputs] [-p prompts] [-t target-client] [-T prompt-type] [template]
Ouvre la barre d’invite dans un client. Ceci peut être utilisé à l’intérieur de tmux pour exécuter des commandes interactivement.
Si template est spécifié, il est utilisé comme commande. Avec -F, template est développé comme un format.
Si -I est présent, inputs est une liste séparée par des virgules des textes initiaux pour chaque invite. Si -p est donné, prompts est une liste séparée par des virgules des invites qui sont affichées dans l’ordre ; sinon, une seule invite est affichée, construite à partir de template si elle est présente, ou « : » si ce n’est pas le cas. -l désactive la division des entrées et des invites aux virgules et les traite littéralement.
Avant l’exécution de la commande, la première occurrence de la chaîne « %% » et toutes les occurrences de « %1 » sont remplacées par la réponse au premier message, toutes les occurrences de « %2 » sont remplacées par la réponse au deuxième message, et ainsi de suite pour les messages suivants. Jusqu’à neuf réponses de messages peuvent être remplacées (« %1 » à « %9 »). « %%% » est comme « %% », mais tous les guillemets sont échappés.
-1 fait que le message n’accepte qu’une seule pression de touche. Dans ce cas, la saisie résultante est un seul caractère. -k est comme -1, mais la pression de touche est traduite en nom de touche. -N fait que le message n’accepte que les pressions de touches numériques. -i exécute la commande chaque fois que la saisie du message change au lieu d’attendre que l’utilisateur quitte le message.
-T indique à tmux le type de message. Cela affecte les complétions proposées lorsque la touche Tab est enfoncée. Les types disponibles sont : « command », « search », « target » et « window-target ».
Les touches suivantes ont une signification spéciale dans le message, en fonction de la valeur de l’option status-keys :
Fonction vi emacs
Annuler le message q Escape
Supprimer du curseur au début du mot C-w
Supprimer toute la commande d C-u
Supprimer du curseur à la fin D C-k
Exécuter la commande Entrée Entrée
Obtenir la commande suivante de l’historique Flèche bas
Obtenir la commande précédente de l’historique Flèche haut
Insérer le contenu du tampon supérieur p C-y
Rechercher des complétions Tab Tab
Déplacer le curseur vers la gauche h Flèche gauche
Déplacer le curseur vers la droite l Flèche droite
Déplacer le curseur vers la fin $ C-e
Déplacer le curseur vers le mot suivant w M-f
Déplacer le curseur vers le mot précédent b M-b
Déplacer le curseur vers le début 0 C-a
Transposer les caractères C-t
Avec -b, le message est affiché en arrière-plan et le client appelant ne se ferme pas tant qu’il n’est pas fermé.
confirm-before [-by] [-c confirm-key] [-p prompt] [-t target-client] commande
(alias : confirm) Demande une confirmation avant d’exécuter la commande. Si -p est donné, prompt est le message à afficher ; sinon, un message est construit à partir de la commande. Il peut contenir les caractères spéciaux pris en charge par l’option status-left. Avec -b, le message est affiché en arrière-plan et le client appelant ne se ferme pas tant qu’il n’est pas fermé. -y modifie le comportement par défaut (si seule la touche Entrée est enfoncée) du message pour exécuter la commande. -c modifie la touche de confirmation en confirm-key ; la valeur par défaut est « y ».
display-menu [-OM] [-b border-lines] [-c target-client] [-C starting-choice] [-H selected-style]
[-s style] [-S border-style] [-t target-pane] [-T title] [-x position] [-y position] nom
touche commande [nom touche commande ...]
(alias : menu) Affiche un menu dans target-client. target-pane indique la cible pour toutes les commandes exécutées à partir du menu.
Un menu est passé sous forme d’une série d’arguments : d’abord le nom de l’élément de menu, puis le raccourci clavier (ou vide si aucun), et enfin la commande à exécuter lorsque l’élément de menu est choisi. Le nom et la commande sont formatés, voir les sections « FORMATS » et « STYLES ». Si le nom commence par un tiret (-), l’élément est désactivé (affiché en gras) et ne peut pas être choisi. Le nom peut être vide pour une ligne de séparation, auquel cas le raccourci et la commande doivent être omis.
-b définit le type de caractères utilisés pour dessiner les bordures du menu. Voir popup-border-lines pour les valeurs possibles de border-lines.
-H définit le style de l’élément de menu sélectionné (voir « STYLES »).
-s définit le style du menu et -S définit le style de la bordure du menu (voir « STYLES »).
-T est un format pour le titre du menu (voir « FORMATS »).
-C définit l’élément de menu sélectionné par défaut, si le menu n’est pas lié à une liaison de touche de souris.
-x et -y définissent la position du menu. Les deux peuvent être un numéro de ligne ou de colonne, ou l’une des valeurs spéciales suivantes :
Valeur Indicateur Signification C Les deux Le centre du terminal R -x Le côté droit du terminal P Les deux Le coin inférieur gauche du panneau M Les deux La position de la souris W Les deux La position de la fenêtre dans la barre d’état S -y La ligne au-dessus ou en dessous de la barre d’état
Ou un format, qui est développé en incluant les variables supplémentaires suivantes :
Nom de la variable Remplacé par
popup_centre_x Centré dans la zone client
popup_centre_y Centré dans la zone client
popup_height Hauteur du menu ou de la fenêtre contextuelle
popup_mouse_bottom En bas, à la position de la souris
popup_mouse_centre_x Horizontalement centré à la position de la souris
popup_mouse_centre_y Verticalement centré à la position de la souris
popup_mouse_top En haut, à la position de la souris
popup_mouse_x Position X de la souris
popup_mouse_y Position Y de la souris
popup_pane_bottom En bas du panneau
popup_pane_left À gauche du panneau
popup_pane_right À droite du panneau
popup_pane_top En haut du panneau
popup_status_line_y Au-dessus ou en dessous de la barre d’état
popup_width Largeur du menu ou de la fenêtre contextuelle
popup_window_status_line_x À la position de la fenêtre dans la barre d’état
popup_window_status_line_y Dans la barre d’état affichant la fenêtre
Chaque menu est constitué d’éléments suivis d’un raccourci clavier affiché entre crochets. Si le menu est trop grand pour être affiché sur le terminal, il n’est pas affiché. Appuyer sur le raccourci clavier sélectionne l’élément correspondant. Si la souris est activée et que le menu est ouvert à partir d’une liaison de touche de souris, relâcher le bouton de la souris avec un élément sélectionné sélectionne cet élément, et relâcher le bouton de la souris sans élément sélectionné ferme le menu. -O modifie ce comportement de sorte que le menu ne se ferme pas lorsque le bouton de la souris est relâché sans qu’un élément soit sélectionné ; le menu n’est pas fermé et un bouton de la souris doit être cliqué pour sélectionner un élément.
-M indique à tmux que le menu doit gérer les événements de la souris ; par défaut, seuls les menus ouverts à partir de raccourcis clavier de la souris le font.
Les touches suivantes sont disponibles dans les menus :
Touche Fonction Entrée Sélectionner l’élément sélectionné Haut Sélectionner l’élément précédent Bas Sélectionner l’élément suivant q Quitter le menu
display-message [-aCIlNpv] [-c target-client] [-d delay] [-t target-pane] [message]
(alias : display)
Affiche un message. Si -p est spécifié, la sortie est imprimée sur la sortie standard, sinon elle est affichée dans la ligne d’état du client cible pendant un maximum de « delay » millisecondes. Si « delay » n’est pas spécifié, l’option « display-time » est utilisée ; un délai de zéro attend une pression sur une touche. « N » ignore les pressions sur les touches et ferme uniquement après l’expiration du délai. Si -C est spécifié, le panneau continue d’être mis à jour pendant que le message est affiché. Si -l est spécifié, le message est imprimé tel quel. Sinon, le format du message est décrit dans la section « FORMATS » ; les informations sont extraites du panneau cible si -t est spécifié, sinon du panneau actif.
-v affiche une journalisation détaillée lors de l’analyse du format et -a répertorie les variables de format et leurs valeurs.
-I transmet toutes les entrées lues à partir de l’entrée standard au panneau vide spécifié par « target-pane ».
display-popup [-BCEkN] [-b border-lines] [-c target-client] [-d start-directory] [-e environment]
[-h height] [-s style] [-S border-style] [-t target-pane] [-T title] [-w width] [-x
position] [-y position] [shell-command [argument ...]]
(alias : popup)
Affiche une fenêtre contextuelle exécutant la commande shell (ou la commande par défaut lorsqu’elle est omise) sur le client cible. Une fenêtre contextuelle est une boîte rectangulaire dessinée au-dessus de n’importe quel panneau. Les panneaux ne sont pas mis à jour pendant qu’une fenêtre contextuelle est présente. Si la commande est exécutée dans une fenêtre contextuelle existante, cette fenêtre contextuelle est modifiée. Seules les options -b, -B, -C, -E, -EE, -K, -N, -s et -S sont acceptées dans ce cas ; toutes les autres sont ignorées.
-E ferme automatiquement la fenêtre contextuelle lorsque la commande shell se termine. Deux -E ferment la fenêtre contextuelle uniquement si la commande shell s’est terminée avec succès. -k autorise n’importe quelle touche à fermer la fenêtre contextuelle au lieu d’utiliser uniquement « Échap » ou « Ctrl+c ».
-x et -y indiquent la position de la fenêtre contextuelle, ils ont la même signification que pour la commande « display-menu ». -w et -h indiquent la largeur et la hauteur, qui peuvent toutes les deux être un pourcentage (suivi de « % »). Si elles sont omises, la moitié de la taille du terminal est utilisée.
-B n’entoure pas la fenêtre contextuelle avec une bordure.
-b définit le type de caractères utilisés pour dessiner les bordures de la fenêtre contextuelle. Lorsque -B est spécifié, l’option -b est ignorée. Voir « popup-border-lines » pour les valeurs possibles de « border-lines ».
-s définit le style de la fenêtre contextuelle et -S définit le style de la bordure de la fenêtre contextuelle (voir « STYLES »).
-e prend la forme « VARIABLE=valeur » et définit une variable d’environnement pour la fenêtre contextuelle ; elle peut être spécifiée plusieurs fois.
-T est un format pour le titre de la fenêtre contextuelle (voir « FORMATS »).
L’indicateur -C ferme toutes les fenêtres contextuelles du client.
-N désactive toutes les options -E, -EE ou -k spécifiées précédemment.
show-prompt-history [-T prompt-type]
(alias : showphist)
Affiche l’historique des invites de type prompt-type. Si -T est omis, affiche l’historique de tous les types. Voir la commande command-prompt pour les valeurs possibles de prompt-type.
TAMPOONS
tmux maintient un ensemble de tampons nommés. Chaque tampon peut être nommé explicitement ou automatiquement. Les tampons nommés explicitement sont nommés lors de leur création avec les commandes set-buffer ou load-buffer, ou en renommant un tampon nommé automatiquement avec set-buffer -n. Les tampons nommés automatiquement reçoivent un nom tel que « buffer0001 », « buffer0002 », etc. Lorsque la limite de tampon (buffer-limit) est atteinte, le tampon automatiquement nommé le plus ancien est supprimé. Les tampons nommés explicitement ne sont pas soumis à la limite de tampon et peuvent être supprimés avec la commande delete-buffer.
Les tampons peuvent être ajoutés à l’aide du mode copie ou des commandes set-buffer et load-buffer, et collés dans une fenêtre à l’aide de la commande paste-buffer. Si une commande de tampon est utilisée et qu’aucun tampon n’est spécifié, le tampon automatiquement nommé le plus récemment ajouté est supposé.
Un tampon d’historique configurable est également maintenu pour chaque fenêtre. Par défaut, jusqu’à 2 000 lignes sont conservées ; cela peut être modifié avec l’option history-limit (voir la commande set-option ci-dessus).
Les commandes de tampon sont les suivantes :
choose-buffer [-NryZ] [-F format] [-f filter] [-K key-format] [-O sort-order] [-t target-pane] [template]
Place un panneau en mode tampon, où un tampon peut être choisi de manière interactive dans une liste.
Chaque tampon est affiché sur une ligne. Une touche de raccourci est affichée à gauche, permettant une sélection immédiate, ou la liste peut être parcourue et un élément choisi ou manipulé à l’aide des touches ci-dessous. -Z agrandit le panneau. -y désactive toutes les invites de confirmation. Les touches suivantes peuvent être utilisées en mode tampon :
Touche Fonction
Entrée Coller le tampon sélectionné
Haut Sélectionner le tampon précédent
Bas Sélectionner le tampon suivant
C-s Rechercher par nom ou par contenu
n Répéter la dernière recherche vers l’avant
N Répéter la dernière recherche vers l’arrière
t Basculer si le tampon est marqué
T Désélectionner tous les tampons
C-t Sélectionner tous les tampons
p Coller le tampon sélectionné
P Coller les tampons marqués
d Supprimer le tampon sélectionné
D Supprimer les tampons marqués
e Ouvrir le tampon dans un éditeur
f Entrer un format pour filtrer les éléments
O Modifier le champ de tri
r Inverser l’ordre de tri
v Basculer l’aperçu
q Quitter le mode
Après qu’un tampon est choisi, « %% » est remplacé par le nom du tampon dans le modèle et le résultat est exécuté en tant que commande. Si aucun modèle n’est fourni, « paste-buffer -p -b ‘%%’ » est utilisé.
-O spécifie le champ de tri initial : « time » (création), « name » ou « size ». -r inverse l’ordre de tri. -f spécifie un filtre initial : le filtre est un format ; s’il renvoie zéro, l’élément de la liste n’est pas affiché, sinon il est affiché. Si un filtre entraînerait une liste vide, il est ignoré. -F spécifie le format de chaque élément de la liste et -K un format pour chaque touche de raccourci ; les deux sont évalués une fois pour chaque ligne. -N démarre sans l’aperçu. Cette commande ne fonctionne que si au moins un client est connecté.
clear-history [-H] [-t target-pane]
(alias : clearhist)
Supprime et libère l’historique du panneau spécifié. L’option -H supprime également tous les hyperliens.
delete-buffer [-b buffer-name]
(alias : deleteb)
Supprime le tampon nommé buffer-name, ou le tampon nommé automatiquement le plus récemment ajouté s’il n’est pas spécifié.
list-buffers [-F format] [-f filter]
(alias : lsb)
Affiche la liste des tampons globaux. L’option -F spécifie le format de chaque ligne et l’option -f un filtre. Seuls les tampons pour lesquels le filtre est vrai sont affichés. Voir la section « FORMATS ».
load-buffer [-w] [-b buffer-name] [-t target-client] path
(alias : loadb)
Charge le contenu du tampon spécifié à partir du chemin d’accès. Si l’option -w est donnée, le tampon est également envoyé au presse-papiers pour target-client à l’aide de la séquence d’échappement xterm(1), si possible. Si le chemin d’accès est « - », le contenu est lu à partir de l’entrée standard.
paste-buffer [-dpr] [-b buffer-name] [-s separator] [-t target-pane]
(alias : pasteb)
Insère le contenu d’un tampon dans le panneau spécifié. Si aucun panneau n’est spécifié, l’opération est effectuée dans le panneau actuel. Avec l’option -d, le tampon est également supprimé. Lors de l’affichage, tous les caractères de saut de ligne (LF) dans le tampon sont remplacés par un séparateur, qui est par défaut un retour chariot (CR). Un séparateur personnalisé peut être spécifié à l’aide de l’option -s. L’option -r signifie qu’aucun remplacement n’est effectué (équivalent à un séparateur LF). Si l’option -p est spécifiée, des codes de contrôle de parenthèse sont insérés autour du tampon si l’application a demandé le mode de collage entre parenthèses.
save-buffer [-a] [-b buffer-name] path
(alias : saveb)
Enregistre le contenu du tampon spécifié dans le fichier spécifié. L’option -a ajoute du contenu plutôt que de remplacer le fichier. Si le chemin d’accès est « - », le contenu est écrit dans la sortie standard.
set-buffer [-aw] [-b buffer-name] [-t target-client] [-n new-buffer-name] data
(alias : setb)
Définit le contenu du tampon spécifié sur les données spécifiées. Si l’option -w est donnée, le tampon est également envoyé au presse-papiers pour target-client à l’aide de la séquence d’échappement xterm(1), si possible. L’option -a ajoute du contenu plutôt que de remplacer le tampon. L’option -n renomme le tampon avec le nom new-buffer-name.
show-buffer [-b buffer-name]
(alias : showb)
Affiche le contenu du tampon spécifié.
COMMANDES DIVERSES
Les commandes diverses sont les suivantes :
clock-mode [-t target-pane]
Affiche une grande horloge.
if-shell [-bF] [-t target-pane] shell-command command [command]
(alias : if)
Exécute la première commande si shell-command (exécutée avec /bin/sh) renvoie un code de succès, ou la deuxième commande dans le cas contraire. Avant d’être exécutée, shell-command est développée en utilisant les règles spécifiées dans la section « FORMATS », y compris celles qui sont pertinentes pour target-pane. Avec l’option -b, shell-command est exécutée en arrière-plan.
Si -F est spécifié, la commande shell n'est pas exécutée, mais elle est considérée comme réussie si elle n'est ni vide ni nulle (après l'expansion des formats).
lock-server
(alias : lock)
Verrouille chaque client individuellement en exécutant la commande spécifiée par l'option lock-command.
run-shell [-bCE] [-c start-directory] [-d delay] [-t target-pane] [shell-command]
(alias : run)
Exécute shell-command en utilisant /bin/sh ou (avec -C) une commande tmux en arrière-plan sans créer de fenêtre. Avant d'être exécutée, shell-command est développée en utilisant les règles spécifiées dans la section « FORMATS ». Avec -b, la commande est exécutée en arrière-plan. -d attend pendant delay secondes avant de démarrer la commande. -E redirige le stderr de la commande vers stdout au lieu de l'ignorer. Si -c est spécifié, le répertoire de travail actuel est défini sur start-directory. Si -C n'est pas spécifié, toute sortie vers stdout est affichée en mode vue (dans le volet spécifié par -t ou le volet actuel si omis) une fois la commande terminée. Si la commande échoue, le code de retour est également affiché.
wait-for [-L | -S | -U] channel
(alias : wait)
Lorsqu'elle est utilisée sans options, empêche le client de se terminer jusqu'à ce qu'il soit réveillé à l'aide de wait-for -S avec le même canal. Lorsqu'on utilise -L, le canal est verrouillé et tous les clients qui tentent de verrouiller le même canal sont mis en attente jusqu'à ce que le canal soit déverrouillé avec wait-for -U.
MESSAGES DE SORTIE
Lorsqu'un client tmux se détache, il affiche un message. Il peut s'agir de l'un des suivants :
detached (from session ...)
Le client s'est détaché normalement.
detached and SIGHUP
Le client s'est détaché et son processus parent a envoyé le signal SIGHUP (par exemple avec detach-client -P).
lost tty
Le tty(4) ou pty(4) du client a été détruit de manière inattendue.
terminated
Le client a été tué avec SIGTERM.
too far behind
Le client est en mode contrôle et n'a pas pu suivre le rythme des données provenant de tmux.
exited
Le serveur s'est terminé lorsqu'il n'y avait plus de sessions.
server exited
Le serveur s'est terminé lorsqu'il a reçu SIGTERM.
server exited unexpectedly
Le serveur s'est arrêté ou s'est terminé sans indiquer la raison au client.
EXTENSIONS TERMINFO
tmux prend en charge certaines extensions non officielles de terminfo(5). Il n'est généralement pas nécessaire de les définir manuellement, mais plutôt d'utiliser l'option terminal-features.
AX
Une extension existante qui indique à tmux que le terminal prend en charge les couleurs par défaut.
Bidi
Indique à tmux que le terminal prend en charge les extensions de texte bidirectionnel VTE.
Cs, Cr
Définit la couleur du curseur. Le premier prend un seul argument de chaîne et est utilisé pour définir la couleur ; le second ne prend aucun argument et restaure la couleur par défaut du curseur. Si c'est le cas, une séquence comme celle-ci peut être utilisée pour modifier la couleur du curseur depuis l'intérieur de tmux :
$ printf '\033]12;red\033\\'
La couleur est une couleur X(7), voir XParseColor(3).
Cmg, Clmg, Dsmg, Enmg
Définit, efface, désactive ou active les marges DECSLRM. Elles sont définies automatiquement si le terminal indique qu'il est compatible VT420.
Dsbp, Enbp
Désactive et active le collage entre parenthèses. Ceux-ci sont définis automatiquement si la capacité XT est présente.
Dseks, Eneks
Désactive et active les touches étendues.
Dsfcs, Enfcs
Désactive et active le signalement du focus. Ceux-ci sont définis automatiquement si la capacité XT est présente.
Hls
Définit ou efface une annotation de lien hypertexte.
Nobr
Indique à tmux que le terminal n'utilise pas les couleurs vives pour l'affichage en gras.
Rect
Indique à tmux que le terminal prend en charge les opérations de rectangle.
Smol
Active l'attribut de soulignement.
Smulx
Définit un soulignement stylisé. Le paramètre unique est l'un des suivants : 0 pour aucun soulignement, 1 pour un soulignement normal, 2 pour un double soulignement, 3 pour un soulignement ondulé, 4 pour un soulignement pointillé et 5 pour un soulignement en pointillés.
Setulc, Setulc1, ol
Définit la couleur de soulignement ou la réinitialise à la valeur par défaut. Setulc est pour les couleurs RVB et Setulc1 pour les couleurs ANSI ou 256. L'argument Setulc est (rouge * 65536) + (vert * 256) + bleu, où chacun est compris entre 0 et 255.
Ss, Se
Définit ou réinitialise le style du curseur. S'il est défini, une séquence telle que celle-ci peut être utilisée pour modifier le curseur en soulignement :
$ printf '\033[4 q'
Si Se n'est pas défini, Ss avec l'argument 0 sera utilisé pour réinitialiser le style du curseur à la place.
Swd
Définit la séquence d'ouverture de la notification du répertoire de travail. La séquence se termine à l'aide de la capacité fsl standard.
Sxl
Indique que le terminal prend en charge SIXEL.
Sync
Démarre (le paramètre est 1) ou termine (le paramètre est 2) une mise à jour synchronisée.
Tc
Indique que le terminal prend en charge la séquence d'échappement RVB « couleur directe » (par exemple, \e[38 ;2 ;255 ;255 ;255m).
Si pris en charge, cela est utilisé pour la séquence d'échappement d'initialisation des couleurs (qui peut être activée en ajoutant les capacités « initc » et « ccc » à l'entrée terminfo(5) de tmux).
Cela équivaut à la capacité terminfo(5) RVB.
Ms
Stocke le tampon actuel dans la sélection (presse-papiers) du terminal hôte. Voir l'option set-clipboard ci-dessus et la page de manuel xterm(1).
XT Il s'agit d'une capacité d'extension existante que tmux utilise pour indiquer que le terminal prend en charge les séquences de définition de titre xterm(1) et pour définir automatiquement certaines des capacités ci-dessus.
MODE DE CONTRÔLE
tmux offre une interface textuelle appelée mode de contrôle. Cela permet aux applications de communiquer avec tmux à l'aide d'un protocole textuel simple.
En mode de contrôle, un client envoie des commandes tmux ou des séquences de commandes terminées par des sauts de ligne sur l'entrée standard. Chaque commande produira un bloc de sortie sur la sortie standard. Un bloc de sortie se compose d'une ligne %begin suivie de la sortie (qui peut être vide). Le bloc de sortie se termine par %end ou %error. %begin et le %end ou %error correspondant ont trois arguments : un entier temps (en secondes depuis l'époque), le numéro de la commande et les indicateurs (qui ne sont pas utilisés pour le moment). Par exemple :
%begin 1363006971 2 1
0 ksh* (1 volet) [80x24] [mise en page b25f,80x24,0,0,2] @2 (actif)
%end 1363006971 2 1
La commande refresh-client -C peut être utilisée pour définir la taille d’un client en mode contrôle.
En mode contrôle, tmux affiche des notifications. Une notification ne se produit jamais à l’intérieur d’un bloc de sortie.
Les notifications suivantes sont définies :
%client-detached client
Le client s’est déconnecté.
%client-session-changed client session-id name
Le client est maintenant connecté à la session dont l’ID est session-id, qui est nommée name.
%config-error error
Une erreur s’est produite dans un fichier de configuration.
%continue pane-id
Le volet a repris après avoir été mis en pause (si le drapeau pause-after est défini, voir refresh-client -A).
%exit [raison]
Le client tmux se ferme immédiatement, soit parce qu’il n’est connecté à aucune session, soit parce qu’une erreur s’est produite. Si elle est présente, raison décrit pourquoi le client s’est fermé.
%extended-output pane-id age ... : value
Nouvelle forme de %output envoyée lorsque le drapeau pause-after est défini. age est le temps en millisecondes pendant lequel tmux a mis en mémoire tampon la sortie avant de l’envoyer. Tous les arguments suivants jusqu’à un seul « : » sont réservés à une utilisation ultérieure et doivent être ignorés.
%layout-change window-id window-layout window-visible-layout window-flags
La mise en page d’une fenêtre avec l’ID window-id a changé. La nouvelle mise en page est window-layout. La mise en page visible de la fenêtre est window-visible-layout et les drapeaux de la fenêtre sont window-flags.
%message message
Un message envoyé avec la commande display-message.
%output pane-id value
Un volet de fenêtre a produit une sortie. value échappe les caractères non imprimables et les barres obliques inverses en octal \xxx.
%pane-mode-changed pane-id
Le volet avec l’ID pane-id a changé de mode.
%paste-buffer-changed name
Le nom du tampon de presse-papiers a été modifié.
%paste-buffer-deleted name
Le nom du tampon de presse-papiers a été supprimé.
%pause pane-id
Le volet a été mis en pause (si le drapeau pause-after est défini).
%session-changed session-id name
Le client est maintenant connecté à la session dont l’ID est session-id, qui est nommée name.
%session-renamed name
La session actuelle a été renommée en name.
%session-window-changed session-id window-id
La session avec l’ID session-id a modifié sa fenêtre active en la fenêtre avec l’ID window-id.
%sessions-changed
Une session a été créée ou détruite.
%subscription-changed name session-id window-id window-index pane-id ... : value
La valeur du format associé à l’abonnement name a changé en value. Voir refresh-client -B. Tous les arguments après pane-id jusqu’à un seul « : » sont réservés à une utilisation ultérieure et doivent être ignorés.
%unlinked-window-add window-id
La fenêtre avec l’ID window-id a été créée mais n’est pas liée à la session actuelle.
%unlinked-window-close window-id
La fenêtre avec l’ID window-id, qui n’est pas liée à la session actuelle, a été fermée.
%unlinked-window-renamed window-id
La fenêtre avec l'ID window-id, qui n'est pas liée à la session actuelle, a été renommée.
%window-add window-id
La fenêtre avec l'ID window-id a été liée à la session actuelle.
%window-close window-id
La fenêtre avec l'ID window-id a été fermée.
%window-pane-changed window-id pane-id
Le panneau actif de la fenêtre avec l'ID window-id a été modifié pour le panneau avec l'ID pane-id.
%window-renamed window-id name
La fenêtre avec l'ID window-id a été renommée en name.
ENVIRONNEMENT
Lorsque tmux est démarré, il examine les variables d'environnement suivantes :
EDITOR Si la commande spécifiée dans cette variable contient la chaîne « vi » et que VISUAL n'est pas définie,
utilisez les liaisons de touches de type vi. Remplacé par les options mode-keys et status-keys.
HOME Le répertoire personnel de l'utilisateur. S'il n'est pas défini, la base de données passwd(5) est consultée.
LC_CTYPE Le paramètre régional d'encodage de caractères(1). Il est utilisé à deux fins distinctes. Pour la sortie vers
le terminal, UTF-8 est utilisé si l'option -u est spécifiée ou si LC_CTYPE contient « UTF-8 »
ou « UTF8 ». Sinon, seuls les caractères ASCII sont écrits et les caractères non-ASCII sont
remplacés par des tirets bas (« _ »). Pour l'entrée, tmux s'exécute toujours avec un paramètre régional UTF-8. Si
en_US.UTF-8 est fourni par le système d'exploitation, il est utilisé et LC_CTYPE est ignoré pour
l'entrée. Sinon, LC_CTYPE indique à tmux quel est le nom du paramètre régional UTF-8 sur le système actuel. Si le paramètre régional spécifié par LC_CTYPE n'est pas disponible ou n'est pas un paramètre régional UTF-8,
tmux quitte avec un message d'erreur.
LC_TIME Le paramètre régional de formatage de la date et de l'heure(1). Il est utilisé pour les spécificateurs de format strftime(3) dépendants du paramètre régional.
PWD Le répertoire de travail actuel à définir dans l'environnement global. Cela peut être utile
s'il contient des liens symboliques. Si la valeur de la variable ne correspond pas au répertoire de travail actuel, la variable est ignorée et le résultat de getcwd(3) est utilisé à la place.
SHELL Le chemin absolu vers le shell par défaut pour les nouvelles fenêtres. Voir l'option default-shell
pour plus de détails.
TMUX_TMPDIR
Le répertoire parent du répertoire contenant les sockets du serveur. Voir l'option -L pour plus de détails.
VISUAL Si la commande spécifiée dans cette variable contient la chaîne « vi », utilisez les liaisons de touches de type vi. Remplacé par les options mode-keys et status-keys.
FICHIERS
~/.tmux.conf
$XDG_CONFIG_HOME/tmux/tmux.conf
~/.config/tmux/tmux.conf
Fichier de configuration par défaut de tmux. /etc/tmux.conf Fichier de configuration système.
EXEMPLES
Pour créer une nouvelle session tmux exécutant vi(1) :
$ tmux new-session vi
La plupart des commandes ont une forme plus courte, appelée alias. Pour new-session, c'est new :
$ tmux new vi
Alternativement, la forme la plus courte et non ambiguë d'une commande est acceptée. S'il existe plusieurs options, elles sont répertoriées :
$ tmux n
commande ambiguë : n, pourrait être : new-session, new-window, next-window
Dans une session active, une nouvelle fenêtre peut être créée en tapant « C-b c » (Ctrl suivi de la touche « b » puis de la touche « c »).
Dans Windows, vous pouvez naviguer avec : ‘C-b 0’ (pour sélectionner la fenêtre 0), ‘C-b 1’ (pour sélectionner la fenêtre 1), et ainsi de suite ; ‘C-b n’ pour sélectionner la fenêtre suivante ; et ‘C-b p’ pour sélectionner la fenêtre précédente.
Une session peut être détachée à l’aide de ‘C-b d’ (ou par un événement externe, tel que la déconnexion de ssh(1)) et être rattacher avec :
$ tmux attach-session
En tapant ‘C-b ?’ vous affichez la liste des raccourcis clavier actuels dans la fenêtre courante ; vous pouvez utiliser les touches haut et bas pour parcourir la liste ou ‘q’ pour quitter.
Les commandes à exécuter au démarrage du serveur tmux peuvent être placées dans le fichier de configuration ~/.tmux.conf. Voici quelques exemples courants :
Modification de la touche de préfixe par défaut :
set-option -g prefix C-a
unbind-key C-b
bind-key C-a send-prefix
Désactivation de la ligne d’état ou modification de sa couleur :
set-option -g status off
set-option -g status-style bg=blue
Définition d’autres options, telles que la commande par défaut ou le verrouillage après 30 minutes d’inactivité :
set-option -g default-command "exec /bin/ksh"
set-option -g lock-after-time 1800
Création de nouveaux raccourcis clavier :
bind-key b set-option status
bind-key / command-prompt "split-window 'exec man %%'"
bind-key S command-prompt "new-window -n %1 'ssh %1'"
VOIR AUSSI
pty(4)
AUTEURS
Nicholas Marriott