SSD Nodes Learn Hosting plans →
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-28

Jak ustawić układ klawiatury Colemak w systemie Linux

Konfiguracja układu Colemak w konsoli, X11 oraz Wayland. Dowiedz się, jak zmiana wpływa na skróty w edytorze Vim oraz dlaczego serwery SSH nie wymagają modyfikacji mapowania.

Gdzie w systemie Linux znajduje się układ klawiatury Colemak

Układ Colemak w systemie Linux nie jest pojedynczym ustawieniem systemowym. Układ jest stosowany przez komponent, który w danej chwili odczytuje sygnały z klawiatury, dlatego znajduje się w jednym z trzech miejsc: konsoli tekstowej, serwerze X11 lub kompozytorze Wayland. Ustawienie go w niewłaściwym miejscu sprawi, że zmiany nie będą widoczne.

Czwarta opcja pozwala całkowicie pominąć system operacyjny. Klawiatura z mapowaniem wewnątrz własnego oprogramowania układowego, taka jak urządzenie z QMK lub VIA, wysyła kody żądanych znaków. Dzięki temu każda maszyna, do której zostanie podłączona, obsługuje układ Colemak bez żadnej konfiguracji, w tym konsola serwera oraz urządzenia, których nie jesteś właścicielem. Wadą tego rozwiązania jest to, że wbudowana klawiatura laptopa nadal będzie działać w układzie QWERTY.

Dalsza część tego przewodnika omawia trzy warstwy programowe, powód, dla którego zdalny serwer prawie nigdy nie wymaga żadnej z nich, oraz wpływ zmiany układu na edytor Vim i skróty terminalowe.

Sprawdzenie bieżącej konfiguracji systemu

Polecenia te należy wykonać przed wprowadzeniem jakichkolwiek zmian. Wyświetlają one aktualne ustawienia oraz listę wariantów układu Colemak dostępnych w bazie danych klawiatur X.

localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemak

Ostatnie polecenie powinno wyświetlić colemak oraz colemak_dh. Układ Colemak znajduje się w pakiecie xkeyboard-config od wielu lat. Wariant Colemak-DH został dodany w wersji 2.34, więc jego brak dotyczy tylko bardzo starych wydań systemu. Według stanu na sierpień 2026, systemy Ubuntu 24.04 oraz Debian 13 zawierają nowszą wersję pakietu.

Jeśli polecenie setxkbmap -query zwróci błąd informujący o braku możliwości otwarcia wyświetlacza, oznacza to pracę w sesji Wayland, gdzie za układ klawiatury odpowiada kompozytor. Ten przypadek został opisany w osobnej sekcji poniżej.

Colemak lub Colemak-DH

Układ Colemak zmienia położenie siedemnastu klawiszy względem QWERTY i pozostawia dziesięć bez zmian, w tym Z, X, C oraz V. Dzięki temu skróty cofania, wycinania, kopiowania i wklejania pozostają w miejscach, w których oczekuje ich lewa dłoń. Ta kompatybilność jest głównym powodem, dla którego układ wygląda w ten sposób.

Colemak-DH to modyfikacja układu Colemak. Przenosi ona klawisze D, B i G oraz zamienia miejscami H z M, ponieważ w standardowym układzie Colemak zarówno D, jak i H wpisuje się poprzez wyciągnięcie palca wskazującego do środkowej kolumny klawiatury. Oficjalna modyfikacja zachowuje przypisanie każdej litery do tego samego palca, co w układzie Colemak, więc użytkownik przechodzący na DH napotyka jedynie niewielką zmianę, a nie uczy się układu od nowa. Wariant XKB to colemak_dh, a dla klawiatur posiadających dodatkowy klawisz obok lewego Shift dostępny jest colemak_dh_iso.

Przechodząc z QWERTY, w obu przypadkach czeka użytkownika jednorazowy proces nauki, dlatego należy wybrać układ zapewniający większy komfort i na tym poprzestać. Kolejna zmiana układu kosztuje tyle samo wysiłku co pierwsza, ponieważ proces ten polega na odbudowie pamięci mięśniowej powiązanej z fizycznym położeniem klawiszy. Jeśli kwestią otwartą pozostaje to, czy w ogóle rezygnować z QWERTY, warto rozstrzygnąć ją, sprawdzając porównanie układów Colemak, Dvorak i QWERTY przed poświęceniem miesiąca na odbudowę pamięci mięśniowej.

Ustawienie układu Colemak w X11 za pomocą setxkbmap oraz localectl

setxkbmap us -variant colemak
setxkbmap -query

setxkbmap -query powinien teraz zwracać variant: colemak, a pisanie w dowolnym oknie powinno generować znaki zgodnie z układem Colemak. Zmiana trwa przez czas trwania sesji X i nie zapisuje żadnych danych na dysku, co czyni tę metodę bezpiecznym sposobem na przetestowanie układu.

Aby zachować ustawienia po restarcie systemu:

sudo localectl set-x11-keymap us pc105 colemak
localectl status

Kolejność argumentów to układ, model, a następnie wariant. localectl status powinno teraz wyświetlać X11 Layout: us oraz X11 Variant: colemak. Narzędzie localectl konwertuje również wybór na najbardziej zbliżony układ klawiatury konsolowej, chyba że dodano flagę --no-convert, więc w wielu systemach to pojedyncze polecenie obejmuje również tty. W systemach Debian oraz Ubuntu należy po wykonaniu operacji sprawdzić plik /etc/default/keyboard, ponieważ to z niego korzysta console-setup podczas startu systemu.

Ustawianie układu Colemak w środowisku Wayland

Sesja Wayland nie korzysta z serwera X do konfiguracji. Kompozytor wczytuje mapę klawiszy i przekazuje ją do każdej aplikacji, dlatego układ klawiatury jest ustawieniem kompozytora. Z tego powodu polecenie setxkbmap nie działa poprawnie: albo nie znajduje wyświetlacza, albo zmienia układ tylko dla XWayland, podczas gdy natywne aplikacje Wayland ignorują to ustawienie.

W środowisku GNOME ustawienie to jest kluczem gsettings:

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"

Zmiana jest stosowana natychmiast, bez konieczności wylogowania. Ciąg znaków us+colemak to nazwa układu oraz wariant połączone znakiem plusa.

W środowisku sway należy umieścić odpowiedni wpis w ~/.config/sway/config:

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

Przeładuj konfigurację za pomocą swaymsg reload. Polecenie swaymsg -t get_inputs wyświetla listę wszystkich urządzeń wejściowych wraz z używanym przez nie układem; jest to test, który należy wykonać, gdy tylko jedna klawiatura działa nieprawidłowo.

W środowisku KDE Plasma należy otworzyć Ustawienia systemowe, przejść do sekcji Klawiatura, następnie Układy i dodać układ angielski (US) z wariantem Colemak.

Ustawienie układu Colemak w konsoli tekstowej

Konsola to tekstowy interfejs tty dostępny po naciśnięciu Ctrl+Alt+F3, który posiada własną mapę klawiatury. Ustawienia wprowadzone w X11 lub w kompozytorze nie mają na nią wpływu, co jest istotne w przypadku pracy na terminalu na czystej konsoli wirtualnej.

W systemach Debian i Ubuntu należy edytować plik /etc/default/keyboard:

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""

Następnie należy zastosować zmiany:

sudo setupcon

Należy przetestować układ na konsoli, aby potwierdzić działanie. Pakiet console-setup konwertuje opis XKB na mapę klawiatury konsoli za pomocą ckbcomp, dzięki czemu konsola i środowisko X współdzielą ten sam opis w tych systemach.

W dystrybucjach korzystających bezpośrednio z map klawiatury kbd, najpierw należy sprawdzić nazwę układu:

localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9

Pakiet kbd dostarcza mapę konsolową Colemak jako i386/colemak/en-latin9, dlatego zazwyczaj przekazuje się nazwę en-latin9, a nie colemak. Należy podać nazwę, która znajduje się na liście, ponieważ nieistniejąca nazwa zostanie odrzucona.

Polecenie sudo loadkeys en-latin9 zmienia bieżącą konsolę natychmiast, a sudo loadkeys us przywraca poprzedni stan. Polecenie loadkeys należy traktować jako test, a nie jako trwałą konfigurację: zmiana obowiązuje do restartu, a w systemach Debian i Ubuntu uruchamiane podczas startu polecenie setupcon przywraca ustawienia zdefiniowane w /etc/default/keyboard.

Czy bezgłowy VPS wymaga układu klawiatury Colemak?

Prawie nigdy, a powód jest istotny z punktu widzenia administracji. Protokół SSH przesyła znaki, a nie fizyczne położenie klawiszy. Emulator terminala odbiera naciśnięcie klawisza, lokalny układ klawiatury zamienia je na znak i tylko ten znak jest przesyłany przez połączenie. Serwer otrzymuje n bez możliwości ustalenia, który fizyczny klawisz został użyty. Z tego powodu układ klawiatury ustawiony na laptopie jest używany w każdej sesji SSH, wewnątrz tmux oraz w każdym edytorze uruchomionym zdalnie, a maszyna zdalna nie wymaga żadnej konfiguracji klawiatury.

Należy o tym pamiętać przed przystąpieniem do edycji plików klawiatury na serwerach produkcyjnych. Jeśli zarządzasz flotą serwerów Linux, układ klawiatury dotyczy urządzenia, przy którym siedzisz, a nie samej floty, więc nie powinien być częścią procesu wdrażania (provisioning). Pierwsze dziesięć minut na nowym VPS zawiera bardziej użyteczne zadania niż ta konfiguracja.

Warto zaplanować dwa wyjątki. Pierwszym jest konsola podłączona bezpośrednio do maszyny. Konsola przeglądarkowa w panelu dostawcy zazwyczaj przedstawia się maszynie wirtualnej jako klawiatura, więc naciśnięcia klawiszy docierają jako kody skanowania (scancodes), a mapa klawiatury konsoli serwera decyduje o tym, jaki znak zostanie wyświetlony. Jest to jedyne miejsce, w którym układ ustawiony na serwerze ma znaczenie; jest to również droga ratunkowa w przypadku awarii SSH, więc niekompletna mapa klawiatury konsoli stanowi realne ryzyko.

Konsola szeregowa (serial console) zachowuje się inaczej, ponieważ przesyła znaki, a zastosowanie ma lokalny układ klawiatury użytkownika. Drugim wyjątkiem jest maszyna współdzielona. Mapa klawiatury konsoli jest ustawieniem systemowym, więc ustawienie Colemak na serwerze, do którego logują się inni użytkownicy, zmieni układ również dla nich, co może być dla nich niezrozumiałe.

Co dzieje się z klawiszami hjkl w Vim

W układzie Colemak klawisz h nie powoduje ruchu kursora. Pozostałe trzy działają. Klawisz j znajduje się pod klawiszem Y z układu QWERTY, k pod klawiszem N, a l pod klawiszem U. W rezultacie klawisze sterowania kursorem są rozproszone w trzech rzędach, zamiast znajdować się pod czterema palcami.

Istnieją dwa praktyczne rozwiązania, z których oba mają swoich zwolenników.

Można zachować ustawienia domyślne i nauczyć się nowych pozycji. W takiej konfiguracji nic innego nie ulega awarii, wszystkie wtyczki działają poprawnie, a każda porada dotycząca Vim napisana przez innych użytkowników pozostaje w pełni aktualna.

Alternatywnie można zmapować cztery klawisze znajdujące się pod prawą dłonią w miejscu, gdzie wcześniej znajdowały się hjkl. W układzie Colemak klawisze te generują h, n, e oraz i. W układzie Colemak-DH te same cztery fizyczne klawisze generują m, n, e oraz i, ponieważ wariant DH zamienia miejscami H oraz M.

noremap n j
noremap e k
noremap i l
noremap l i
noremap k n

Klawisz n odpowiada teraz za ruch w dół, e za ruch w górę, i za ruch w prawo, a h już wcześniej odpowiadał za ruch w lewo. Ostatnie dwie linie przywracają polecenia, które zostały zastąpione: l uruchamia tryb wstawiania, a k powtarza ostatnie wyszukiwanie. Należy zastosować to samo podejście dla wielkich liter, w przeciwnym razie użycie klawisza Shift w połączeniu z klawiszem kursora wywoła nieoczekiwane zachowanie.

Opcja langmap w Vim realizuje podobne zadanie przy użyciu mniejszej liczby linii:

set langmap=nj,ek,il,li,kn

Każda para jest interpretowana jako znak wpisany oraz znak, na którym Vim ma wykonać operację. Dotyczy to wyłącznie trybu normalnego, dzięki czemu w trybie wstawiania tekst w układzie Colemak jest wpisywany w sposób standardowy. Dokumentacja pomocy Vim wskazuje na dwa ograniczenia: langmap nie ma zastosowania do kombinacji z klawiszami Ctrl lub Alt, a mapowania wtyczek oparte na domyślnych klawiszach mogą w tym trybie działać w sposób nieprzewidywalny.

Niezależnie od wyboru, należy podjąć go raz. Porzucenie mapowania po miesiącu użytkowania skutkuje koniecznością poświęcenia kolejnego miesiąca na naukę.

Co dzieje się ze skrótami terminalowymi

Kod sterujący terminala pochodzi ze znaku, a nie z fizycznego klawisza, dlatego każdy skrót Ctrl przemieszcza się wraz z układem klawiatury. Skróty Ctrl+C, Ctrl+Z, Ctrl+X oraz Ctrl+V zachowują swoje pozycje, ponieważ Colemak celowo pozostawia klawisze Z, X, C i V w miejscach, w których znajdują się one w układzie QWERTY.

Cztery skróty używane codziennie zmieniają swoje położenie. Ctrl+D, kończący wprowadzanie danych, znajduje się teraz w miejscu klawisza G w układzie QWERTY. Ctrl+R, służący do przeszukiwania historii, znajduje się w miejscu klawisza S. Ctrl+E, przenoszący kursor na koniec linii, znajduje się w miejscu klawisza K. Ctrl+U, czyszczący linię, znajduje się w miejscu klawisza I.

tmux zachowuje swój domyślny prefiks, ponieważ klawisz B nie zmienia położenia w układzie Colemak. W układzie Colemak-DH klawisz B przenosi się do górnego rzędu, a wraz z nim przemieszcza się prefiks, co jest pierwszą rzeczą, którą zauważysz, jeśli utrzymujesz długo działającą sesję tmux na VPS. Zmiana przypisania prefiksu na wybrany klawisz to modyfikacja jednowierszowa i jest łatwiejsza niż dwukrotne uczenie się tego samego odruchu.

Skróty systemowe podlegają tej samej zasadzie. Powiązanie klawiszy Super+E przemieszcza się wraz z układem, ponieważ jest definiowane przez znak. Powiązanie Super+F1 pozostaje na swoim miejscu, ponieważ klawisze funkcyjne nie są mapowane przez układ klawiatury.

Ile czasu zajmuje zmiana układu klawiatury

Nikt nie jest w stanie podać dokładnej liczby godzin potrzebnych na naukę. Pisanie bezwzrokowe to pamięć mięśniowa. Nie uczysz się lokalizacji liter, lecz budujesz od nowa odruch zamieniający słowo w sekwencję ruchów palców, dlatego jedynym czynnikiem przyspieszającym proces jest czas poświęcony na pisanie.

Użytkownicy raportują – choć są to subiektywne dzienniki praktyki, a nie kontrolowane pomiary – że w pierwszym tygodniu prędkość pisania spada znacznie poniżej połowy dotychczasowej, a powrót do dawnej szybkości następuje po okresie od jednego do trzech miesięcy codziennego użytkowania. Rozpiętość między poszczególnymi osobami jest duża, więc traktuj te liczby jako ogólny zarys, a nie sztywny harmonogram.

Dwa nawyki spowalniają ten proces. Przełączanie się między QWERTY a Colemak w ciągu dnia osłabia oba odruchy, dlatego większość osób, które skutecznie dokonały zmiany, stosuje nowy układ konsekwentnie na swoim głównym urządzeniu. Rozpoczęcie nauki w trakcie intensywnego tygodnia pracy oznacza pisanie z błędami pod presją czasu, co wyrabia nawyk patrzenia na klawisze.

Przygotuj drogę powrotną, zanim będzie ci potrzebna, ponieważ moment, w którym będziesz chciał wrócić do QWERTY, to chwila, w której coś uległo awarii, a ktoś czeka na wynik twojej pracy.

Jak szybko przełączyć się z powrotem na QWERTY

W środowisku X11 polecenie setxkbmap us natychmiast przywraca układ QWERTY. W konsoli systemowej to samo zadanie wykonuje sudo loadkeys us. Aby cofnąć trwałe ustawienie, należy wykonać sudo localectl set-x11-keymap us.

Przełącznik jest wygodniejszy niż polecenie, które trzeba wpisać w układzie klawiatury, w którym nie można jeszcze pisać:

setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggle

Konfiguracja ta ładuje Colemak jako pierwszy układ, a standardowy US jako drugi. Kombinacja Super+Space przełącza się między nimi. Przecinek na końcu w colemak, nie jest błędem: nadaje on pierwszemu układowi wariant colemak, a drugiemu nie przypisuje żadnego. W środowisku GNOME należy dodać oba źródła wejściowe w ustawieniach, gdzie skrót Super+Space domyślnie obsługuje ich przełączanie.

Dwa monity o hasło pojawiają się poza sesją graficzną i wymagają osobnej uwagi. Ekran logowania uruchamia się przed zastosowaniem ustawień sesji, dlatego działanie należy przetestować poprzez wylogowanie się, zamiast polegać na samym ustawieniu. Jeśli dysk jest zaszyfrowany, monit o hasło pojawia się z poziomu initramfs, który posiada własną kopię mapy klawiatury. W systemach Debian i Ubuntu należy przebudować obraz za pomocą sudo update-initramfs -u po zmianie pliku /etc/default/keyboard, a następnie wykonać restart, aby przetestować zmiany, mając jeszcze inną metodę dostępu do maszyny.

Czy można zachować układ QWERTY dla jednego programu?

Układ klawiatury jest stosowany, zanim aplikacja otrzyma sygnał klawisza. Serwer X lub kompozytor zamienia kod skanowania (scancode) na znak i przekazuje go dalej, dlatego aplikacja nie może wymusić innego układu. Może jedynie zmapować otrzymany sygnał. Z tego powodu poprawka dla Vim znajduje się w konfiguracji Vim i nie istnieje ogólny mechanizm przełączania układu dla poszczególnych okien.

Skuteczne są dwa podejścia. Pierwsze polega na konfiguracji dla konkretnego urządzenia. Jeśli pisanie w układzie QWERTY odbywa się na oddzielnej klawiaturze, należy ustawić układ dla tego urządzenia zamiast dla całego systemu:

xinput list
setxkbmap -device 12 -layout us

Pobierz identyfikator z xinput list i potwierdź go, pisząc kolejno na każdej z klawiatur. sway akceptuje te same ustawienia dla identyfikatora wejściowego z swaymsg -t get_inputs, a bardziej szczegółowy selektor ma pierwszeństwo przed type:keyboard.

Drugie podejście polega na wykonaniu remapowania wewnątrz aplikacji, tak jak robi to langmap w Vim. Gry niemal zawsze posiadają ekran przypisywania klawiszy, a zmiana klawiszy sterowania w tym miejscu zajmuje mniej czasu niż próba obejścia układu z zewnątrz. W przypadku programów, które nie oferują takiej opcji, należy skonfigurować przełącznik układu zgodnie z powyższym opisem i użyć go przed uruchomieniem aplikacji.

FAQ

Czy muszę ustawiać układ Colemak na moim VPS?

Nie, jeśli łączysz się przez SSH. SSH przesyła znaki, więc układ klawiatury jest interpretowany na laptopie przed wysłaniem danych, a serwer otrzymuje te same bajty, co w przypadku korzystania z układu QWERTY. Wyjątkiem jest konsola przeglądarkowa w panelu dostawcy, która łączy się z maszyną wirtualną jako klawiatura i korzysta z mapy klawiszy konsoli serwera. Ta konsola jest drogą ratunkową, gdy SSH zawiedzie, więc zmieniaj jej ustawienia tylko wtedy, gdy masz pewność, i przetestuj je, póki połączenie SSH nadal działa.

Czy powinienem uczyć się Colemak czy Colemak-DH?

Oba układy wymagają tyle samo wysiłku przy przechodzeniu z QWERTY, więc wybierz ten, który jest dla Ciebie wygodniejszy. Colemak-DH zmienia położenie klawiszy D, B i G oraz zamienia miejscami H i M, ponieważ standardowy Colemak wymaga sięgania palcem wskazującym do środkowej kolumny w celu wpisania D i H. Warianty XKB to colemak oraz colemak_dh, a colemak_dh_iso jest przeznaczony dla klawiatur posiadających dodatkowy klawisz obok lewego Shift. Uruchom localectl list-x11-keymap-variants us | grep colemak, aby sprawdzić, które z nich są dostępne w Twoim systemie.

Co dzieje się z klawiszami hjkl w Vim przy układzie Colemak?

h pozostaje na swoim miejscu. j przesuwa się pod klawisz Y z układu QWERTY, k pod klawisz N, a l pod klawisz U, przez co klawisze kursora rozpraszają się na trzy rzędy. Możesz nauczyć się ich nowych pozycji, co pozwoli zachować zgodność wszystkich wtyczek i poradników, albo zmapować cztery klawisze pod prawą ręką: h, n, e oraz i w układzie Colemak, lub m, n, e oraz i w układzie Colemak-DH. Opcja langmap w Vim wykonuje to samo zadanie dla trybu normalnego, choć nie dotyczy kombinacji z klawiszem Ctrl i może powodować konflikty z mapowaniami wtyczek.

Ile czasu zajmie powrót do dawnej prędkości pisania?

Należy nastawić się na tygodnie, a nie dni, ponieważ jest to kwestia pamięci mięśniowej, którą buduje się wyłącznie przez praktykę. Dzienniki postępów użytkowników zazwyczaj wskazują, że w pierwszym tygodniu prędkość pisania wynosi znacznie poniżej połowy dawnej wartości, a powrót do niej następuje po jednym do trzech miesięcy codziennego użytkowania. Naprzemienne używanie QWERTY i Colemak każdego dnia wydłuża ten proces, ponieważ żaden z odruchów nie ma szans się utrwalić.

Dlaczego polecenie setxkbmap nie zadziałało na moim pulpicie?

Prawie na pewno dlatego, że sesja działa w środowisku Wayland. W Wayland to kompozytor zarządza mapą klawiszy i przekazuje ją do każdej aplikacji, więc setxkbmap albo nie może znaleźć wyświetlacza, albo zmienia ustawienia tylko dla XWayland, co jest ignorowane przez natywne aplikacje. Ustaw układ w kompozytorze: klucz gsettings org.gnome.desktop.input-sources w GNOME, xkb_variant w konfiguracji sway lub na stronie Layouts w ustawieniach systemowych KDE Plasma.