Configurar temps de repetició de tecla del teclat a Linux

Darrera actualització: 23/04/2026
Autor: Isaac
  • Ajustar el temps i la velocitat de repetició de tecles a Linux es pot fer tant des de l'entorn gràfic com amb eines de consola.
  • El sistema tradueix scancodes en keycodes i després en caràcters usant mapes de teclat, modificadors i diferents modes de consola.
  • Utilitats com kbdrate, setkeycodes, loadkeys i dumpkeys permeten personalitzar a fons el comportament del teclat i tecles especials.
  • La configuració permanent es recolza en scripts d'arrencada, mapes a /usr/share/kbd i la base de dades terminfo per al model de terminal.

configurar repeticio de tecles en linux

Quan treballes diàriament amb Linux, la manera com respon el teclat marca la diferència entre escriure amb fluïdesa o acabar desesperat. El temps de repetició de tecla, el retard inicial i el comportament de cada tecla poden ajustar-se amb una precisió enorme, tant des de l'entorn gràfic com des de la consola de text i el mateix nucli.

A més, a Linux no només pots canviar quant triga una tecla a començar a repetir-se o quants caràcters per segon genera quan la mantens premuda, sinó que també pots modificar el mapa de teclat, redefinir tecles especials, canviar la distribució i fins i tot assignar accions avançades com a llançar programes o apagar el sistema.

Configuració gràfica del temps de repetició de tecla a Linux

A la majoria d'escriptoris moderns de Linux (per exemple GNOME, KDE Plasma, Cinnamon, etc.), el primer lloc on ajustar el comportament de les tecles és el panell de configuració del sistema. Aquests entorns ofereixen un apartat específic de Teclat on s'ajusten el retard i la velocitat de repetició sense barallar-se amb la consola.

En un entorn tipus GNOME, el més habitual és anar a “Configuració del sistema → Teclat → Repetició de tecles”. Aquí apareixen dos controls principals: el retard abans que es comenci a repetir una tecla en mantenir-la premuda, i la velocitat de repetició (quants caràcters per segon es generen).

El “retard de repetició” controla el temps que passa des que deixes la tecla ajustada fins que comença a disparar caràcters sense parar. Si et costa aixecar el dit amb rapidesa o si fas servir el teclat per moure cursors amb precisió, us pot interessar augmentar aquest retard, o directament desactivar la repetició automàtica.

La “velocitat de repetició” indica quants caràcters es produeixen una vegada que la repetició ha començat. Una velocitat alta pot venir molt bé per desplaçar-te ràpid en text o jocs, però també pot provocar que se t'escapin massa caràcters si et passes amb el valor.

En el cas concret de tecles especials, com una roda o perilla de volum integrada al teclat, pots voler un comportament diferent. Per exemple, potser us interessa que en girar la roda el volum pugi o baixi a l'instant, sense el retard de 600 ms típic de les altres tecles. En entorns gràfics estàndard no hi sol haver opció de fixar un retard diferent per tecla, així que aquí és on entra en joc la capa més baixa del sistema i les utilitats de consola.

ajustar retard i velocitat de repeticio de tecles

Control del teclat des del sistema: scancodes, keycodes i BIOS

Sota la capa gràfica, Linux tracta el teclat amb molt més detall del que sembla. Quan prems una tecla, el dispositiu no envia directament una lletra, sinó un codi d'exploració o scancode. Aquest scancode arriba al nucli, que el transforma en un codi clau, ia partir d´aquí s´aplica un mapa de teclat que finalment produeix un caràcter o una acció.

Tradicionalment, la interrupció 9 de la BIOS s'ocupava de manejar el teclat (el típic en sistemes tipus MS-DOS), però a Linux el kernel instal·la la vostra pròpia rutina de servei per a la interrupció del teclat. Aquesta rutina segueix un esquema semblant al clàssic, encara que amb diferències en la interpretació de scancodes i en com s'omplen els buffers interns.

La majoria de tecles generen dos codis: un quan les prems (make code) i un altre quan les soltes (break code). A la pràctica, el kernel sol ignorar els break codes per simplificar el tractament, excepte en casos concrets com tecles de commutació (Shift, Ctrl, Alt, etc.). A més, algunes tecles especials generen seqüències dobles: primer un byte de prefix (per exemple 0xE0) i després el codi de la tecla.

Per als scancodes al rang 0x01-0x58 (1 a 88 en decimal), Linux aplica per defecte una regla molt directa: keycode = scancode. En altres rangs (per exemple 0x59-0x7F o les seqüències que comencen per 0xE0), la relació no és tan trivial i es fa servir una taula interna del kernel que defineix a quin keycode correspon cada combinació de scancodes.

Amb eines com showkey y getkeycodes pots veure de manera exacta quins codis està produint el teu teclat. Per exemple, executant showkey -k en una consola virtual (no en una terminal gràfica) veuràs els keycodes que genera cada pulsació, i amb showkey -s pots veure els scancodes crus que envia el maquinari, i ajuda a resoldre problemes com quan no funciona el teclat del portàtil.

  Com recuperar Windows Server en cas de fallada: guia completa i detallada per a qualsevol versió

Modificar l'assignació de tecles: ordre setkeycodes

En situacions on una tecla especial (com ara una roda de volum, tecles multimèdia o tecles extra del teclat) no s'interpreta correctament, es pot utilitzar setkeycodes per ajustar l'associació entre scancode i keycode. Aquesta ordre et permet dir-li al kernel “quan vegis aquest scancode, tracta'l com si fos aquest keycode”.

La sintaxi bàsica és:

setkeycodes scancode keycode

El scancode s'expressa en hexadecimal (per exemple e049) I el codi clau en decimal (per exemple 112). D'aquesta manera pots reassignar tecles poc convencionals perquè el sistema les vegi com a tecles estàndard o d'altres que t'interessin.

Imagina que el teu teclat genera la seqüència 0xE0 0x49 en prémer una tecla física de “Pàgina Amunt”. Segons la taula per defecte del nucli, això pot correspondre al keycode 104. Si prefereixes que aquesta tecla es comporti com una altra, podries executar alguna cosa com:

setkeycodes e049 112

Després d'aquest canvi, la pulsació d'aquesta tecla generarà el keycode 112 en lloc del 104. El que és important aquí és que aquesta reassignació es fa a nivell de kernel, abans que el mapa de teclat converteixi el keycode en una acció concreta. A partir d'aquí, al mapa podràs decidir què fa el keycode 112.

Per inspeccionar quins keycodes reconeix el sistema i quins rangs admet, pots fer servir getkeycodes, que mostrarà les taules internes. Aquestes utilitats solen requerir permisos d'administrador perquè modifiquen el comportament global del teclat a totes les consoles virtuals.

mapa de teclat i configuracio avançada en linux

Maneres d'operació de la consola Linux

A les consoles de text (les típiques TTY a les quals accedeixes amb Ctrl+Alt+F1…F6), el controlador de teclat i de consola de Linux pot funcionar en diverses maneres, que determinen què rep exactament l'aplicació. Aquests modes influeixen en com s'interpreten els scancodes, keycodes i caràcters.

Les maneres principals són:

Mode RAW (Scan mode): el controlador no tradueix res, envia els scancodes tal com a l'aplicació. És el mode més baix nivell i se sol utilitzar quan un sistema gràfic o una aplicació especialitzada vol controlar completament el teclat.

Mode MEDIUMRAW (Keycode mode): el kernel converteix scancodes en keycodes, però no va més enllà. L'aplicació rep keycodes i decideix què fer. Aquest enfocament és útil per a programes que implementen el seu propi sistema de dreceres i traducció.

Mode XLATE (ASCII mode): és la manera tradicional per defecte en consoles de text. En ell, els scancodes es converteixen a keycodes i després a caràcters segons un mapa de teclat de 8 bits (normalment basat en ISO-8859-1). És la manera més habitual quan treballes directament a TTY amb shell.

Mode UNICODE (UTF-8): similar a l'anterior, però usant un joc de caràcters Unicode, enviant al nucli seqüències UTF-8 per representar caràcters de més d'un byte. Aquest mode és clau en sistemes moderns que volen suportar alfabets diferents o símbols estesos.

El mode efectiu de la consola està relacionat amb la variable d'entorn TERMINI. si fas printenv TERM, el més normal en una consola virtual és veure “linux”, mentre que en una terminal gràfica a X o Wayland es veu “xterm”, “xterm-256color” o un altre similar. Quan s'executa un servidor X, X mateix gestiona el teclat i el kernel sol deixar la consola en mode RAW, delegant la interpretació al servidor gràfic.

la tecla Alt es coneix en aquest context com a tecla Meta, i la combinació Alt+X se sol escriure com a MetaX. El comportament d'aquestes pulsacions Meta es pot ajustar amb la utilitat setmetamode, que permet triar si en prémer Alt+X s'envia una seqüència ESC X (escapi seguit del caràcter) o bé un caràcter el valor del qual és el de X més 128, és a dir, amb el bit 7 activat.

Model de terminal i base de dades terminfo

Linux hereta d'UNIX un concepte clàssic: el sistema veu cada sessió com un tipus de terminal, que té unes característiques conegudes (tecles especials, capacitat de color, control de cursor, etc.). Encara que només tinguis un monitor i un teclat, per al nucli estàs connectat mitjançant un model concret de terminal.

Les capacitats de cada model de terminal es descriuen a la base de dades terminfo, ubicada normalment a /usr/share/terminfo/. Aquesta base conté fitxers organitzats en subdirectoris per lletra inicial (per exemple, el fitxer de vt100 es troba en un subdirectori el nom del qual comença per la primera lletra del terminal).

  Què puc fer per bloquejar l'accés a Facebook? Com eliminar l'accés restringit a Facebook?

Cada fitxer terminfo descriu el nom del terminal, àlies i un llistat enorme de capacitats: quines seqüències d'escapament corresponen a les tecles de funció, com es mou el cursor, com es netegen línies, etc. Un exemple típic de capçalera d'un terminal clàssic és com “vt100|vt100-am|dec vt100 (w/advanced video) …”.

Per interactuar amb les característiques del terminal des de la línia d'ordres, tens diverses eines:

stty: serveix per veure i ajustar paràmetres de la terminal (eco, control de flux, caràcters d'esborrament, etc.).

setterm: permet modificar atributs de la consola, com a comportament de vídeo, parpelleig, colors i altres. Si s'executa sense arguments, sol llistar totes les característiques que es poden ajustar al terminal actual.

tput: es recolza en terme per enviar seqüències de control estàndard al terminal, com netejar la pantalla, moure el cursor o canviar atributs, sense haver d'escriure manualment les seqüències ANSI.

Configuració del teclat a l'arrencada del sistema

Segons l'especificació Linux Standard Base (LSB), els scripts d'inici del sistema resideixen a /etc/init.d/ i són llançats directament o indirectament per /sbin/init, el procés pare de tots els altres. Dins aquesta estructura es defineixen els passos per inicialitzar el maquinari, xarxes, consoles i, és clar, el teclat.

Normalment, durant la seqüència d'arrencada s'executen scripts situats a /etc/init.d/boot.d/ o rutes equivalents segons la distribució. Aquests scripts s'encarreguen d'elements com ports sèrie, targetes de xarxa, rellotge CMOS, volums lògics i altres peces bàsiques. Al final, sol executar-se un script tipus /etc/init.d/boot.local per a ordres personalitzades de l'administrador.

Pel que fa al teclat de consola de text, moltes distribucions usen un fitxer de configuració com /etc/sysconfig/keyboard. S'hi especifiquen paràmetres clau, entre ells el mapa de teclat que es carregarà a l'arrencada i els paràmetres de repetició.

En aquest fitxer apareixen directives com:

KEYTABLE: indica el fitxer de mapa de teclat, generalment ubicat a /usr/share/kbd/keymaps/. Un valor típic podria ser “es.map.gz”, que assenyala un mapa per a teclat espanyol.

KBD_RATE y KBD_DELAY: defineixen la freqüència de repetició (per exemple de 2.0 a 30.0 caràcters per segon) i el retard inicial en mil·lisegons (250, 500, 750, 1000, etc.). Si voleu que el sistema executi l'ordre kbdrate a l'arrencada, heu d'establir els dos valors.

A més, hi ha ajustaments d'estat inicial de tecles com NumLock, ScrollLock i CapsLock, que es poden fixar a “yes”, “no” o “bios” (respectar la configuració del BIOS). Fins i tot hi ha una opció per desactivar la funcionalitat de bloqueig de majúscules i convertir la tecla Caps Lock en una altra tecla Shift normal.

La línia més important per al comportament general del teclat és la que defineix el mapa, una mica del tipus:

KEYTABLE=»ca.map.gz»

Aquest mapa determina què fa cada keycode, és a dir, quin caràcter o acció es generarà en prémer cada tecla en combinació amb els modificadors (Shift, AltGr, Control, etc.). A partir d'aquí, podeu ajustar en calent el comportament amb eines com loadkeys, dumpkeys, showkey i kbdrate.

Utilitats clau: showkey, loadkeys, dumpkeys i kbdrate

Un cop arrencat el sistema, tens a mà diverses eines potents per manipular el teclat en temps real. Són utilitats de consola que, usades amb cap, permeten adaptar el teclat a gairebé qualsevol necessitat.

showkey: serveix per comprovar quins codis genera realment el teclat. Amb showkey -s veus els scancodes tal com arriben del maquinari; amb showkey -k es mostren els keycodes que produeix la rutina del nucli després de la primera conversió.

loadkeys: carrega un nou mapa de teclat a les consoles virtuals. Requereix privilegis de root i cal fer-lo servir amb cautela, ja que afecta totes les TTY, inclosa la de login. Un mapa mal configurat pot fer molt complicat escriure la contrasenya o fins i tot iniciar sessió.

dumpkeys: permet inspeccionar el mapa de teclat actual i altres detalls relacionats, com ara definicions de funcions, composicions de caràcters i equivalències simbòliques. Amb opcions com dumpkeys –long-info, dumpkeys –funcs-only o dumpkeys –compose-only pots obtenir llistats molt detallats de com està armat el teu mapa.

kbdrate: és l'eina directa per canviar la velocitat de repetició i el retard inicial del teclat. A molts sistemes, els valors per defecte imiten l'estàndard de teclats IBM: uns 10 caràcters per segon i uns 250 ms de retard. Amb kbdrate els pots alterar sense reiniciar, i resulta útil per entendre opcions d'accessibilitat com ara tecles filtre a Windows.

Per exemple, per a un retard molt curt i una repetició ràpida, podries fer servir alguna cosa com:

kbdrate -d 200 -r 30

on -d marca el delai (en mil·lisegons) i -r la taxa de repetició (caràcters per segon). Si vols un comportament globalment més pausat, augmentes el delai o baixes la taxa, i si vols alguna cosa gairebé immediata, redueixes el delay a 200 ms o fins i tot menys, segons ho permeti el teu maquinari.

  8 Experts financers que són dones de gran èxit

El mapa de teclat: definició interna i modificadors

El “keymap” o mapa de teclat és el cor de la configuració avançada. Aquests mapes poden estar compilats al nucli o emmagatzemats com a fitxers de text a /usr/share/kbd/keymaps/, amb una configuració per defecte en arxius com /etc/defkeymap.map. Cada distribució sol portar col·leccions de mapes per a diferents idiomes i disposicions.

Els mapes de teclat defineixen, amb una sintaxi específica, què fa cada keycode en combinació amb diversos modificadors. En termes generals, es poden definir fins 256 accions diferents per a una mateixa tecla, associades a les possibles combinacions de modificadors (Shift, Alt, Control, AltGr, etc.).

Al fitxer de mapa s'usen línies de la forma:

keycode nombre = símbol símbol símbol …

El nombre és l'identificador intern de la tecla (keycode) que es pot expressar en decimal, octal o hexadecimal. El símbol (keysym) representa l'acció associada, que pot ser un caràcter, una seqüència de caràcters o una funció especial com Remove, Boot, Console_15 i moltes altres. Normalment no es fan servir codis numèrics directes, sinó constants simbòliques que es mantenen estables entre versions del nucli.

Els modificadors es tracten com a bits d'un octet, cadascun amb un pes específic. Per exemple, Shift pot tenir pes 1, AltGr pes 2, Control pes 4, Alt pes 8, i així successivament amb Shift esquerre, Shift dret, Control esquerre i Control dret. Quan prems una tecla, l'acció efectiva es decideix sumant els pesos dels modificadors actius i consultant la columna corresponent en la definició daquesta tecla.

Per exemple, si premeu una tecla amb Shift i Alt, la suma pot donar 9, i la definició a la columna 9 dicta què es generarà. Sense cap modificador, l'índex és 0 i es pren el primer símbol definit a la línia keycode.

Hi ha a més una marca especial, el signe + davant d'alguns símbols, que indica que s'han de tractar com a lletres, és a dir, que responen a Caps Lock i Shift. Un exemple típic:

keycode 30 = +a

de manera que s'indica que aquesta tecla genera una 'a' minúscula sense modificadors, 'A' si actuen majúscules, etc. Si es vol un comportament més particular, es pot definir explícitament la columna de majúscules, per exemple:

keycode 30 = +a A

Si en alguna combinació concretament no voleu que la tecla faci res, s'utilitza la paraula clau VoidSymbol. Per exemple, perquè una tecla només produeixi 'a' sense modificadors i res quan actuen certes combinacions, es podrien fer servir definicions on aquests casos es marquin amb VoidSymbol. A més, la sintaxi admet simplificacions: si es defineix un sol símbol i no és una lletra ASCII, s'assumeix que es replica a totes les columnes especificades.

Altres parts del mapa: includes, keymaps, charset, funcions i composició

Els fitxers de mapa de teclat no només contenen definicions de keycodes, també inclouen altres elements importants per al comportament general. Això permet modularitat, suport de diferents jocs de caràcters i definició de tecles de funció i combinacions daccents.

la directiva incloure permet incloure altres fitxers, de manera similar a un “import”. Això serveix per reutilitzar parts comunes en diversos mapes, com ara una taula d'accents o un conjunt de funcions estàndard.

la línia keymaps defineix quines columnes (índexs de modificadors) s'especifiquen al mapa. En lloc de llistar les 256 possibles, se solen indicar rangs com keymaps 0-2,4-5,8,12, el que significa que es fan servir les columnes 0,1,2,4,5,8 i 12 (normal, Shift, AltGr, Control, Control+Shift, Alt i Control+Alt). Si aquesta línia falta, s'assumeix que hi ha definicions des de 0 fins a M; M és el màxim índex trobat a les línies keycode.

Les definicions de jocs de caràcters es fan amb línies del tipus:

charset «iso-8859-2»

i determinen a quina pàgina de codis corresponen els valors numèrics dels caràcters. Per defecte se sol utilitzar ISO-8859-1 (Latin-1), però també se'n poden utilitzar d'altres, com ISO-8859-2 o ISO-8859-7. Això és rellevant per a símbols com la lletra grega mu o caràcters especials propis de determinats idiomes.

Les definicions de cadena utilitzen la sintaxi:

string keysym = «text»

i serveixen per associar tecles de funció o tecles especials a seqüències concretes de caràcters. Per exemple, podeu indicar que F1 envieu “ESC