[OpenBSD]

[Index de La FAQ] [Section 6 - Administration réseau] [Section 8 - Questions diverses]

7 - Contrôles du clavier et de l'affichage


Table des matières



7.1 - Comment puis-je redéfinir le clavier ? (wscons)

La plupart des plates-formes modernes d'OpenBSD utilisent le pilote console wscons(4).

Avec wscons(4), plusieurs options peuvent être configurées en utilisant l'utilitaire wsconsctl(8). Par exemple, pour changer la configuration des touches du clavier avec wsconsctl(8) vous devez exécuter ceci :

# wsconsctl keyboard.encoding=fr

Dans l'exemple suivant, on redéfinit la touche "Caps Lock" en "Control L" (la touche control de droite):

# wsconsctl keyboard.map+="keysym Caps_Lock = Control_L"

7.2 - OpenBSD dispose-t-il d'un support de la souris en mode console ?

Pour les plates-formes alpha, amd64 et i386, OpenBSD fournit wsmoused(8), un port du service moused(8) de FreeBSD. Il peut être lancé au démarrage en copiant et éditant la ligne appropriée de rc.conf dans rc.conf.local(8).

7.3 - Accéder au tampon de la console (amd64, i386, quelques Alpha)

Sur peu de plates-formes, OpenBSD offre la possibilité de revenir en arrière dans la console. Ceci permet de voir les informations inscrites précédemment sur votre écran. Pour monter et descendre dans le tampon, utilisez simplement les combinaisons de touches [SHIFT]+[PGUP] et [SHIFT]+[PGDN].

La valeur par défaut de pages que vous pouvez consulter en revenant en arrière dans la console est de 8. Ceci est une fonctionnalité du driver vga(4), donc cela ne fonctionnera pas sans carte vga quelle que soit la plate-forme (beaucoup de systèmes Alpha ont une carte vidéo de type TGA).

Par manque d'espace, les noyaux d'installation ne fournissent pas la possibilité de revenir en arrière dans la console. Changer de console effacera le tampon de retour en arrière.

7.4 - Comment puis-je changer de console ? (amd64, i386, Zaurus, quelques Alpha)

Sur amd64, i386 et quelques systèmes Alpha, avec les cartes vga(4), OpenBSD fournit six terminaux virtuels par défaut, allant de /dev/ttyC0 à /dev/ttyC5. ttyC4 est réservée pour l'utilisation de X, laissant donc cinq consoles texte. Vous pouvez passer de l'une à l'autre en utilisant [CTRL]+[ALT]+[F1], [CTRL]+[ALT]+[F2], [CTRL]+[ALT]+[F3], [CTRL]+[ALT]+[F4] et [CTRL]+[ALT]+[F6].

L'environnement X utilise ttyC4, [CTRL]+[ALT]+[F5]. Lorsque vous utilisez X, les combinaisons [CTRL]+[ALT]+[Fn] vous basculerons sur les consoles textes ; [CTRL]+[ALT]+[F5] vous ramènera à l'environnement graphique.

Si vous souhaitez avoir plus de console virtuelles que le nombre par défaut, utilisez la commande wsconscfg(8) pour créer des consoles pour ttyC6, ttyC7 et au delà. Par exemple :

wsconscfg -t 80x25 6
Créera un terminal virtuel pour ttyC6, accessible par [CTRL]+[ALT]+[F7]. N'oubliez pas d'ajouter cette commande à votre fichier rc.local(8) si vous souhaitez cette console supplémentaire au prochain redémarrage de votre ordinateur.

Notez que vous n'obtiendrez pas un invité "login:" sur la nouvelle console virtuelle tant que vous ne l'aurez pas mis à "on" dans /etc/ttys(5), puis au choix redémarré ou envoyé un signal HUP à init(8) par le biais de kill(1).

Sur le Zaurus, deux terminaux virtuels (/dev/ttyC0 and /dev/ttyC1) sont disponibles par défaut. Ils sont accessibles à l'aide des combinaisons de touches [ALT]+[CALENDAR] et [ALT]+[ADDRESS] (La touche [ALT] se situe à gauche de la touche [CTRL] key).

7.5 - Comment puis-je utiliser une résolution console de 80x50 ? (amd64, i386, quelques Alpha)

Les utilisateurs de systèmes i386, amd64 et Alpha (VGA) ont normalement une console de 25 lignes de 80 caractères. Cependant, beaucoup de cartes vidéo VGA sont capables d'afficher une résolution supérieure à 50 lignes de 80 caractères.

Premièrement, une police supportant la résolution désirée doit être chargée en utilisant la commande wsfontload. L'écran standard 80x25 utilise des polices de 8x16 pixels, pour doubler la résolution verticale, nous allons devoir utiliser des polices de 8x8 pixels.

Ensuite, nous allons devoir supprimer et recréer une console virtuelle de la résolution désirée en utilisant la commande wsconscfg.

Ceci peut être fait automatiquement en ajoutant les lignes suivantes à la fin de votre fichier rc.local :

wsfontload -h 8 -e ibm /usr/share/misc/pcvtfonts/vt220l.808
wsconscfg -dF 5
wsconscfg -t 80x50 5
Comme pour toutes les configurations de votre système, il est recommandé de prendre le temps de lire les pages de manuels (man) afin de comprendre ce que font les commandes ci-dessus.

La première commande ci-dessus charge une police 8x8. La seconde supprime la console 5 (qui aurait été accessible via [CTRL]+[ALT]+[F6]). La troisième crée une nouvelle console 5 avec une résolution de 50 lignes de 80 caractères chacune. Si vous procédez de la sorte, vous verrez votre console principale, ainsi que les trois autres consoles par défaut, en mode standard 80x25, mais une nouvelle console 5 en mode 80x50 accessible via [CTRL]+[ALT]+[F6].

Rappelez-vous que [CTRL]+[ALT]+[F1] est la console 0 (ttyC0). Si vous désirez modifier les autres consoles, réalisez simplement les étapes de suppression et d'ajout des consoles pour lesquelles vous désirez une résolution de 80x50.

Vous devriez éviter de modifier la console 4 (ttyC4, [CTRL]+[ALT]+[F5]), qui est utilisée par X en tant que console graphique. Il n'est pas non plus possible de changer la résolution de la première console (exemple ttyC0).

Comme certains ont pu le remarquer, toutes ces commandes peuvent être tapées sur la ligne de commande, en tant que root, ou (mieux), en utilisant sudo(8).

Note : ceci ne fonctionnera pas avec toutes les cartes vidéo. Malheureusement, toutes les cartes vidéo ne supportent pas les polices fournies qui sont nécessaires à wscons pour parvenir à configurer le mode texte 80x50. Dans ces cas-là vous devriez reconsidérer le fait d'utiliser X.

7.6 - Comment puis-je utiliser une console série ?

Il y a plusieurs raisons pour que vous souhaitiez utiliser une console série sur votre système OpenBSD : OpenBSD supporte les consoles séries sur la plupart des plates-formes, cependant certains détails varient considérablement entre plates-formes.

Notez que l'interfaçage série n'est PAS une tâche triviale -- vous serez souvent obligé d'utiliser des câbles peu communs, et les ports ne sont pas standardisés entre machines, dans certains cas, parfois même incompatibles sur une machine. Nous considérons que vous savez comment utiliser le câble adéquat entre votre ordinateur et le matériel faisant office de terminal série. Un tutoriel complet sur l'interfaçage série sortirait du cadre de ce document, cependant, nous vous donnons un petit conseil : ce n'est pas parce que les prises se connectent que cela fonctionnera.

Modification de /etc/ttys

Deux conditions doivent êtres réunies pour obtenir une console série fonctionnelle sur un système OpenBSD. Premièrement, vous devez indiquer à OpenBSD d'utiliser le port série comme console pour les modes "status" et "single user". Cette étape dépend de la plate-forme que vous utilisez. Ensuite, vous devez activer votre port série comme terminal interactif, de façon à ce qu'un utilisateur puisse s'y connecter en mode multi-utilisateurs. Cette partie est relativement similaire sur les différentes plates-formes, et est détaillée ici.

Les sessions de terminaux sont contrôlées par le fichier /etc/ttys. Avant qu'OpenBSD ne vous présente un invité "login:" sur un périphérique, celui-ci doit être activé dans /etc/ttys, après tout, il y a d'autres utilisations possibles que celle d'un terminal pour un port série. Sur les plates-formes qui ont un clavier et un écran attaché comme console, le terminal série est désactivé par défaut. Nous utiliserons la plate-forme i386 comme exemple. Dans ce cas vous devez éditer la ligne suivante :

     tty00   "/usr/libexec/getty std.9600"   unknown off
ainsi (par exemple) :
     tty00   "/usr/libexec/getty std.9600"   vt220   on secure
Ici, tty00 est le port série que nous utilisons comme console. vt220 représente l'entrée termcap(5) équivalente à votre terminal (d'autres options similaires pourraient inclure vt100, xterm, etc.). Le "on" active le getty pour le port série afin que l'invité "login:" soit présentée, le "secure" permet une connexion root (uid 0) sur cette console (ce qui peut être, ou pas, ce que vous souhaitez), et le "9600" est le débit en baud du terminal. Essayez de ne pas augmenter le débit en baud du terminal jusqu'au maximum de ce que votre matériel peut supporter car cela risque de poser plus de problèmes que de bénéfices. La plupart des systèmes ont une vitesse "par défaut" (supportée par défaut par la ROM de démarrage et/ou le chargeur de démarrage, généralement 9600), utilisez celle-ci à moins que vous n'ayez une raison valable de faire autrement.

Notez que vous pouvez utiliser une console série pour l'installation sans devoir réaliser tout cela étant donné que le système est lancé en mode "single user" et n'utilise pas getty pour la connexion.

Sur certaines plates-formes ou configurations, vous devrez démarrer le système en mode "single user" pour faire cette modification si vous n'avez rien d'autre qu'une console série.

amd64 et i386

Pour que la procédure de démarrage utilise le port série comme console, créez ou éditez votre fichier /etc/boot.conf pour y inclure la ligne :
     set tty com0
afin d'utiliser votre premier port série comme console. La bande passante en baud par défaut est 9600bps, ceci peut être changé par une ligne du fichier /etc/boot.conf en utilisant l'option stty. Ce fichier est stocké dans votre média de démarrage, qui peut aussi être votre disquette d'installation, la commande peut être entrée à l'invité boot> depuis le chargeur de démarrage de second stage OpenBSD pour une première utilisation de la commande série.

notes pour amd64 et i386 :

SPARC et UltraSPARC

Ces machines sont construites dans le but d'être totalement configurables par console série. Retirez simplement le clavier de la machine et le système lancera une console série.

Notes SPARC et UltraSPARC

MacPPC

Les machines MacPPC, sont configurées pour utiliser une console série au travers de "OpenFirmware". L'utilisation des commandes
     ok setenv output-device scca
     ok setenv input-device scca
     ok reset-all
 
Vous configurera une console série à 57600bps, 8N1.

Notes MacPPC

Mac68k

La console série est sélectionnée dans le programme Booter, sous le menu "Options", puis "Serial Ports". Cochez le bouton "Serial Console", puis choisissez le port du modem ou de l'imprimante. Vous aurez besoin d'un modem Macintosh ou d'un câble d'imprimante à attacher à un port série Mac. Si vous souhaitez que ces paramètres soient utilisés par défaut, demandez au programme "Booter" de sauvegarder vos options.

Notes Mac68k

7.7 - Comment effacer la console ? (wscons)

Si vous souhaitez effacer votre console après une certaine période d'inactivité sans utiliser X, vous pouvez modifier les variables wscons(4) suivantes : Vous pouvez positionner ces variables en ligne de commande en utilisant l'utilitaire wsconsctl(8) :
     # wsconsctl display.screen_off=60000
     display.screen_off -> 60000
ou les positionner de manière permanente en éditant le fichier /etc/wsconsctl.conf de manière à ce que les paramètres soient repris au prochain redémarrage :
     display.vblank=on               # enable vertical sync blank
     display.screen_off=600000       # set screen blank timeout to 10 minutes
     display.kbdact=on               # Restore screen on keyboard input
     display.outact=off              # Restore screen on display output
Le vidage est activé à partir du moment où display.kbdact ou display.outact sont positionnés à "on".

7.8 - TOUT CE QUE JE TAPE A LA CONNEXION EST EN MAJUSCULES !

En réalité, ceci est une fonctionnalité, non un bogue.

Virtuellement toutes les commandes et les noms d'utilisateurs sont entrés en minuscules. Cependant, quelques très vieux terminaux sont simplement incapables d'afficher des caractères en minuscules, ce qui rend leur utilisation difficile, voire impossible à utiliser avec UNIX. Pour pallier cela, si vous utilisez un nom d'utilisateur entièrement en majuscules, getty(8) assumera que votre terminal ne supporte pas les minuscules, et interprétera simplement tout ce que vous tapez comme des minuscules alors qu'il affichera tout en majuscules. Si votre mot de passe est composé de minuscules et de majuscules, la connexion sera impossible.

L'appui sur CTRL-D à la connexion provoquera l'arrêt de getty(0) et init(8) en relancera un nouveau, qui acceptera correctement les minuscules et les majuscules.

7.9 - Qu'est-ce que tmux ?

Pour ceux qui sont familiers avec le programme "screen", disponible comme paquetage, ou window(1) qui a été dans la base, il est plus simple de répondre en disant que tmux(1) fournit plusieurs fonctions de screen et window, avec beaucoup de fonctionnalités en plus.

Pour ceux qui ne sont pas familier avec ces programmes, tmux est un multiplexeur de terminal. C'est un programme qui permet qu'un nombre de plusieurs processus partagent le même écran pour les entrées et sorties. Dans tmux, cet ensemble de programmes s'appelle une session, dont chaque programme est contenu dans une windows tmux.

En plus de partager le terminal, tmux vous permet de détacher une session et ces fenêtres de l'écran, les laissant continuer à fonctionner en arrière-plan, pour les rattacher plus tard dans le même écran ou dans un autre. Une session peut-être détachée manuellement ou à cause d'un événement inattendu comme une déconnexion réseau, dans tous les cas les programmes survivent et continuent de fonctionner normalement.

tmux possède aussi beaucoup d'autres fonctionnalités comme scinder une fenêtre simple en plusieurs sections (appelés panes), un historique du texte affiché dans chaque fenêtre, copier et coller du texte entre fenêtres, combinaisons de touches configurable et verrouillage du terminal. Jetez un oeil sur la page de man tmux(1) pour plus d'information.

Comment est-ce que j'utilise tmux ?

La première étape est de lancer tmux :

$ tmux

Ceci démarre un nouveau tmux avec une nouvelle session unique (appelée "0") et lui crée un affichage client sur l'écran. L'écran affichera une fenêtre contenant un invité de commande, et vous remarquerez que la dernière ligne est occupée par une ligne d'état. Cela affiche le nom de la session entre crochets à gauche, le nom de la fenêtre (normalement vide pour les shells) et le temps sur la droite, et un résumé de la fenêtre courante ouverte au milieu. Dans notre nouvelle session, les fenêtres courantes ouvertes contiendront une entrée, par exemple :

0:ksh*

Un rappel bref sur les terminaux : sur OpenBSD les applications sont faites pour être indépendantes des capacités du terminal grâce à la variable d'environnement TERM. C'est configuré par le nom d'une entrée dans la base de données terminfo(5) et dit aux programmes que le terminal, par exemple, supporte la couleur, ou possède la possibilité d'insérer des lignes, ou bien d'autres choses. Une chose importante à remarquer est que l'entrée "xterm" dans la base de données n'inclut pas la couleur, donc tmux n'utilise pas la couleur par défaut dans xterm, TERM doit être configuré à "xterm-xfree86" à la place si la couleur est désirée (la resource X "XTerm*termName" doit être configurée dans .Xdefaults pour être utilisée dans tous les xterms). Il est aussi important que le TERM dans les shells démarrés dans tmux soient configurés à "screen" ou les programmes exécutés pour eux ne s'afficheront pas correctement - tmux le configurera lui-même, mais il faut faire attention à ne pas le surcharger dans des fichiers de démarrage shell.

Retournons à la ligne d'état, le numéro "0" est l'index de la fenêtre, "ksh" le nom de la fenêtre, et le "*" que c'est la fenêtre courante qui est affichée au dessus de la ligne d'état. Tous ce que l'on tape est envoyé au shell et toutes sorties affichées. Par exemple, si vous lancez "top" :

$ top

Il fonctionnera normalement, occupant l'espace de l'écran au dessus de la ligne d'état. Vous remarquerez aussi que le nom de la fenêtre dans la ligne d'état a été modifié de "ksh" à "top" - tmux renomme les fenêtres pour refléter le programme qui fonctionne actuellement en elles-mêmes.

Maintenant, disons que vous voulez détacher tmux de l'écran et retourner au shell d'origine d'où vous l'avez lancé. Une session tmux peut être détachée en pressant en premier les touches Ctrl et b ensembles puis la touche d. La combinaison de touches Ctrl-b (raccourcie dans tmux et dans sa page de man à "C-b") est appelée touche de préfixe et est utilisée pour dire à tmux que la prochaine touche pressée est une instruction qui doit générer une action, plutôt que de passer la touche à travers un programme le programme dans la fenêtre.

Après avoir pressé Ctrl-b d et être retourné à l'invité de commande, rattachez la session tmux en utilisant la commande "attach" :

$ tmux attach

La session tmux réapparaîtra, avec la ligne d'état et "top" fonctionnera joyeusement. (Si à la place vous exécutez tmux sans argument, une deuxième sessions sera crée, nommée "1").

Ensuite, créons une deuxième fenêtre. C'est réalisé en utilisant la touche "c" : pressez la touche préfixe, Ctrl-b, puis la touche "c". Une nouvelle fenêtre sera créée et une invite de commande sera encore affichée sur l'écran. La ligne d'état sera mise à jour pour afficher la nouvelle fenêtre :

0:top- 1:ksh*

Le "-" après "top" affiche la fenêtre courante précédente (la dernière fenêtre). En pressant encore Ctrl-b c créera un nouvel invité de commande :

0:top  1:ksh- 2:ksh*

Il y a plusieurs commandes pour se déplacer entre les fenêtres. De la fenêtre 2, vous pouvez vous déplacer vers la fenêtre précédente, numéro 1, en tapant Ctrl-b p. Ctrl-b n déplacera vers la fenêtre suivante : dans ce cas, il n'y a pas de fenêtre 3 donc la fenêtre courante deviendra la fenêtre 0. Vous pouvez aussi taper Ctrl-b w pour obtenir un menu interactif des fenêtres ouvertes, Ctrl-b l pour se déplacer à la dernière fenêtre (celle marquée avec un "-"), ou Ctrl-b 0 pour se déplacer à la fenêtre 0, Ctrl-b 1 à la fenêtre 1 et jusqu'à Ctrl-b 9 pour la fenêtre 9. Donc, pour retourner au "top" de la fenêtre 0, vous pouvez presser Ctrl-b 0 pour aller directement à la fenêtre 0, Ctrl-b p deux fois pour aller à la fenêtre 1, Ctrl-b n pour sauter de la fenêtre 2 à la fenêtre 0, ou presser Ctrl-b w et sélectionner la fenêtre 0 de la liste.

Parfois vous voulez créer une fenêtre exécutant directement un programme, sans passer par l'invité de commande. Cela peut être fait de tmux via l'invité de commande. En pressant la séquence de touches Ctrl-b : la ligne d'état change pour afficher un invité ":" où des commandes peuvent être entrées. Toutes les commandes tmux sont documentées dans la page de man. Dans ce cas, la commande "new-window" est nécessaire. Chaque commande possède un alias plus court qui peut être utilisé à la place de taper le nom complet, pour "new-window" c'est "neww". Donc pour créer une nouvelle fenêtre exécutant tetris(6), tapez :

neww tetris

La nouvelle fenêtre sera fermée quand tetris sera terminé, ou sera forcement tuée en utilisant la combinaison de touches Ctrl-b &<. Cela demandera en premier une confirmation et si elle est donnée, fermera la fenêtre et terminera le programme fonctionnant en elle.

Un autre besoin courant est de renommer une fenêtre. Cela peut être fait avec la combinaison de touches Ctrl-b ,. La ligne d'état sera modifiée pour afficher un invité "(rename-window)" ou l'on fournira le nom de la nouvelle fenêtre. Renommer une fenêtre désactive le renommage automatique pour cette fenêtre, pour réactiver cette fonctionnalité, pressez Ctrl-b : pour obtenir l'invité de commande et entrez ce qui suit (plus d'infos sur ce que cela signifie dans le paragraphe suivant) :

setw -u automatic-rename

Une autre combinaison de touches importante à se souvenir : Ctrl-b ?. Cela affichera la liste de toutes les touches tmux et commandes qu'il exécute. Par exemple, Ctrl-b ? montre que la touche c est reliée à la commande "new-window" et la touche n à la commande "next-window".

Configurer tmux

Beaucoup d'utilisateurs voudront personnaliser l'aspect et le comportement de tmux. Cela peut être réalisé à travers le fichier de configuration ~/.tmux.conf. Ce fichier est une liste de commandes tmux qui sont exécutées quand tmux est démarré initialement, avant que la première session ne soit créée. Toutes les commandes tmux sont documentées dans la page man, mais quelques exemples courant que vous pourrez utiliser dans votre fichier de configuration sont expliqués ci-dessous.

La plupart des besoins courants sont la configuration des options. Il y a deux types d'options dans tmux : options de session et les options de fenêtre. Les options de session contrôlent la façon dont sont gérées les options de session et fenêtre d'une fenêtre individuelle. Pour l'ensemble il y a un ensemble d'options globales. Quand tmux vient à décider de la valeur d'une option pour une session ou fenêtre particulière, il regarde en premier les options locales de cette fenêtre; si l'option n'est pas configurée, la valeur de l'option globale est utilisée.

Les options de session sont configurées avec la commande "set-option" (alias "set") et le options de fenêtre avec la commande "set-window-option" (alias "setw"). Pour configurer une option globale, utilisez l'argument "-g", si cela n'est pas précisé l'option est configurée pour la fenêtre ou session courante. Ces commandes acceptent aussi quelques autres arguments, comme "-u" pour désactiver une option locale et permettre à une fenêtre ou session d'hériter à nouveau d'une option globale.

Dans le fichier de configuration, il est usuel de configurer des options globales. Regardez ces exemples pour personnaliser la ligne d'état :

set -g status-bg blue
set -g status-right '#(sysctl vm.loadavg)'
setw -g window-status-current-attr underscore

Mettez ces trois commandes dans .tmux.conf et en redémarrant, tmux change l'arrière-plan de la ligne d'état en bleu, afficher la charge courante sur le coté droit et souligne la fenêtre courante. La ligne d'état peut-être désactivée complétement avec :

set -g status off

Il y a un grand nombre d'autres options; un autre exemple est de changer le style de combinaisons de touche pour ressembler à vi(1) à l'invité de commande et dans la liste des fenêtres et d'autres modes interactifs de tmux :

set -g status-keys vi
setw -g mode-keys vi

Les options courantes et leur valeurs seront affichées avec les commandes "show-options" et "show-window-options". Comme les commandes de configuration elles acceptent "-g" pour afficher les options globales.

Une autre tâche courante du fichier de configuration est d'ajouter ou de modifier des commandes de combinaisons de touches, ce sont les commandes qui sont exécutées après avoir pressé Ctrl-b avec une autre touche. Elles sont ajoutées ou modifiées avec la commande "bind-key" (alias "bind") et supprimées avec la commande "unbind-key" (alias "unbind"). Voici deux exemples de l'utilisation de "bind-key" :

bind C-d detach
bind / neww 'exec top'

La première crée une combinaison pour Ctrl-b Ctrl-d pour détacher tmux, la même que par défaut Ctrl-b d, et la seconde combinaison Ctrl-b / pour créer une nouvelle fenêtre exécutant top.

Plusieurs personnes aiment utiliser un préfixe différent de Ctrl-b. Cela peut être réalisé en utilisant à la fois le "set-option" et les commandes de combinaison de touche pour altérer l'option de préfixe de touche et le changer pour qu'en pressant deux fois le préfixe continue de fournir la même combinaison de touche à travers la fenêtre. Pour changer le préfixe de touche à Ctrl-a :

set -g prefix C-a
unbind C-b
bind C-a send-prefix

La dernière chose utile à faire dans le fichier de configuration est de créer un ensemble de fenêtre initiale quand tmux démarre. C'est un peu plus compliqué que les exemples précédents. Dans tmux, une session ne peut pas avoir aucune fenêtre, et vous ne pouvez pas créer de fenêtre sans session. Donc, pour avoir des fenêtres crées par le fichier de configuration vous devez en premier créer une session qui les contient. Par exemple (remarquez que "new" est un alias for la commande "new-session") :

new -d 'exec top'
neww -d
neww -d

Ces commandes créent une nouvelle session avec "top" s'exécutant dans la première fenêtre, puis crée deux fenêtres additionnelles. L'argument "-d" indique à tmux de ne pas essayer d'attacher la nouvelle session ou de faire des nouvelles fenêtres la fenêtre courante. Avant de mettre ces lignes dans .tmux.conf, il y a un autre problème. Exécuté sans arguments, tmux exécute la commande "new-session", donc quand on lance tmux avec "tmux" du shell, le fichier de configuration indique à tmux de créer une session, et la commande du shell lui dit d'en créer une autre, donc vous avez finalement deux sessions. Pour éviter cela, tmux doit être démarré avec "tmux attach" quand il doit créer une session du fichier de configuration - cela signifie qu'il crée la session de .tmux.conf et l'attache immédiatement sans créer une seconde session.

Utilisation avancée de tmux

Ce paragraphe couvre brièvement certaines des fonctionnalités les plus avancées dans tmux. Consultez la page man pour plus d'information.

Dans tmux vous pouvez copier et coller du texte entre les fenêtres. C'est réalisé en copiant le texte en mode copie puis en le collant avec la commande coller. Pour entrer en mode copie, pressez Ctrl-b [. En mode copie (avec l'option de fenêtre "mode-keys" configurée pour emacs, pour les touches vi consultez la page man) les touches de fléches doivent être utilisées pour positionner le curseur, Ctrl-Space débute la sélection et Ctrl-w copie. Vous pouvez aussi utiliser Page Up, Page Down, Ctrl-a et Ctrl-e pour bouger le curseur. Pressez q ou Escape pour quitter le mode copie. Après cela, Ctrl-b ] copiera le texte copié dans la fenêtre courante comme si vous aviez tapé le texte directement.

tmux est facilement scriptable, et la plupart des commandes qui sont entrées via l'invité de commande ou reliées à une touche peuvent être exécutées du shell. Presque toutes les commandes tmux acceptent un argument optionnel "-t" qui spécifie la session ou la fenêtre ou agir. Par exemple cette commande :

$ tmux kill-window -t0:1
tuera la fenêtre 1 dans la session 0. Et :
$ tmux new-window -tmysession

Crée une nouvelle fenêtre dans la session nommée 'mysession". Plusieurs commandes acceptent d'autres arguments, par exemple la commande "new-window" accepte une option "-n" pour donner le nom de la nouvelle fenêtre, et "new-session" accepte plusieurs arguments pour spécifier les attributs de la fenêtre initiale crée avec la session. Ces arguments peuvent être naturellement utilisés quand une commande est liée à une touche ou exécutée de l'invité de commande bien évidemment.

Une autre fonctionnalité utile est la possibilité de couper une fenêtre unique en plusieurs sections, appelées panes. Vous pouvez découper une fenêtre verticalement (haut en bas) avec la combinaison de touche Ctrl-b ". Un pane peut être redimensionné en haut et bas avec Ctrl-b Alt-Up et Ctrl-b Alt-Down et le pane actif modifié avec Ctrl-b o. En plus, une fenêtre découpée de cette façon peut être modifiée en une parmi plusieurs mises en page fixes, elles défilent avec Ctrl-b Space mais les panes utilisant ces mises en page ne peuvent pas être redimensionnées. En -current, le découpage a été étendu pour supporter le découpage horizontal (Ctrl-b %) et les mises en page fixes modifiées pour être appliquées une fois (avec la même combinaison de touche Ctrl-b Space) mais elles peuvent être librement redimensionnées et modifiées aussi bien verticalement que horizontalement.

[Index de La FAQ] [Section 6 - Administration réseau] [Section 8 - Questions diverses ]


[back] www@openbsd.org
$OpenBSD: faq7.html,v 1.44 2012/10/21 18:30:20 ajacoutot Exp $