Innanzitutto, la buona notizia
La console di sistema Linux ha assolutamente il proprio set di mappature della tastiera, che possono essere gestite utilizzando gli strumenti del kbd
pacchetto, in particolare dumpkeys
e showkey
per scoperta e loadkeys
caricare in una mappatura personalizzata. La domanda SuperUser Come cambiare la mappa dei tasti della console in Linux? ha una risposta con buone informazioni su come utilizzare questi strumenti.
Ora, le cattive notizie
Mentre è vero che quegli strumenti ti permetteranno di rimappare i tasti sulla console Linux, senza coinvolgere xmodmap
o richiedendo che X sia in esecuzione, lo faranno solo influenzare le mappature dei tasti sulla console di testo virtuale. Le modifiche non avranno assolutamente alcun effetto nell'ambiente grafico, perché il sistema XInput/evdev di X legge direttamente dai dispositivi di input ed esegue la propria elaborazione.
Quindi, se speravi di evitare di usare xmodmap
semplicemente rimappando sulla console e applicandolo ovunque, temo che non funzionerà. In effetti, dovresti rimappare entrambi la console (usando loadkeys
) e X11 (usando un metodo come xmodmap
), per utilizzare lo stesso layout di tastiera ovunque.
La soluzione all'xmodmap
lentezza (e bug, dal momento che le sue rimappature sono glitch e non persistenti negli ambienti desktop che utilizzano il cambio di layout) sarebbe definire un nuovo completamente layout di tastiera basato su qualsiasi layout utilizzato in precedenza, anziché applicare modifiche di runtime. All'avvio di X, caricheresti quel nuovo layout rimappato invece di quello che stai usando ora. (Sembra che ora questo sia l'unico modo per modificare in modo affidabile il layout della tastiera nelle recenti Ubuntu - e possibilmente altre distribuzioni - come il loro xmodmap
non è più utile.)
Per informazioni sulla definizione e l'utilizzo di un xkb
personalizzato layout di tastiera, vedi:
- Howto:definizioni personalizzate del layout di tastiera nel Wiki della community di Ubuntu.
- Come modificare un layout di tastiera in Linux, post sul blog di Romano Giannetti.
Entrambi sono stati scritti quest'anno (2014), quindi le informazioni dovrebbero essere aggiornate. Le informazioni del wiki di Ubuntu dovrebbero essere applicabili a qualsiasi distribuzione, per la maggior parte, dato che usano tutte xkb
sistema in X.
Esistono effettivamente modi per rimappare a un livello sufficientemente basso da essere applicato all'intero sistema, X11 o meno, e sono diventati più importanti che mai ora che stiamo assistendo all'adozione dei compositori Wayland che trascurano di esporre un'interfaccia utente per il rimappatura di libinput supporto.
Fondamentalmente devi riconfigurare il modo in cui il livello di input del kernel traduce i codici di scansione grezzi in codici chiave prima che raggiungano la console o l'API evdev su cui si trovano X11 e Wayland.
Sono a conoscenza di due modi per farlo:
-
Modifica il database hardware (
hwdb
) voce per la tastiera. udev ti consente di farlo aggiungendo i file delle regole a/etc/udev/hwdb.d/
e innescando una ricostruzione del database consystemd-hwdb update
, quindi forzandone l'applicazione senza un riavvio tramiteudevadm trigger
.Questa pagina ArchiWiki ha istruzioni complete e dice esplicitamente che funzionerà sia per X11 che per l'input della console.
-
C'è un demone chiamato evdevremapkeys che è stato specificamente scritto per rimappare gli eventi chiave sui dispositivi evdev al supporto della rimappatura delle patch delle scimmie nei client evdev che non li supportano, come i compositori Wayland.
Fondamentalmente utilizza lo stesso approccio dei driver dello spazio utente come G15Daemon che devono compensare i dispositivi di input non standard. (Apri il dispositivo evdev, ingoia tutti gli eventi che intende rimappare, in modo che nient'altro in ascolto sul dispositivo possa vederli, quindi emetti gli eventi corretti tramite
uinput
API per la creazione di dispositivi di input a livello di kernel dallo spazio utente.)