Xorg (Français)/Keyboard configuration (Français) - ArchWiki

Jump to content
From ArchWiki
< Xorg (Français)
État de la traduction: Cet article est la version francophone de Xorg/Keyboard configuration. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Related articles

- X keyboard extension
- Linux console (Français)/Keyboard configuration (Français)
- Extra keyboard keys
- Xorg (Français)
- Keyboard shortcuts (Français)

Cet article décrit les bases de la configuration du clavier Xorg. Pour les sujets plus avancés tels que la modification de la disposition du clavier ou les mappages de touches supplémentaires, consultez respectivement X keyboard extension ou Extra keyboard keys.

Le serveur Xorg utilise l'extension X keyboard extension (XKB) pour définir la disposition du clavier. (XKB) pour définir les dispositions de clavier. En option, xmodmap peut être utilisé pour accéder directement à la table de clavier interne, bien que cela ne soit pas recommandé pour les tâches complexes. De plus, localectl de systemd peut être utilisé pour définir la disposition du clavier à la fois pour le serveur Xorg et la console virtuelle.

Note: Les options XKB peuvent être remplacées par les outils fournis par certains environnements de bureau tels que GNOME et KDE.

## Visualisation des paramètres du clavier

Vous pouvez utiliser la commande suivante pour consulter les paramètres actuels de XKB :

    $ setxkbmap -print -verbose 10

    Setting verbose level to 10
    locale is C
    Applied rules from evdev:
    model:      evdev
    layout:     us
    options:    terminate:ctrl_alt_bksp
    Trying to build keymap using the following components:
    keycodes:   evdev+aliases(qwerty)
    types:      complete
    compat:     complete
    symbols:    pc+us+inet(evdev)+terminate(ctrl_alt_bksp)
    geometry:   pc(pc104)
    xkb_keymap {
            xkb_keycodes  { include "evdev+aliases(qwerty)" };
            xkb_types     { include "complete"      };
            xkb_compat    { include "complete"      };
            xkb_symbols   { include "pc+us+inet(evdev)+terminate(ctrl_alt_bksp)"    };
            xkb_geometry  { include "pc(pc104)"     };
    };

### Utilitaires tiers

Il existe quelques utilitaires "non officiels" qui permettent d'imprimer des informations spécifiques sur la disposition de clavier actuellement utilisée.

- xkb-switch-gitAUR :

    $ xkb-switch

    us

- xkblayout-state-gitAUR :

    $ xkblayout-state print "%s"

    de

## Configurer la disposition du clavier

La disposition du clavier dans Xorg peut être définie de plusieurs façons. Voici une explication des options utilisées :

- `XkbModel` sélectionne le modèle de clavier. Cela n'a d'influence que sur les touches supplémentaires que votre clavier peut avoir. Les options de secours les plus sûres sont `pc104` ou `pc105`. Mais par exemple, les ordinateurs portables ont généralement des touches supplémentaires, et parfois vous pouvez les faire fonctionner en définissant simplement un modèle approprié.
- `XkbLayout` sélectionne la disposition du clavier. Plusieurs dispositions peuvent être spécifiées dans une liste séparée par des virgules, par exemple si vous voulez passer rapidement d'une disposition à l'autre.
- `XkbVariant` sélectionne une variante de disposition spécifique disponible pour le `XkbLayout`. Par exemple, la variante par défaut `sk` (slovaque) est `qwertz`, mais vous pouvez spécifier manuellement `qwerty`, etc.
- `XkbOptions` contient quelques options supplémentaires (séparées par des virgules). Utilisées pour spécifier le changement de disposition, le voyant de notification, le mode de composition, etc. Consultez la section #Options XKB fréquemment utilisées pour des exemples.

Note: Vous devez spécifier autant de variantes que le nombre de mises en page spécifiées. Si vous voulez la variante par défaut, spécifiez une chaîne vide comme variante (la virgule doit rester). Par exemple, pour avoir la disposition par défaut `us` comme principale et la variante `dvorak` de la disposition `us` comme secondaire, spécifiez `us,us` comme `XkbLayout` et `,dvorak` comme `XkbVariant`.

Le nom de la disposition est généralement un code de pays à deux lettres. Pour consulter la liste complète des modèles de claviers, des dispositions, des variantes et des options, ainsi qu'une courte description, ouvrez `/usr/share/X11/xkb/rules/base.lst`. Alternativement, vous pouvez utiliser l'une des commandes suivantes pour consulter une liste sans description :

- `localectl list-x11-keymap-models`
- `localectl list-x11-keymap-layouts`
- `localectl list-x11-keymap-variants [layout]`}
- `localectl list-x11-keymap-options`

Les exemples des sous-sections suivantes auront le même effet, ils définiront le modèle `pc104`, `cz` comme disposition principale, `us` comme disposition secondaire, la variante `dvorak` pour la disposition `us` et la combinaison `Win+Space` pour basculer entre les dispositions. Consultez xkeyboard-config(7) pour des informations plus détaillées.

Note: Les utilisateurs de Fcitx/IBus peuvent constater que ces méthodes ne fonctionnent pas, ou seulement pendant un certain temps, car elles tentent de contrôler la disposition du clavier. Les utilisateurs de Fcitx doivent définir la première méthode de saisie comme étant `Keyboard - layout`. Consultez Fcitx#Input methods configuration. Les utilisateurs d'IBus doivent activer l'option "Utiliser la disposition du clavier du système" dans Préférence -> Avancé s'ils utilisent des fichiers de configuration X, ou spécifier manuellement la disposition s'ils utilisent setxkbmap.

### Utilisation de setxkbmap

La commande setxkbmap définit la disposition du clavier pour la session X actuelle uniquement, mais peut être rendue persistante dans [[Xinit (Français)#xinitrc|xinitrc]] ou xprofile. Cela remplace la configuration du système spécifiée à la suite de #Utilisation des fichiers de configuration de X. Cependant, la persistance ne s'applique pas aux claviers tels que les claviers externes, à moins que leur identifiant de périphérique ait été spécifié lors de l'exécution de setxkbmap. Ou qu'ils constituent le périphérique de clavier principal du serveur X.

L'utilisation est la suivante (consultez setxkbmap(1)) :

    $ setxkbmap [-model xkb_model] [-layout xkb_layout] [-variant xkb_variant] [-option xkb_options]

Note: setxkbmap ajoute les options spécifiées dans la ligne de commande à celles qui étaient définies auparavant (telles qu'enregistrées dans les propriétés de la fenêtre racine). Si vous souhaitez remplacer toutes les options spécifiées précédemment, utilisez l'option `-option` avec un argument vide en premier lieu.

Pour modifier uniquement la disposition (`-layout` est l'option par défaut) :

    $ setxkbmap xkb_layout

Pour de multiples personnalisations :

    $ setxkbmap -model pc104 -layout cz,us -variant ,dvorak -option grp:win_space_toggle

### Utilisation des fichiers de configuration de X

Note: `xorg.conf` est analysé par le serveur X au démarrage. Pour appliquer les modifications, redémarrez X.

La syntaxe des fichiers de configuration X est expliquée dans Xorg (Français)#Configuration. Cette méthode crée une configuration à l'échelle du système qui est persistante lors des redémarrages.

Voici un exemple :

    /etc/X11/xorg.conf.d/00-keyboard.conf

    Section "InputClass"
            Identifier "system-keyboard"
            MatchIsKeyboard "on"
            Option "XkbLayout" "cz,us"
            Option "XkbModel" "pc104"
            Option "XkbVariant" ",dvorak"
            Option "XkbOptions" "grp:win_space_toggle"
    EndSection

#### Utilisation de localectl

Pour des raisons de commodité, l'outil localectl peut être utilisé au lieu d'éditer manuellement les fichiers de configuration de X. Il enregistrera la configuration dans `/etc/X11/xorg.conf.d/00-keyboard.conf`, ce fichier ne doit pas être modifié manuellement, car localectl écrasera les changements au prochain démarrage.

L'utilisation est la suivante :

    # localectl [--no-convert] set-x11-keymap layout [model [variant [options]]]]

Pour définir un modèle, une variante ou des options, tous les champs précédents doivent être spécifiés, mais les champs précédents peuvent être ignorés en passant une chaîne vide avec `""`. À moins que l'option `--no-convert` ne soit passée, le clavier spécifié est également converti en clavier de console le plus proche et appliqué à la configuration de la console dans `vconsole.conf`. Consultez localectl(1) pour plus d'informations.

Pour créer un `/etc/X11/xorg.conf.d/00-keyboard.conf` comme celui ci-dessus :

    # localectl --no-convert set-x11-keymap cz,us pc104 ,dvorak grp:win_space_toggle

## Options XKB fréquemment utilisées

### Passage d'une disposition de clavier à une autre

Pour pouvoir facilement changer de disposition de clavier, spécifiez d'abord plusieurs dispositions entre lesquelles vous voulez basculer (la première est celle par défaut). Ensuite, spécifiez une touche (ou une combinaison de touches) qui sera utilisée pour la commutation. Par exemple, pour passer d'une disposition américaine à une disposition suédoise en utilisant la touche `CapsLock`, utilisez `us,se` comme argument de `XkbLayout` et `grp:caps_toggle` comme argument de `XkbOptions`. Le nombre de `XkbLayout`s doit correspondre à celui des `XkbVariant`s - si vous voulez passer uniquement d'une variante à l'autre, dupliquez la disposition en conséquence (par exemple, `de,de`).

Vous pouvez utiliser d'autres combinaisons de touches que `CapsLock`, elles sont listées dans `/usr/share/X11/xkb/rules/base.lst`, commencent par `grp:` et se terminent par `toggle`. Pour obtenir la liste complète des options disponibles, exécutez la commande suivante :

    $ grep "grp :.*toggle" /usr/share/X11/xkb/rules/base.lst

Notez que l'option `grp:alts_toggle` est peu fiable et peu susceptible d'être corrigée ; préférez d'autres combinaisons !

### Terminer Xorg avec Ctrl+Alt+Backspace

Par défaut, la combinaison de touches `Ctrl+Alt+Backspace` est désactivée. Vous pouvez l'activer en passant `terminate:ctrl_alt_bksp` à `XkbOptions`. Vous pouvez également le faire en liant une touche à `Terminate_Server` dans `xmodmap` (ce qui annule tout paramètre existant de `XkbOptions`). Pour que l'une ou l'autre de ces méthodes fonctionne, il faut également que `DontZap` ait la valeur "off" dans `ServerFlags` ; cependant, depuis 2004 [1], c'est la valeur par défaut.

### Échanger le verrouillage des majuscules avec le contrôle gauche

Pour permuter le verrouillage des majuscules avec la touche de contrôle gauche, ajoutez `ctrl:swapcaps` à `XkbOptions`. Exécutez la commande suivante pour consulter les options similaires ainsi que leurs descriptions :

    $ grep -E "(ctrl|caps) :" /usr/share/X11/xkb/rules/base.lst

### Activation des touches souris

Les «touches souris», à ne pas confondre avec les touches de la souris, est désactivé par défaut et doit être activé manuellement en passant `keypad:pointerkeys` à `XkbOptions`. Ainsi, le raccourci `Shift+NumLock` permet de faire basculer les «touches souris».

Consultez également X keyboard extension#Mouse control pour une configuration avancée.

### Configuration de la touche de composition

Bien que cela ne soit généralement pas le cas sur les claviers traditionnels, une touche de composition peut être configurée sur une touche existante.

La touche `Compose` commence une séquence d'appui sur une touche qui implique (généralement deux) appuis supplémentaires. Elle est généralement utilisée pour saisir des caractères dans une langue pour laquelle le clavier n'a pas été conçu, ou pour d'autres caractères moins utilisés qui ne sont pas couverts par le modificateur `AltGr`. Par exemple, l'appui sur `Compose`. `'` `e` produit `é`, ou `Compose` `-` `-` `-` produira un "em dash" : `-`.

Bien que quelques claviers plus excentriques disposent d'une touche `Compose`, sa disponibilité est généralement assurée par la substitution d'une touche existante. Par exemple, pour transformer la touche {ic|Menu}} en touche {ic|Compose}}, utilisez la configuration de l'environnement de bureau, ou passez `compose:menu` à `XkbOptions` (ou setxkbmap : `setxkbmap -option compose:menu`). Les substitutions de touches autorisées sont définies dans `/usr/share/X11/xkb/rules/base.lst` :

    $ grep "compose:" /usr/share/X11/xkb/rules/base.lst

Si le mappage souhaité n'est pas trouvé dans ce fichier, une alternative est d'utiliser xmodmap pour mapper la touche souhaitée sur le keysym `Multi_key`, qui agit comme une touche de composition par défaut (notez que les paramètres de xmodmap sont réinitialisés par setxkbmap).

#### Combinaisons de touches

Les combinaisons par défaut des touches de composition dépendent de la locale configurée pour la session et sont stockées dans `/usr/share/X11/locale/used_locale/Compose`, où `used_locale` est par exemple `en_US.UTF-8`.

Vous pouvez définir vos propres combinaisons de touches de composition en copiant le fichier par défaut dans `~/.XCompose` et en le modifiant. Vous pouvez également créer un `~/.XCompose` vide et inclure le fichier par défaut en utilisant `include "%L"`, par exemple :

    ~/.XCompose

    include "%L"

    <Multi_key> <g> <a> : "α"
    <Multi_key> <g> <b> : "β"
    <Multi_key> <g> <g> : "γ"

La touche de composition (désignée par `<Multi_key>` dans le fichier `~/.XCompose`) fonctionne avec n'importe lequel des milliers de caractères Unicode valides, y compris ceux qui ne font pas partie du plan multilingue de base. Jetez un coup d'œil à la page de manuel Compose(5), elle explique le format des fichiers XCompose.

Cependant, GTK n'utilise pas XIM par défaut et ne suit donc pas les clés `~/.XCompose`. Cela peut être corrigé en forçant GTK à utiliser XIM en ajoutant `export GTK_IM_MODULE=xim` et/ou `export XMODIFIERS="@im=none"` à `~/.xprofile`.

Astuce: XIM est très vieux, vous aurez peut-être plus de chance avec d'autres méthodes d'entrée : SCIM, Uim, IBus, etc. Consultez Méthode d'entrée pour plus de détails.
Note: XIM empêchera l'insertion de caractères Unicode avec la combinaison `Ctrl+Shift+u`.

### Signe de la devise sur une autre touche

Sur la plupart des claviers européens, le signe Euro (€) est imprimé sur la touche `5`. Par exemple, pour y accéder avec `Alt+5`, utilisez les options `lv3:lalt_switch` et `eurosign:5`.

Le signe de la roupie (₹) peut être utilisé de la même manière avec `rupeesign:4`.

### Changement d'état immédiat lorsque la touche Caps Lock est enfoncée

Ceux qui préfèrent taper des lettres majuscules avec la touche Caps Lock peuvent ressentir un court délai lorsque l'état de Caps Lock est changé, résultant en deux ou plusieurs lettres majuscules (par exemple THe, ARch LInux). Cela se produit parce que le verrouillage des majuscules est activé immédiatement après avoir appuyé sur la touche de verrouillage des majuscules, mais n'est désactivé qu'après avoir relâché la deuxième pression sur la touche. Ce comportement s'inspire des machines à écrire où la fonction de verrouillage des majuscules était obtenue en verrouillant physiquement les barres de caractères décalées en place, et le relâchement d'une pression sur la touche shift était l'action qui provoquait la libération du verrouillage.

Certains systèmes d'exploitation plus populaires ont supprimé ce comportement, soit volontairement (car il peut être source de confusion pour certains), soit par erreur, mais c'est une question de préférence. Des rapports de bugs ont été déposés sur le bug tracker de Xserver, car il n'y a actuellement aucun moyen facile de passer au comportement reflété par ces autres systèmes d'exploitation. Pour ceux qui souhaitent suivre ce problème, les rapports de bogue et les derniers progrès réalisés peuvent être trouvés sur [2] et [3].

#### Palliatif

Tout d'abord, exportez vos configurations de clavier dans un fichier :

    $ xkbcomp -xkb $DISPLAY xkbmap

Dans le fichier xkbmap, localisez la section Caps Lock qui commence par key <CAPS> :

     key <CAPS> { [ Caps_Lock ] } ;

et remplacez toute la section par le code suivant :

    touche <CAPS> {
        repeat=no,
        type[group1]="ALPHABÉTIQUE",
        symboles[group1]=[ Caps_Lock, Caps_Lock],
        actions[group1]=[ LockMods(modifiers=Lock), Private(type=3,data[0]=1,data[1]=3,data[2]=3)]]
    } ;

Sauvegarder et recharger les configurations du clavier :

    $ xkbcomp -w 0 xkbmap $DISPLAY

Pensez à en faire un service qui se lance après le démarrage de X, car les configurations rechargées ne survivent pas à un redémarrage du système.

## Fonctions des touches en un clic

Pour attribuer une fonction supplémentaire à une touche de modification, vous pouvez utiliser xcape. Par exemple, il est possible de faire fonctionner `CapsLock` comme `Escape` lorsqu'elle est enfoncée seule, et comme `Control` lorsqu'elle est utilisée avec une autre touche. Commencez par définir la permutation `Control` en utilisant setxkbmap comme mentionné précédemment, et xcape pour définir l'association `Escape` :

     $ xcape -e 'Caps_Lock=Escape'

Vous pouvez définir plusieurs associations séparées par un point-virgule, par ex : `Caps_Lock=Escape;Shift_L=Escape`.

Si vous maintenez une touche pendant une durée supérieure à la valeur du délai d'attente (500 ms par défaut), xcape ne générera pas d'événement de touche.

## Réglage du délai et du taux de répétition

Le délai typographique indique la durée (généralement en millisecondes) pendant laquelle une touche doit être maintenue enfoncée pour que le processus de répétition commence. Une fois le processus de répétition déclenché, le caractère sera répété à une certaine fréquence (généralement exprimée en Hz) spécifiée par le taux typographique. Notez que ces paramètres sont configurés séparément pour Xorg et pour la console virtuelle.

### Utilisation de xset

L'outil xset peut être utilisé pour définir le délai et le taux de frappe d'un serveur X actif, certaines actions pendant l'exécution peuvent cependant amener le serveur X à réinitialiser ces changements et à revenir à ses valeurs par défaut.

Utilisation :

    $ xset r rate delay [rate] (en anglais)

Par exemple, pour définir un délai typographique de 200 ms et un taux typographique de 30 Hz, utilisez la commande suivante (utilisez xinitrc pour la rendre permanente) :

    $ xset r rate 200 30

L'exécution de la commande sans spécifier le délai et le taux réinitialisera les valeurs typographiques à leurs valeurs par défaut respectives, soit un délai de 660 ms et un taux de 25 Hz :

    $ xset r rate

### Utilisation de l'option de configuration AutoRepeat

Pour faire persister la configuration et modifier les seat defaults, vous pouvez créer un fichier de configuration Xorg comme décrit dans #Utilisation des fichiers de configuration de X, et ajouter une entrée pour la section `AutoRepeat` : [4]

    /etc/X11/xorg.conf.d/00-keyboard.conf

    ].
    Section "InputClass
            ...
            Option "AutoRepeat" "200 30"
            ...
    EndSection

### Utilisation des options de démarrage de XServer

Une autre méthode de configuration consiste à transmettre les paramètres souhaités au serveur X lors de son démarrage à l'aide des options suivantes :

- `-ardelay millisecondes` - définit le délai de répétition automatique (durée en millisecondes pendant laquelle une touche doit être enfoncée avant que la répétition automatique ne commence).
- `-arinterval milliseconds` - définit l'intervalle d'autorepeat (durée en millisecondes qui doit s'écouler entre les frappes générées par autorepeat).

Consultez Xserver(1) pour obtenir une liste complète des options du serveur X et consultez votre gestionnaire d'affichage pour savoir comment passer ces options.

## Voir aussi

- Guide Madduck sur l'extension de XKB (archivé sur Wayback Machine)

Categories:

- X server (Français)
- Keyboard configuration (Français)