Come impostare Colemak su Linux
Configura Colemak su console Linux, X11 e Wayland, senza toccare SSH. Scopri cosa cambia in Vim, nei tasti hjkl e nelle scorciatoie Ctrl.
Dove si trova il layout Colemak su Linux
Su Linux, Colemak 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 si imposta 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 tastiera con QMK o VIA, invia i codici delle lettere desiderate. In questo modo, ogni macchina a cui la si collega usa Colemak senza alcuna configurazione, inclusa la console di un server e una macchina che non si possiede. Il limite è che la tastiera del laptop continua a usare QWERTY.
Il resto della guida descrive i tre livelli software, spiega perché un server remoto quasi mai richiede uno di questi livelli e illustra 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. Visualizzano 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 visualizzare colemak e colemak_dh. Colemak è incluso in xkeyboard-config da anni. Colemak-DH è stato aggiunto nella versione 2.34, quindi può mancare solo in una release precedente. Ad agosto 2026, Ubuntu 24.04 e Debian 13 includono entrambi una versione più recente.
Se setxkbmap -query segnala che non riesce ad aprire un display, la sessione usa Wayland e il compositor gestisce il layout. Questo caso è trattato in una sezione dedicata più avanti.
Colemak o Colemak-DH
Colemak sposta diciassette tasti rispetto alle posizioni QWERTY e ne lascia invariati dieci, inclusi Z, X, C e V. Le scorciatoie per annullare, tagliare, copiare e incollare restano quindi dove la mano sinistra si aspetta di trovarle. È proprio questa compatibilità a determinare l’aspetto 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 mod ufficiale mantiene ogni lettera sullo stesso dito utilizzato in Colemak. Per chi già digita con Colemak, il passaggio a DH comporta quindi una modifica limitata e non l’apprendimento di un nuovo layout. La variante XKB è colemak_dh, mentre colemak_dh_iso si usa con le tastiere che hanno il tasto aggiuntivo accanto a Shift sinistro.
Chi proviene da QWERTY deve comunque affrontare un unico processo di riapprendimento. Scegli quindi il layout più comodo e mantienilo. Cambiare layout una seconda volta richiede un impegno simile al primo passaggio, perché si deve ricostruire la memoria motoria associata alle posizioni dei tasti.
Impostare Colemak in X11 con setxkbmap e localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query dovrebbe ora riportare 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 su disco; è quindi il modo 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, quindi modello e variante. localectl status dovrebbe ora mostrare X11 Layout: us e X11 Variant: colemak. localectl converte inoltre la scelta nella console keymap 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 poi /etc/default/keyboard, perché è il file letto da console-setup durante il boot.
Impostare Colemak su Wayland
Una sessione Wayland non dispone di un server X da configurare. Il compositor carica la mappa della tastiera e la passa a ogni applicazione, quindi il layout è un'impostazione del compositor. Per questo setxkbmap non funziona correttamente in questo contesto: non riesce a trovare un display oppure modifica solo 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 effettuare il logout. La stringa us+colemak contiene il layout e la variante, uniti 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, e aggiungere English (US) con la variante Colemak.
Impostare Colemak sulla console testuale
La console è il tty in testo semplice raggiungibile con Ctrl+Alt+F3 e usa una mappa dei tasti propria. Le impostazioni definite in X11 o in un compositor non si applicano alla console, aspetto importante se si lavora su una workstation terminale su una console virtuale senza ambiente grafico.
Su Debian e Ubuntu, modificare /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Quindi applicare la configurazione:
sudo setupconDigitare sulla console per verificare il risultato. console-setup converte questa descrizione XKB in una mappa dei tasti per la console tramite ckbcomp, quindi su questi sistemi la console e X utilizzano la stessa descrizione.
Nelle distribuzioni che usano direttamente le mappe dei tasti di kbd, cercare 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 ripristina la configurazione precedente. Usare loadkeys come test e non come configurazione definitiva: resta attivo fino al riavvio e, su Debian e Ubuntu, l’esecuzione di setupcon durante l’avvio ripristina il valore indicato da /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 attraverso la connessione. Il server riceve n e non può sapere quale tasto fisico lo abbia prodotto. Di conseguenza, il layout impostato sul laptop viene usato in ogni sessione SSH, in tmux e in ogni editor eseguito in remoto; la macchina remota non richiede alcuna configurazione della tastiera.
Tieni presente questo aspetto prima di iniziare a modificare i file della tastiera sui sistemi in produzione. Se gestisci una flotta di server Linux, il layout appartiene alla macchina che usi per collegarti, non alla flotta, quindi non deve essere incluso 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 del browser nel pannello del provider viene generalmente presentata alla macchina virtuale come una tastiera, quindi le pressioni dei tasti arrivano sotto forma di scancode e la keymap della console del server determina quale carattere viene visualizzato. Questo è l'unico caso in cui un layout impostato sul server ha effetto. È anche il percorso di ripristino quando SSH smette di funzionare, quindi una keymap della console lasciata a metà rappresenta un rischio concreto.
Una console seriale si comporta in modo diverso, perché trasmette caratteri e si applica il layout locale. La seconda eccezione è una macchina condivisa. La keymap della console è valida a livello di sistema, quindi impostare Colemak su una macchina a cui accedono altre persone la modifica anche per loro, che probabilmente non capiranno il motivo.
Cosa succede ai tasti hjkl di Vim
Con Colemak, h non sposta il cursore. Gli altri tre tasti continuano a farlo. j si trova sotto la Y di QWERTY, k sotto la N di QWERTY e l sotto la U di QWERTY; di conseguenza, i tasti di movimento 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. Non cambia nient'altro nella configurazione, tutti i plugin continuano a funzionare e ogni suggerimento su Vim scritto da altri resta applicabile esattamente come è stato scritto.
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 ha scambiato 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 al movimento verso sinistra. Le ultime due righe ripristinano i comandi sostituiti: l avvia la modalità insert e k ripete l'ultima ricerca. Applica la stessa modifica alle lettere maiuscole, altrimenti Shift più un tasto di movimento del cursore produrrà un comportamento inatteso.
L'opzione langmap di Vim svolge un compito simile con meno righe:
set langmap=nj,ek,il,li,knOgni coppia viene interpretata come il carattere digitato seguito dal carattere che Vim deve utilizzare. L'impostazione si applica solo alla modalità normal, quindi nella modalità insert il testo Colemak viene digitato normalmente. La documentazione integrata di Vim indica due limitazioni: langmap non si applica alle combinazioni con Ctrl o Alt e i mapping dei plugin basati sui tasti predefiniti possono comportarsi in modo anomalo quando questa opzione è attiva.
Qualunque soluzione tu scelga, adottala in modo definitivo. Abbandonare un remapping dopo un mese significa dover dedicare un altro mese a una nuova configurazione.
Cosa succede alle scorciatoie del terminale
Un codice di controllo del terminale dipende dal carattere, non dal tasto fisico. Di conseguenza, ogni scorciatoia Ctrl cambia posizione insieme al layout. Ctrl+C, Ctrl+Z, Ctrl+X e Ctrl+V mantengono la stessa posizione, perché Colemak lascia volutamente Z, X, C e V nelle posizioni che occupano in QWERTY.
Quattro scorciatoie di uso quotidiano cambiano posizione. Ctrl+D, che termina l'input, si trova ora nella posizione della G in QWERTY. Ctrl+R, che cerca nella cronologia, si trova nella posizione della S in QWERTY. Ctrl+E, che porta alla fine della riga, si trova nella posizione della K in QWERTY. Ctrl+U, che cancella la riga, si trova nella posizione della I in QWERTY.
tmux mantiene il prefisso predefinito, perché B non cambia posizione in Colemak. In Colemak-DH, B si sposta nella riga superiore e il prefisso si sposta con essa. È la prima cosa che noterai se mantieni una sessione tmux di lunga durata su un VPS. Riassegnare il prefisso a un tasto di tua scelta richiede una sola riga di configurazione ed è più semplice che riaddestrare due volte lo stesso riflesso.
Le scorciatoie del desktop seguono la stessa regola. Un'associazione a Super+E cambia posizione insieme al layout, perché è definita dal carattere. Un'associazione a Super+F1 resta nella stessa posizione, perché i tasti funzione non vengono rimappati dal layout.
Quanto tempo richiede il passaggio
Nessuno può indicare un tempo preciso per le proprie mani. La dattilografia 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.
Le esperienze riportate, che consistono in registri personali dell’esercizio e non in misurazioni controllate, indicano una prima settimana con una velocità molto inferiore alla metà di quella precedente e il ritorno alla velocità iniziale dopo un periodo compreso tra uno e tre mesi di utilizzo quotidiano. La variabilità tra le persone è ampia. Considera quindi queste cifre 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 Colemak sul computer principale. Iniziare durante una settimana intensa significa digitare male sotto pressione. Questo porta a guardare i tasti.
Prepara in anticipo il modo per tornare indietro. Il momento in cui vorrai di nuovo QWERTY sarà probabilmente quello in cui qualcosa si è guastato e qualcuno sta aspettando.
Come ripristinare rapidamente QWERTY
In X11, setxkbmap us ripristina immediatamente QWERTY. Nella console, sudo loadkeys us fa lo stesso. Per annullare l'impostazione persistente, esegui sudo localectl set-x11-keymap us.
Un commutatore è preferibile a un comando che devi digitare con un layout che non puoi ancora utilizzare:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleQuesto imposta Colemak come primo layout e US standard come secondo. Super+Space consente di alternare i due layout. La virgola finale in colemak, non è un errore: assegna la variante colemak al primo layout e nessuna variante al secondo. In GNOME, aggiungi entrambe le sorgenti di input nelle 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. Verificala disconnettendoti, invece di fidarti dell'impostazione. Se il disco è crittografato, la richiesta della passphrase viene eseguita dall'initramfs, che contiene una propria copia della mappa della tastiera. Su Debian e Ubuntu, ricrealo con sudo update-initramfs -u dopo avere modificato /etc/default/keyboard. Quindi riavvia una volta per eseguire il test, finché hai ancora un altro modo per accedere alla macchina.
Posso mantenere un programma su QWERTY?
Il layout viene applicato prima che un'applicazione riceva l'input da tastiera. Il server X o il compositor converte uno scancode in un carattere e passa il carattere all'applicazione, che quindi 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 cambio di layout generico per singola finestra da utilizzare.
Sono efficaci due approcci. Il primo riguarda il singolo dispositivo. Se la digitazione QWERTY avviene su una tastiera separata, imposta il layout su quel dispositivo anziché sull'intero sistema:
xinput list
setxkbmap -device 12 -layout usRicava l'id da xinput list e verifica il risultato digitando alternativamente su ciascuna tastiera. sway accetta le stesse impostazioni per ogni identificatore di input tramite swaymsg -t get_inputs; un selettore più specifico ha precedenza su type:keyboard.
Il secondo approccio consiste nell'eseguire la rimappatura all'interno dell'applicazione, come fa langmap di Vim. I giochi hanno quasi sempre una schermata per l'associazione 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 cambio di layout indicato sopra e attivalo prima di avviare l'applicazione.
FAQ
Devo impostare Colemak sul mio VPS?
No, se vi accedi tramite SSH. SSH trasmette i caratteri, quindi il layout viene risolto sul laptop prima dell'invio e il server riceve gli stessi byte che riceverebbe da chi digita con QWERTY. L'eccezione è la console del browser nel pannello del provider, che si collega alla macchina virtuale come una tastiera e usa la mappa della tastiera della console del server. Questa console è il percorso di ripristino quando SSH non funziona, quindi modificala solo se sei sicuro e testala mentre SSH funziona ancora.
Devo imparare Colemak o Colemak-DH?
In entrambi i casi devi reimparare una sola disposizione 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 richiede di digitare D e H allungando l'indice verso la colonna centrale. I nomi delle varianti XKB sono colemak e colemak_dh, mentre colemak_dh_iso è destinata alle tastiere con il tasto aggiuntivo accanto allo Shift sinistro. Esegui localectl list-x11-keymap-variants us | grep colemak per vedere quali varianti offre il sistema.
Cosa succede ai tasti hjkl di Vim con Colemak?
h rimane 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 reimpararli nelle nuove posizioni: in questo modo tutti i plugin e tutti i tutorial restano validi. In alternativa, puoi rimappare i quattro tasti sotto la mano destra: h, n, e i con Colemak, oppure m, n, e i con Colemak-DH. L'opzione langmap di Vim svolge la stessa funzione per la 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?
Considera 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 allunga i tempi, perché nessuno dei due riflessi riesce a stabilizzarsi.
Perché setxkbmap non ha prodotto alcun effetto sul desktop?
Quasi certamente perché la sessione usa Wayland. In Wayland il compositor gestisce la mappa della tastiera e la applica a ogni applicazione, quindi setxkbmap non riesce a trovare un display oppure modifica solo XWayland, mentre le applicazioni native lo ignorano. Imposta il layout nel compositor: usa la chiave gsettings org.gnome.desktop.input-sources in GNOME, xkb_variant nella configurazione di sway oppure la pagina Layout nelle Impostazioni di sistema di KDE Plasma.