Configurer le temps de répétition des touches du clavier sous Linux

Dernière mise à jour: 23/04/2026
Auteur: Isaac
  • Sous Linux, le réglage du temps de répétition et de la vitesse des touches peut se faire aussi bien depuis l'environnement graphique qu'avec les outils de la console.
  • Le système traduit les codes de balayage en codes de touches, puis en caractères, en utilisant des mappages de clavier, des modificateurs et différents modes de console.
  • Des utilitaires tels que kbdrate, setkeycodes, loadkeys et dumpkeys permettent une personnalisation poussée du comportement du clavier et des touches spéciales.
  • La configuration permanente repose sur des scripts de démarrage, des cartes dans /usr/share/kbd et la base de données terminfo pour le modèle de terminal.

Configurer la répétition des touches sous Linux

Lorsque vous travaillez quotidiennement avec Linux, la réactivité du clavier fait toute la différence entre une frappe fluide et une situation désespérée. Durée de répétition des touches, délai initial et comportement de chaque touche Ils peuvent être réglés avec une précision extrême, aussi bien depuis l'environnement graphique que depuis la console texte et le noyau lui-même.

De plus, sous Linux, vous pouvez non seulement modifier le délai avant le début de la répétition d'une touche ou le nombre de caractères par seconde générés lorsqu'elle est maintenue enfoncée, mais vous pouvez également modifier la disposition du clavier, redéfinir les touches spéciales, changer la disposition et même assigner des actions avancées como programmes de lancement ou éteignez le système.

Configuration graphique du temps de répétition des touches sous Linux

Sur la plupart des environnements de bureau Linux modernes (par exemple, GNOME, KDE Plasma, Cinnamon, etc.), le premier endroit où ajuster le comportement des touches est le panneau des paramètres système. Ces environnements proposent une section Clavier spécifique où le délai et la fréquence de répétition sont réglables. sans se battre avec la console.

Dans un environnement de type GNOME, la procédure habituelle consiste à se rendre à « Paramètres système → Clavier → Répétition des touches »Il existe deux commandes principales : le délai avant qu’une touche ne se répète lorsqu’elle est maintenue enfoncée, et le vitesse de répétition (nombre de caractères générés par seconde).

Le « délai de répétition » contrôle le temps qui s'écoule entre le moment où vous maintenez la touche enfoncée et le moment où elle commence à tirer des caractères en continu. Si vous avez du mal à lever le doigt rapidement ou si vous utilisez le clavier pour déplacer le curseur avec précision, veuillez nous contacter.Vous pourriez être intéressé par l'augmentation de ce délai, ou tout simplement par la désactivation de la répétition automatique.

Le « taux de répétition » indique le nombre de caractères produits une fois la répétition commencée. Une vitesse élevée peut être très utile pour faire défiler rapidement du texte ou des jeux.Mais cela peut aussi vous faire manquer trop de caractères si vous exagérez avec la valeur.

Dans le cas particulier des touches spéciales, telles que les Molette ou bouton de volume intégré au clavierVous pourriez souhaiter un comportement différent. Par exemple, vous pourriez vouloir que le volume augmente ou diminue instantanément lorsque vous tournez la molette, sans le délai habituel de 600 ms des autres touches. Dans les environnements graphiques standards, il n'est généralement pas possible de définir un délai différent pour chaque touche ; c'est là que les utilitaires de bas niveau du système et de la console entrent en jeu.

Réglez le délai et la vitesse de répétition des touches

Contrôle du clavier depuis le système : codes de balayage, codes de touches et BIOS

Sous la couche graphique, Linux gère le clavier avec beaucoup plus de précision qu'il n'y paraît. Lorsque vous appuyez sur une touche, le périphérique n'envoie pas directement une lettre, mais plutôt un signal. code de scanCe code de balayage atteint le noyau, qui le transforme en un code cléÀ partir de là, une configuration de clavier est appliquée, qui produit finalement un caractère ou une action.

Traditionnellement, l'interruption 9 du BIOS gérait le clavier (cas typique des systèmes de type MS-DOS), mais sous Linux, c'est l'inverse. Le noyau installe sa propre routine de service pour l'interruption clavier.Cette routine suit un schéma similaire à la routine classique, bien qu'il y ait des différences dans l'interprétation des codes de balayage et dans la manière dont les tampons internes sont remplis.

La plupart des touches génèrent deux codes : un lorsqu’on appuie dessus (code de création) et un autre lorsqu’on les relâche (code de rupture). En pratique, le noyau ignore généralement les codes d'interruption pour simplifier la gestionSauf dans certains cas particuliers, comme les touches à bascule (Maj, Ctrl, Alt, etc.). De plus, certaines touches spéciales génèrent une double séquence : d’abord un octet de préfixe (par exemple 0xE0), puis le code de la touche.

Pour les codes de balayage compris entre 0x01 et 0x58 (de 1 à 88 en décimal), Linux applique par défaut une règle très simple : code clé = code de balayageDans d'autres plages (par exemple 0x59-0x7F ou les séquences commençant par 0xE0), la relation n'est pas aussi triviale et une table de noyau interne est utilisée qui définit quel code de touche correspond à chaque combinaison de codes de balayage.

Avec des outils comme Afficher la touche y obtenir les codes clés Vous pouvez voir exactement quels codes votre clavier produit. Par exemple, en exécutant la commande suivante : afficher la touche -k Dans une console virtuelle (et non un terminal graphique), vous verrez les codes de touches générés par chaque frappe, et avec afficher la touche -s Vous pouvez visualiser les codes de balayage bruts envoyés par le matériel, ce qui facilite le dépannage de problèmes tels que : le clavier d'un ordinateur portable ne fonctionne pas.

  Comment récupérer un serveur Windows en cas de panne : guide complet et détaillé pour toutes les versions

Modifier l'attribution des touches : commande setkeycodes

Dans les situations où une touche spéciale (telle qu'une molette de volume, des touches multimédias ou des touches supplémentaires du clavier) n'est pas interprétée correctement, elle peut être utilisée définir les codes clés ajuster l'association entre le code de balayage et le code de touche. Cette commande vous permet d'indiquer au noyau : « Lorsque vous voyez ce code de balayage, traitez-le comme s'il s'agissait de ce code de touche. ».

La syntaxe de base est:

définir les codes de balayage code de touche

El code de scan Il est exprimé en hexadécimal (par exemple e049) Et l' code clé en décimal (par exemple 112Vous pouvez ainsi réaffecter des touches non conventionnelles afin que le système les considère comme des touches standard ou d'autres touches qui vous intéressent.

Imaginez que votre clavier génère la séquence 0xE0 0x49 lorsque vous appuyez sur la touche physique « Page précédente ». D'après la table par défaut du noyau, cela pourrait correspondre au code de touche 104. Si vous préférez que cette touche se comporte comme une autre, vous pouvez exécuter une commande comme :

setkeycodes e049 112

Après cette modification, appuyer sur cette touche générera le code 112 au lieu de 104. L'important ici est que Cette réaffectation s'effectue au niveau du noyau, avant que la table de correspondance du clavier ne convertisse le code de la touche en une action concrète.À partir de là, sur votre carte, vous pouvez décider à quoi sert le code de touche 112.

Pour vérifier quels codes de touches le système reconnaît et quelles plages il prend en charge, vous pouvez utiliser obtenir les codes clésqui affichera les tables internes. Ces utilitaires nécessitent généralement des privilèges d'administrateur car Ils modifient le comportement global du clavier dans toutes les consoles virtuelles..

Disposition du clavier et configuration avancée sous Linux

Modes de fonctionnement de la console Linux

Dans les consoles de texte (les TTY classiques auxquels vous accédez avec Ctrl+Alt+F1…F6), le pilote de clavier et de console Linux peut fonctionner dans plusieurs modes, qui déterminent exactement ce que l'application reçoit. Ces modes influencent la façon dont les codes de balayage, les codes de touches et les caractères sont interprétés..

Les principaux modes sont :

Mode RAW (mode de numérisation)Le pilote ne traduit rien ; il transmet les codes de balayage tels quels à l’application. Il s’agit du mode de bas niveau, généralement utilisé lorsqu’un système graphique ou une application spécialisée requiert un contrôle total du clavier.

Mode MEDIUMRAW (mode code clé)Le noyau convertit les codes de balayage en codes de touches, mais ne va pas plus loin. L'application reçoit les codes d'accès et décide de la marche à suivre.Cette approche est utile pour les programmes qui implémentent leur propre système de raccourcis et de traduction.

Mode XLATE (mode ASCII)Il s'agit du mode par défaut traditionnel des consoles de texte. Dans ce mode, les codes de balayage sont convertis en codes de touches, puis en caractères selon une table de correspondance de clavier 8 bits (généralement basée sur la norme ISO-8859-1). C'est la méthode la plus courante lorsqu'on travaille directement dans un terminal avec un shell..

Mode UNICODE (UTF-8)Similaire au précédent, mais utilisant un jeu de caractères Unicode, ce mode envoie des séquences UTF-8 au noyau pour représenter les caractères de plus d'un octet. Il est essentiel pour les systèmes modernes prenant en charge différents alphabets ou des symboles étendus.

Le mode effectif de la console est lié à la variable d'environnement TERME. Si vous faites printenv TERMEDans une console virtuelle, vous verrez normalement « linux », tandis que dans un terminal graphique sous X ou Wayland, vous verrez « xterm », « xterm-256color » ou quelque chose de similaire. Lorsqu'un serveur X est en cours d'exécution, X gère lui-même le clavier. et le noyau laisse généralement la console en mode RAW, déléguant l'interprétation au serveur graphique.

La clé Alt Dans ce contexte, elle est connue sous le nom de touche Meta, et la combinaison Alt+X est généralement notée MetaX. Le comportement de ces raccourcis clavier Meta peut être ajusté à l'aide de l'utilitaire. définir le métamodequi vous permet de choisir si la combinaison Alt+X envoie une séquence ESC X (échappement suivi du caractère) ou un caractère dont la valeur est X plus 128, c'est-à-dire avec le bit 7 activé.

Base de données sur les modèles de terminaux et les informations sur les terminaux

Linux hérite d'un concept classique d'UNIX : Le système considère chaque session comme un type de terminalqui possède certaines caractéristiques bien connues (touches spéciales, gestion des couleurs, contrôle du curseur, etc.). Même si vous ne disposez que d'un écran et d'un clavier, le noyau vous identifie comme connecté via un modèle de terminal spécifique.

Les fonctionnalités de chaque modèle de terminal sont décrites dans la base de données. infos sur le terme, généralement situé dans /usr/share/terminfo/Cette base de données contient des fichiers organisés en sous-répertoires par lettre initiale (par exemple, le fichier vt100 se trouve dans un sous-répertoire dont le nom commence par la première lettre du terminal).

  Que puis-je faire pour bloquer l'accès à Facebook ? Comment supprimer l'accès restreint sur Facebook ?

Chaque fichier terminfo décrit le nom du terminal, son alias et une longue liste de fonctionnalités : quelles séquences d'échappement correspondent à touches de fonctioncomment le curseur se déplace, comment les lignes sont effacéesetc. Un exemple typique d'en-tête de terminal classique est quelque chose comme « vt100|vt100-am|dec vt100 (avec vidéo avancée) … ».

Pour interagir avec les fonctionnalités du terminal depuis la ligne de commande, vous disposez de plusieurs outils :

StyIl sert à visualiser et à ajuster les paramètres du terminal (écho, contrôle de flux, suppression de caractères, etc.).

terme définiCette commande permet de modifier les attributs de la console, tels que le comportement vidéo, le scintillement, les couleurs, etc. Sans argument, elle affiche généralement la liste de toutes les options de réglage disponibles dans le terminal actuel.

mettreIl utilise terminfo pour envoyer des séquences de contrôle standard au terminal, telles que l'effacement de l'écran, le déplacement du curseur ou la modification des attributs, sans avoir à écrire manuellement les séquences ANSI.

Configuration du clavier au démarrage du système

Conformément aux spécifications Linux Standard Base (LSB)Les scripts de démarrage du système se trouvent dans /etc/init.d/ et sont lancés directement ou indirectement par / sbin / init, le processus parent de tous les autres. Au sein de cette structure, sont définies les étapes d'initialisation du matériel, des réseaux, des consoles et, bien sûr, du clavier.

En règle générale, ce sont les scripts situés dans la séquence de démarrage qui sont exécutés. /etc/init.d/boot.d/ ou des itinéraires équivalents selon la distribution. Ces scripts gèrent des éléments tels que : ports série, cartes réseau, horloge CMOS, volumes logiques et d'autres composants de base. Finalement, un script est généralement exécuté. /etc/init.d/boot.local pour les commandes personnalisées de l'administrateur.

Concernant le clavier de la console texte, de nombreuses distributions utilisent un fichier de configuration tel que : /etc/sysconfig/clavierIl spécifie les paramètres clés, notamment la configuration du clavier à charger au démarrage et les paramètres de répétition.

Ce fichier contient des directives telles que :

TABLEAU DES CLÉS: indique le fichier de configuration du clavier, généralement situé dans /usr/share/kbd/keymaps/Une valeur typique pourrait être « es.map.gz », qui pointe vers une carte pour un clavier espagnol.

KBD_RATE y KBD_DÉLAI: définir la fréquence de répétition (par exemple de 2.0 à 30.0 caractères par seconde) et le délai initial en millisecondes (250, 500, 750, 1000, etc.). Si vous souhaitez que le système exécute la commande kbdrate au démarrage, vous devez définir les deux valeurs..

De plus, il existe des paramètres d'état initiaux clés tels que Verr Num, Verr Défil et Verr MajCes paramètres peuvent être définis sur « oui », « non » ou « BIOS » (respecter la configuration du BIOS). Il est même possible de désactiver la fonction Verr. Maj et de convertir la touche Verr. Maj en une touche Maj classique.

La ligne la plus importante pour le comportement général du clavier est celle qui définit la table de correspondance, quelque chose comme ceci :

KEYTABLE="es.map.gz"

Cette carte détermine ce que fait chaque code de touche, c'est-à-dire quel caractère ou action sera généré lorsque chaque touche est pressée en combinaison avec les modificateurs (Maj, AltGr, Contrôle, etc.). À partir de là, vous pouvez ajuster le comportement à la volée grâce à des outils comme loadkeys, dumpkeys, showkey et kbdrate..

Principaux utilitaires : showkey, loadkeys, dumpkeys et kbdrate

Une fois le système opérationnel, vous disposez de plusieurs outils puissants pour manipuler le clavier en temps réel. Ce sont des utilitaires de console qui, utilisés judicieusement, permettent d'adapter le clavier à presque tous les besoins..

Afficher la toucheCela permet de vérifier quels codes le clavier génère réellement. afficher la touche -s Vous voyez les codes de balayage exactement tels qu'ils proviennent du matériel ; avec afficher la touche -k Les codes de touches produits par la routine du noyau après la première conversion sont affichés.

touches de chargementCharge une nouvelle configuration de clavier dans les consoles virtuelles. Nécessite les privilèges root et doit être utilisé avec précaution. Cela affecte tous les TTY, y compris le TTY de connexion.Une carte mal configurée peut rendre très difficile la saisie d'un mot de passe, voire même la connexion.

clés de déchargeCela vous permet d'examiner la disposition actuelle du clavier et d'autres détails connexes, tels que les définitions de fonctions, les compositions de caractères et les équivalences symboliques. Avec des options telles que : dumpkeys –long-info, dumpkeys –funcs-only o dumpkeys –compose-only Vous pouvez obtenir des listes très détaillées de la structure de votre carte.

kbdrateC'est l'outil direct pour changer le taux de répétition et délai initial du clavierSur de nombreux systèmes, les valeurs par défaut correspondent à la norme clavier IBM : environ 10 caractères par seconde et une latence d’environ 250 ms. Avec kbdrate, vous pouvez les modifier sans redémarrer, ce qui est utile pour comprendre les options d’accessibilité telles que… touches de filtre dans Windows.

Par exemple, pour un délai très court et une répétition rapide, vous pourriez utiliser quelque chose comme :

kbdrate -d 200 -r 30

-d Indiquez le délai (en millisecondes) et -r le taux de répétition (caractères par seconde). Si vous souhaitez des performances globalement plus lentes, augmentez le délai ou diminuez le débit.Et si vous souhaitez une réponse quasi instantanée, vous pouvez réduire le délai à 200 ms, voire moins, selon les capacités de votre matériel.

  8 experts financiers qui sont des femmes qui réussissent très bien

Le plan du clavier : définition interne et modificateurs

La « carte clavier » ou configuration du clavier est au cœur de la configuration avancée. Ces cartes peuvent être compilées dans le noyau ou stockées sous forme de fichiers texte. /usr/share/kbd/keymaps/, avec une configuration par défaut dans des fichiers tels que /etc/defkeymap.map. Chaque distribution comprend généralement des collections de cartes pour différentes langues et mises en page..

Les configurations de clavier définissent, à l'aide d'une syntaxe spécifique, le rôle de chaque touche en combinaison avec différents modificateurs. De manière générale, jusqu'à 256 actions différentes pour une même touche, associé aux combinaisons possibles de modificateurs (Maj, Alt, Ctrl, AltGr, etc.).

Le fichier de carte utilise des lignes de la forme suivante :

numéro de code de touche = symbole symbole symbole …

El nombre Il s'agit de l'identifiant interne de la clé (code de clé), qui peut être exprimé en décimal, en octal ou en hexadécimal. symbole (keysym) représente l'action associée, qui peut être un caractère, une séquence de caractères ou une fonction spéciale telle que Supprimer, Démarrer, Console_15 et bien d'autres. Les codes numériques directs ne sont généralement pas utilisés ; on emploie plutôt des constantes symboliques qui restent stables d'une version du noyau à l'autre.

Les modificateurs sont traités comme des bits d'un octet, chacun ayant un « poids » spécifique. Par exemple, Maj peut avoir un poids de 1, AltGr un poids de 2, Ctrl un poids de 4, Alt un poids de 8, et ainsi de suite pour Maj gauche, Maj droite, Ctrl gauche et Ctrl droite. Lorsque vous appuyez sur une touche, l'action effective est déterminée en additionnant les pondérations des modificateurs actifs et en consultant la colonne correspondante. dans la définition de cette clé.

Par exemple, si vous appuyez sur une touche avec Maj et Alt, la somme peut être 9, et la définition de la colonne 9 détermine ce qui sera généré. Sans modificateur, l'index est 0 et le premier symbole défini dans la ligne de code de touche est pris..

Il existe également une marque spéciale, le signe + Les lettres précédant certains symboles indiquent qu'ils doivent être traités comme des lettres ; elles correspondent donc aux touches Verr. Maj et Maj. Exemple typique :

code de touche 30 = +a

Cela indique que la touche génère un « a » minuscule sans modificateurs, un « A » si une majuscule est utilisée, etc. Pour un comportement plus précis, la colonne des majuscules peut être définie explicitement, par exemple :

code de touche 30 = +a A

Si vous ne souhaitez pas qu'une combinaison de touches spécifique effectue une action, utilisez le mot-clé Symbole du videPar exemple, pour qu'une touche ne produise que la lettre « a » sans modificateurs et rien dans certaines combinaisons, on pourrait utiliser des définitions où ces cas sont marqués par VoidSymbol. De plus, la syntaxe permet des simplifications : Si un seul symbole est défini et qu'il ne s'agit pas d'une lettre ASCII, il est supposé être reproduit dans toutes les colonnes spécifiées..

Autres éléments de la carte : inclusions, mappages de touches, jeu de caractères, fonctions et composition

Les fichiers de configuration du clavier contiennent non seulement des définitions de codes de touches, mais aussi d'autres éléments importants pour le comportement global. Cela permet la modularité, la prise en charge de différents jeux de caractères et la définition de touches de fonction et de combinaisons d'accents..

Directif comprennent Cela vous permet d'inclure d'autres fichiers, comme avec une importation. C'est utile pour réutiliser des éléments communs dans plusieurs cartes, par exemple une table d'accents ou un ensemble de fonctions standard.

ligne mappages de touches définit les colonnes (indices de modification) spécifiées dans la carte. Au lieu de lister les 256 colonnes possibles, on spécifie généralement des plages, comme par exemple : mappage des touches 0-2, 4-5, 8, 12, ce qui signifie que les colonnes 0, 1, 2, 4, 5, 8 et 12 sont utilisées (normal, Shift, AltGr, Control, Control+Shift, Alt et Control+Alt). Si cette ligne est manquante, on suppose qu'il existe des définitions de 0 à M, M étant l'indice maximal trouvé. dans les lignes de code de clé.

Les définitions de jeux de caractères Elles sont réalisées avec des lignes du type :

jeu de caractères «iso-8859-2»

et déterminer à quelle page de codes correspondent les valeurs numériques des caractères. Par défaut, on utilise généralement ISO-8859-1 (Latin-1), mais d'autres, comme ISO-8859-2 ou ISO-8859-7, peuvent également convenir. Cela concerne notamment les symboles tels que la lettre grecque mu ou les caractères spéciaux propres à certaines langues..

Les définitions de chaînes de caractères Ils utilisent la syntaxe suivante :

chaîne keysym = "texte"

et servent à associer des touches de fonction ou des touches spéciales à des séquences de caractères spécifiques. Par exemple, vous pouvez spécifier que F1 envoie la séquence « Échap ».