Come impostare Colemak su Linux
Configura Colemak nella console Linux, in X11 o su Wayland. Scopri perché SSH non richiede un layout e cosa cambia per Vim, hjkl e i tasti Ctrl.
Dove si trova il layout Colemak su Linux
Colemak su Linux non è un'impostazione unica a livello di sistema. Il layout viene applicato dal componente che in quel momento legge la tastiera, quindi si trova in uno di tre livelli: la console testuale, il server X11 oppure il compositor Wayland. Se lo imposti nel livello sbagliato, non sembra accadere nulla.
Esiste una quarta opzione che esclude completamente il sistema operativo. Una tastiera che rimappa i tasti nel proprio firmware, ad esempio una scheda con QMK o VIA, invia i codici delle lettere desiderate. In questo modo ogni macchina a cui la colleghi utilizza Colemak senza alcuna configurazione, inclusa una console server e una macchina che non possiedi. Lo svantaggio è che la tastiera del laptop continua a utilizzare QWERTY.
Il resto della guida tratta i tre livelli software, spiega perché un server remoto quasi non ha mai bisogno di configurarli e descrive gli effetti del cambio su Vim e sulle scorciatoie del terminale.
Verifica ciò che è già presente nel sistema
Esegui questi comandi prima di modificare qualsiasi impostazione. Mostrano la configurazione corrente e l’elenco delle varianti Colemak disponibili nel database della tastiera X.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakL’ultimo comando dovrebbe mostrare colemak e colemak_dh. Colemak è presente in xkeyboard-config da anni. Colemak-DH è stato aggiunto nella versione 2.34, quindi sarà assente solo nelle release meno recenti. Ad agosto 2026, Ubuntu 24.04 e Debian 13 includono entrambe una versione più recente.
Se setxkbmap -query segnala che non riesce ad aprire un display, stai usando una sessione Wayland e il compositore gestisce il layout. Questo caso è descritto in una sezione dedicata più avanti.
Colemak o Colemak-DH
Colemak sposta diciassette tasti rispetto alle posizioni QWERTY e ne lascia invariati dieci, tra cui Z, X, C e V. In questo modo le scorciatoie per annullare, tagliare, copiare e incollare restano dove la mano sinistra si aspetta di trovarle. Questa compatibilità spiega interamente la struttura del layout.
Colemak-DH è una modifica di Colemak. Sposta D, B e G e scambia H con M, perché Colemak standard richiede di digitare sia D sia H allungando un dito indice verso la colonna centrale della tastiera. La modifica ufficiale mantiene ogni lettera sullo stesso dito usato in Colemak. Di conseguenza, chi digita con Colemak e passa a DH deve abituarsi a un cambiamento limitato, non a un nuovo layout. La variante XKB è colemak_dh, mentre colemak_dh_iso è destinata alle tastiere con il tasto aggiuntivo accanto a Shift sinistro.
Per chi proviene da QWERTY, entrambe richiedono un unico periodo di riapprendimento. Scegli quella più comoda e non cambiare più. Passare a un secondo layout richiede quasi lo stesso impegno del primo passaggio, perché si sta ricostruendo la memoria motoria associata alle posizioni dei tasti. Se il dubbio è ancora se abbandonare QWERTY, risolvilo leggendo come si confrontano Colemak, Dvorak e QWERTY prima di dedicare un mese alla ricostruzione di quella memoria motoria.
Impostare Colemak in X11 con setxkbmap e localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query dovrebbe ora restituire variant: colemak e la digitazione in qualsiasi finestra dovrebbe produrre le lettere Colemak. La modifica resta attiva per tutta la durata della sessione X e non scrive nulla sul disco. È quindi il metodo più sicuro per provare il layout per un'ora.
Per mantenerla dopo i riavvii:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusL'ordine degli argomenti è layout, poi modello, quindi variante. localectl status dovrebbe ora mostrare X11 Layout: us e X11 Variant: colemak. localectl converte inoltre la scelta nella keymap della console più vicina, a meno che non si aggiunga --no-convert. Su molti sistemi, quindi, questo singolo comando configura anche il tty. Su Debian e Ubuntu, controllare successivamente /etc/default/keyboard, perché è il file letto da console-setup all'avvio.
Impostare Colemak su Wayland
Una sessione Wayland non dispone di un server X da configurare. Il compositor carica la mappa della tastiera e la applica a ogni applicazione, quindi il layout è un'impostazione del compositor. Per questo setxkbmap sembra non funzionare: non riesce a trovare un display oppure modifica soltanto XWayland, mentre le applicazioni Wayland native lo ignorano.
Su GNOME l'impostazione è una chiave gsettings:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"L'impostazione viene applicata immediatamente, senza disconnettersi. La stringa us+colemak contiene il layout e la variante separati da un segno più.
Su sway, inserire l'impostazione in ~/.config/sway/config:
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}Ricaricare la configurazione con swaymsg reload. swaymsg -t get_inputs elenca tutti i dispositivi di input e il layout in uso. È il controllo da eseguire quando il problema riguarda una sola tastiera.
Su KDE Plasma, aprire Impostazioni di sistema, quindi Tastiera e Layout, poi aggiungere English (US) con la variante Colemak.
Impostare Colemak sulla console testuale
La console è il tty in testo semplice che si raggiunge con Ctrl+Alt+F3 e usa una propria mappa di tastiera. Le impostazioni definite in X11 o in un compositor non si applicano alla console, un aspetto importante se si lavora su un terminale di lavoro in una console virtuale senza ambiente grafico.
Su Debian e Ubuntu, modificare /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Applicare quindi la modifica:
sudo setupconDigitare sulla console per verificare. console-setup converte questa descrizione XKB in una mappa di tastiera per la console con ckbcomp, quindi su questi sistemi la console e X usano la stessa descrizione.
Nelle distribuzioni che usano direttamente le mappe di tastiera di kbd, verificare prima il nome:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9Il pacchetto kbd include la mappa Colemak per la console come i386/colemak/en-latin9, quindi il nome da passare è in genere en-latin9 e non colemak. Passare un nome presente nell'elenco, perché un nome inesistente viene rifiutato.
sudo loadkeys en-latin9 modifica immediatamente la console corrente, mentre sudo loadkeys us la ripristina. Usare loadkeys come test e non come configurazione: resta attivo fino al riavvio e, su Debian e Ubuntu, l'esecuzione di setupcon durante l'avvio ripristina il valore definito in /etc/default/keyboard.
Un VPS headless ha bisogno del layout Colemak?
Quasi mai, e vale la pena capire il motivo. SSH trasmette caratteri, non posizioni dei tasti. L'emulatore di terminale riceve la pressione del tasto, il layout locale la converte in un carattere e solo quel carattere viaggia sulla connessione. Il server riceve n e non può sapere quale tasto fisico lo abbia prodotto. Di conseguenza, il layout configurato sul laptop viene usato in ogni sessione SSH, in tmux e in ogni editor eseguito da remoto; la macchina remota non richiede alcuna configurazione della tastiera.
Tienilo presente prima di iniziare a modificare i file della tastiera sui sistemi di produzione. Se gestisci un parco di server Linux, il layout appartiene alla macchina che usi per collegarti, non al parco di server, quindi non deve rientrare nel provisioning. I primi dieci minuti su un nuovo VPS sono più utili di questa attività.
È opportuno pianificare due eccezioni. La prima è una console collegata direttamente alla macchina. La console nel browser del pannello del provider viene in genere presentata alla macchina virtuale come una tastiera, quindi le pressioni dei tasti arrivano come scancode e la keymap della console del server decide quale carattere visualizzare. Questo è l'unico caso in cui un layout configurato sul server ha effetto. È anche il percorso di recupero quando SSH smette di funzionare, quindi una keymap della console lasciata a metà costituisce un rischio concreto.
Una console seriale si comporta in modo diverso, perché trasmette caratteri e applica il layout locale. La seconda eccezione è una macchina condivisa. La keymap della console è valida a livello di sistema, quindi impostare Colemak su un server al quale accedono altre persone la modifica anche per loro, che non capiranno il motivo.
Che cosa succede ai tasti hjkl di Vim
Con Colemak, h non sposta il cursore. Gli altri tre sì. j si trova sotto la Y di QWERTY, k sotto la N di QWERTY e l sotto la U di QWERTY; quindi i tasti di spostamento del cursore sono distribuiti su tre righe invece di trovarsi sotto quattro dita.
Esistono due soluzioni praticabili, entrambe adottate da utenti reali.
Mantieni le impostazioni predefinite e reimpara le posizioni. Il resto della configurazione non cambia, tutti i plugin continuano a funzionare e ogni suggerimento su Vim scritto da altri resta applicabile esattamente come prima.
In alternativa, rimappa i quattro tasti che si trovano sotto la mano destra, nella posizione occupata in precedenza da hjkl. Con Colemak, questi tasti producono h, n, e e i. Con Colemak-DH, gli stessi quattro tasti fisici producono m, n, e e i, perché DH scambia H con M.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nn ora sposta il cursore verso il basso, e verso l'alto, i verso destra e h era già associato allo spostamento verso sinistra. Le ultime due righe ripristinano i comandi sostituiti: l avvia la modalità di inserimento e k ripete l'ultima ricerca. Applica la stessa modifica alle lettere maiuscole, altrimenti Shift più un tasto di spostamento del cursore avrà un comportamento inatteso.
L'opzione langmap di Vim svolge un compito simile con meno righe:
set langmap=nj,ek,il,li,knOgni coppia indica il carattere digitato seguito dal carattere che Vim deve interpretare. L'impostazione si applica solo alla modalità normale, quindi nella modalità di inserimento il testo Colemak viene ancora digitato normalmente. La documentazione integrata di Vim indica due limitazioni: langmap non si applica alle combinazioni con Ctrl o Alt e le mappature dei plugin basate sui tasti predefiniti possono avere un comportamento anomalo.
Qualunque soluzione tu scelga, adottala in modo stabile. Abbandonare una rimappatura dopo un mese significa dover dedicare un altro mese all'apprendimento della soluzione successiva.
Cosa succede alle scorciatoie del terminale
Un codice di controllo del terminale proviene dal carattere, non dal tasto fisico. Di conseguenza, ogni scorciatoia Ctrl si sposta insieme al layout. Ctrl+C, Ctrl+Z, Ctrl+X e Ctrl+V mantengono la propria posizione, perché Colemak lascia intenzionalmente Z, X, C e V nelle stesse posizioni di QWERTY.
Quattro scorciatoie di uso quotidiano invece cambiano posizione. Ctrl+D, che termina l'input, si trova ora dove QWERTY ha G. Ctrl+R, la ricerca nella cronologia, si trova dove QWERTY ha S. Ctrl+E, che porta alla fine della riga, si trova dove QWERTY ha K. Ctrl+U, che cancella la riga, si trova dove QWERTY ha I.
tmux mantiene il prefisso predefinito, perché B non cambia posizione in Colemak. In Colemak-DH, B si sposta nella riga superiore e il prefisso lo segue. È la prima cosa che noterai se mantieni una sessione tmux di lunga durata su un VPS. Ridefinire il prefisso associandolo a un tasto che preferisci richiede una sola riga ed è più semplice che rieducare lo stesso riflesso due volte.
Le scorciatoie del desktop seguono la stessa regola. Un'associazione a Super+E si sposta insieme al layout, perché è definita dal carattere. Un'associazione a Super+F1 rimane nella stessa posizione, perché i tasti funzione non vengono rimappati dal layout.
Quanto tempo richiede il passaggio
Nessuno può indicare un valore preciso per le proprie mani. La digitazione a tocco si basa sulla memoria motoria. Non stai imparando dove si trovano le lettere: stai ricostruendo il riflesso che trasforma una parola in una sequenza di movimenti delle dita. Per questo, l’unico fattore utile è il tempo trascorso a digitare.
Secondo le esperienze riportate dagli utenti, che sono registri di esercitazione personali e non misurazioni controllate, nella prima settimana la velocità è spesso molto inferiore alla metà di quella precedente. Il ritorno alla velocità iniziale avviene generalmente dopo un periodo compreso tra uno e tre mesi di utilizzo quotidiano. La variabilità tra le persone è ampia. Considera quindi questi valori come un andamento indicativo, non come una tabella di marcia.
Due abitudini rallentano il processo. Alternare QWERTY e Colemak durante la giornata mantiene deboli entrambi i riflessi. Per questo, la maggior parte delle persone che completa il passaggio utilizza esclusivamente il nuovo layout sul computer principale. Iniziare durante una settimana impegnativa porta a digitare male sotto pressione. Questo può abituarti a guardare i tasti.
Configura il metodo per tornare indietro prima di averne bisogno. Il momento in cui vorrai nuovamente QWERTY sarà probabilmente quello in cui qualcosa si è guastato e qualcuno sta aspettando.
Come tornare rapidamente a QWERTY
In X11, setxkbmap us ripristina immediatamente QWERTY. Nella console, sudo loadkeys us fa lo stesso. Per annullare l'impostazione persistente, eseguire sudo localectl set-x11-keymap us.
Un metodo di commutazione è preferibile a un comando che si deve digitare utilizzando un layout che non si riesce ancora a usare:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleQuesto carica Colemak come primo layout e US standard come secondo; Super+Space permette di alternarli. La virgola finale in colemak, non è un errore di battitura: assegna la variante colemak al primo layout e nessuna variante al secondo. In GNOME, aggiungere entrambe le sorgenti di input in Impostazioni, dove Super+Space consente già di alternarle.
Due richieste di password vengono gestite al di fuori della sessione desktop e richiedono verifiche separate. La schermata di accesso viene avviata prima dell'applicazione delle impostazioni della sessione; per verificarla, effettuare il logout invece di fare affidamento sull'impostazione. Se il disco è cifrato, la richiesta della passphrase viene eseguita dall'initramfs, che contiene una propria copia del keymap. Su Debian e Ubuntu, ricrearlo con sudo update-initramfs -u dopo avere modificato /etc/default/keyboard, quindi riavviare una volta per eseguire il test mentre si dispone ancora di un altro metodo per accedere alla macchina.
Posso mantenere un solo programma su QWERTY?
Il layout viene applicato prima che un'applicazione riceva l'input. Il server X o il compositor converte uno scancode in un carattere e passa il carattere all'applicazione, quindi un'applicazione non può richiedere un layout diverso. Può soltanto rimappare ciò che riceve. Per questo la correzione per Vim si trova nella configurazione di Vim e non esiste un commutatore generico del layout per singola finestra da utilizzare.
Sono disponibili due approcci. Il primo è applicare il layout per dispositivo. Se la digitazione QWERTY avviene su una tastiera separata, imposta il layout su quel dispositivo invece che a livello di sistema:
xinput list
setxkbmap -device 12 -layout usRicava l'ID da xinput list e verifica il risultato digitando a turno su ciascuna tastiera. sway accetta le stesse impostazioni per identificatore di input tramite swaymsg -t get_inputs; un selettore più specifico ha la precedenza su type:keyboard.
Il secondo approccio consiste nell'eseguire la rimappatura all'interno dell'applicazione, come fa langmap di Vim. I giochi offrono quasi sempre una schermata per la configurazione dei tasti; rimappare lì i tasti di movimento richiede meno tempo che gestire il layout dall'esterno. Per le applicazioni che non offrono questa funzione, configura il commutatore del layout indicato sopra e attivalo prima di avviarle.
FAQ
Devo impostare Colemak sul mio VPS?
No, se vi accedi tramite SSH. SSH trasmette i caratteri, quindi il layout viene determinato sul laptop prima dell'invio e il server riceve gli stessi byte che riceverebbe da chi usa QWERTY. Fa eccezione la console del browser nel pannello del provider, che si collega alla macchina virtuale come una tastiera e usa la keymap della console del server. Questa console è il percorso di ripristino quando SSH non funziona, quindi cambiala soltanto se sei sicuro e testala mentre SSH è ancora operativo.
Devo imparare Colemak o Colemak-DH?
Entrambi richiedono di reimparare la digitazione partendo da QWERTY, quindi scegli in base al comfort e non al costo della migrazione. Colemak-DH sposta D, B e G e scambia H con M, perché Colemak standard assegna D e H a un allungamento dell'indice verso la colonna centrale. I nomi delle varianti XKB sono colemak e colemak_dh, mentre colemak_dh_iso è destinato alle tastiere che hanno il tasto aggiuntivo accanto allo shift sinistro. Esegui localectl list-x11-keymap-variants us | grep colemak per vedere quali varianti sono disponibili sul sistema.
Cosa succede ai tasti hjkl di Vim con Colemak?
h resta nella stessa posizione. j si sposta sotto la Y di QWERTY, k sotto la N di QWERTY e l sotto la U di QWERTY, quindi i tasti del cursore si distribuiscono su tre righe. Puoi reimparare a usarli nelle nuove posizioni, mantenendo così validi tutti i plugin e tutti i tutorial, oppure rimappare i quattro tasti sotto la mano destra: h, n, e e i con Colemak, e m, n, e e i con Colemak-DH. L'opzione langmap di Vim svolge lo stesso compito in modalità normale, ma non si applica alle combinazioni con Ctrl e può creare conflitti con le mappature dei plugin.
Quanto tempo serve per tornare alla velocità di digitazione precedente?
Prevedi settimane, non giorni, perché si tratta di memoria motoria e l'unico metodo è fare pratica. I registri di pratica pubblicati dagli utenti descrivono spesso una prima settimana a meno della metà della velocità precedente e il ritorno a quella velocità dopo uno o tre mesi di uso quotidiano. Alternare QWERTY e Colemak ogni giorno prolunga il periodo, perché nessuno dei due riflessi ha il tempo di consolidarsi.
Perché setxkbmap non ha prodotto alcun effetto sul desktop?
Quasi certamente perché la sessione usa Wayland. In Wayland il compositor gestisce la keymap e la applica a ogni applicazione, quindi setxkbmap o non riesce a trovare un display oppure modifica soltanto XWayland, mentre le applicazioni native la ignorano. Imposta il layout direttamente nel compositor: tramite la chiave gsettings org.gnome.desktop.input-sources in GNOME, tramite xkb_variant nella configurazione di sway oppure dalla pagina Layout delle Impostazioni di sistema di KDE Plasma.