SSD Nodes Learn Hosting plans →
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-08-28

Як увімкнути Colemak у Linux: console, X11 і Wayland

Налаштуйте Colemak у Linux на рівні console, X11 або Wayland, зрозумійте, чому SSH server не потребує розкладки, і що зміниться у Vim та Ctrl-комбінаціях.

Де зберігається розкладка Colemak у Linux

Colemak у Linux не є єдиним загальносистемним параметром. Розкладку застосовує компонент, який у цей момент обробляє введення з клавіатури, тому вона належить до одного з трьох рівнів: текстової консолі, X11 server або Wayland compositor. Якщо налаштувати її не на тому рівні, нічого не станеться.

Є й четвертий варіант, який повністю оминає операційну систему. Клавіатура, що змінює розкладку у власній firmware, наприклад пристрій із QMK або VIA, надсилає коди потрібних літер. Тому на кожному підключеному комп’ютері вона вводить текст у Colemak без додаткового налаштування, зокрема в server console і на комп’ютері, який вам не належить. Недолік полягає в тому, що клавіатура ноутбука все одно вводитиме текст у QWERTY.

Далі в цьому посібнику розглянуто три програмні рівні, пояснено, чому віддаленому server майже ніколи не потрібен жоден із них, а також описано, як перемикання впливає на Vim і комбінації клавіш у терміналі.

Перевірте, що вже доступно у вашій системі

Виконайте ці команди, перш ніж щось змінювати. Вони виведуть поточне налаштування та список варіантів Colemak, доступних у вашій базі даних клавіатур X.

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

Остання команда має вивести colemak і colemak_dh. Colemak уже багато років входить до xkeyboard-config. Colemak-DH з’явився у версії 2.34, тому його може не бути лише у старому випуску. Станом на August 2026 Ubuntu 24.04 і Debian 13 постачають новішу версію.

Якщо setxkbmap -query повідомляє, що не може відкрити дисплей, ви працюєте у сеансі Wayland, а компонувальником розкладки керує compositor. Для цього випадку нижче є окремий розділ.

Colemak або Colemak-DH

Colemak переміщує 17 клавіш із позицій QWERTY, а 10 залишає без змін, зокрема Z, X, C і V. Тому комбінації для скасування, вирізання, копіювання та вставлення залишаються там, де їх очікує ліва рука. Саме через цю сумісність розкладка має такий вигляд.

Colemak-DH — це модифікація Colemak. Вона переміщує D, B і G та міняє місцями H і M, оскільки у звичайній Colemak для введення D і H потрібно витягувати вказівний палець до середнього стовпця клавіатури. Офіційна модифікація залишає кожну літеру на тому самому пальці, який використовувався в Colemak. Тому перехід на DH для користувача Colemak означає невелику зміну, а не освоєння нової розкладки. Варіант XKB — colemak_dh, а для клавіатур із додатковою клавішею поруч із лівим Shift використовується colemak_dh_iso.

Якщо ви переходите з QWERTY, в обох випадках потрібно заново освоїти лише одну розкладку. Тому обирайте зручніший варіант і не повертайтеся до цього питання. Повторна зміна розкладки потребує приблизно стільки ж зусиль, як і перша, оскільки ви перебудовуєте моторну пам’ять, пов’язану з положеннями клавіш. Якщо ви ще не вирішили, чи варто взагалі відмовлятися від QWERTY, спочатку ознайомтеся з порівнянням Colemak, Dvorak і QWERTY, а вже потім витрачайте місяць на перебудову моторної пам’яті.

Налаштування Colemak у X11 за допомогою setxkbmap і localectl

setxkbmap us -variant colemak
setxkbmap -query

Тепер setxkbmap -query має повертати variant: colemak, а введення в будь-якому вікні має використовувати літери Colemak. Зміна діє протягом сеансу X і нічого не записує на диск, тому це безпечний спосіб випробувати розкладку протягом години.

Щоб зберегти її після перезавантажень:

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

Порядок аргументів такий: розкладка, потім модель, потім варіант. Тепер localectl status має показувати X11 Layout: us і X11 Variant: colemak. localectl також перетворює цей вибір на найближчу розкладку клавіатури консолі, якщо не додати --no-convert, тому в багатьох системах ця одна команда також налаштовує tty. У Debian та Ubuntu після цього перевірте /etc/default/keyboard, оскільки саме цей файл читає console-setup під час завантаження.

Установлення Colemak у Wayland

Сеанс Wayland не має X server, який можна налаштувати. Compositor завантажує keymap і передає його кожному застосунку, тому розкладка є налаштуванням compositor. Через це setxkbmap у Wayland працює некоректно: команда або не знаходить display, або змінює лише XWayland, а нативні застосунки Wayland її ігнорують.

У GNOME це налаштування є ключем gsettings:

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

Зміни застосовуються негайно, без виходу із сеансу. Рядок us+colemak містить розкладку та variant, об’єднані знаком plus.

У sway додайте цей параметр до ~/.config/sway/config:

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

Перезавантажте конфігурацію командою swaymsg reload. Команда swaymsg -t get_inputs показує всі input devices і розкладку, яку використовує кожен із них. Це потрібно перевірити, якщо некоректно працює лише одна клавіатура.

У KDE Plasma відкрийте System Settings, потім Keyboard, далі Layouts і додайте English (US) з variant Colemak.

Налаштування Colemak у текстовій консолі

Консоль — це звичайний текстовий tty, до якого ви переходите за допомогою Ctrl+Alt+F3. Вона використовує власну keymap. Налаштування X11 або compositor не поширюються на неї. Це важливо, якщо ви працюєте з термінальним робочим середовищем у віртуальній консолі без графічного інтерфейсу.

У Debian і Ubuntu відредагуйте /etc/default/keyboard:

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

Потім застосуйте зміни:

sudo setupcon

Перевірте результат, ввівши текст у консолі. console-setup перетворює цей опис XKB на keymap консолі за допомогою ckbcomp. Тому в цих системах консоль і X використовують один опис.

У дистрибутивах, які безпосередньо використовують keymap формату kbd, спочатку отримайте назву:

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

Пакет kbd містить консольну map Colemak як i386/colemak/en-latin9. Тому назва, яку ви зазвичай передаєте, — en-latin9, а не colemak. Передавайте назву, яка є у списку. Неіснуюча назва буде відхилена.

sudo loadkeys en-latin9 негайно змінює поточну консоль, а sudo loadkeys us повертає попереднє налаштування. Використовуйте loadkeys лише для перевірки, а не як постійне налаштування. Воно діє до перезавантаження. Під час завантаження Debian і Ubuntu запускають setupcon, який відновлює значення з /etc/default/keyboard.

Чи потрібна безмоніторному VPS розкладка Colemak?

Майже ніколи. Причину важливо розуміти. SSH передає символи, а не позиції клавіш. Емулятор термінала отримує натискання клавіші, локальна розкладка перетворює його на символ, і через з’єднання передається лише цей символ. Сервер отримує n і не може визначити, яка фізична клавіша його створила. Тому розкладка, налаштована на вашому ноутбуці, використовується в кожному SSH-сеансі, у tmux і в кожному редакторі, який ви запускаєте віддалено. Віддаленій машині взагалі не потрібна конфігурація клавіатури.

Пам’ятайте про це, перш ніж починати редагувати файли клавіатурної конфігурації на production-серверах. Якщо ви адмініструєте парк Linux-серверів, розкладка належить машині перед вами, а не цьому парку. Тому їй не місце у вашому provisioning. Перші десять хвилин на новому VPS дають змогу виконати корисніші завдання.

Потрібно врахувати два винятки. Перший — консоль, підключена безпосередньо до машини. Browser console у панелі провайдера зазвичай представляє себе для віртуальної машини як клавіатура. Тому натискання клавіш надходять як scancode, а власна console keymap сервера визначає, який символ з’явиться. Це єдине місце, де розкладка, налаштована на сервері, набуває чинності. Це також ваш шлях відновлення, коли SSH перестає працювати. Тому незавершена console keymap на сервері становить реальний ризик.

Serial console працює інакше, оскільки передає символи, а локальна розкладка застосовується на вашій машині. Другий виняток — спільна машина. Console keymap діє на рівні всієї системи. Тому встановлення Colemak на сервері, до якого входять інші користувачі, змінить розкладку і для них. Вони навряд чи зрозуміють, чому це сталося.

Як працюють клавіші Vim hjkl

У Colemak клавіша h не переміщує курсор. Інші три працюють. j розташована під клавішею Y у QWERTY, k — під N у QWERTY, а l — під U у QWERTY, тому клавіші переміщення курсору розподілені по трьох рядах, а не розташовані під чотирма пальцями.

Є два робочі варіанти, і обидва мають реальних користувачів.

Залишити стандартні налаштування та заново запам’ятати розташування. У такому разі інші компоненти конфігурації не ламаються, усі плагіни продовжують працювати, а всі поради щодо Vim, написані іншими користувачами, і далі застосовуються до вас без змін.

Або переназначити чотири клавіші, які розташовані під правою рукою там, де раніше були hjkl. У Colemak ці фізичні клавіші вводять h, n, e та i. У Colemak-DH ті самі чотири фізичні клавіші вводять m, n, e та i, оскільки DH поміняв місцями H і M.

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

Тепер n переміщує курсор вниз, e — угору, i — праворуч, а h і раніше переміщувала його ліворуч. Два останні рядки повертають команди, які ви змістили: l запускає режим вставлення, а k повторює останній пошук. Так само налаштуйте великі літери, інакше Shift у поєднанні з клавішею переміщення курсору може дати неочікуваний результат.

Опція Vim langmap виконує подібне завдання в меншій кількості рядків:

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

Кожна пара читається як введений вами символ, після якого вказано символ, дію якого має виконати Vim. Це діє лише в нормальному режимі, тому в режимі вставлення текст Colemak вводиться без змін. Вбудована довідка Vim документує два обмеження: langmap не застосовується до комбінацій із Ctrl або Alt, а мапінги плагінів, розраховані на стандартні клавіші, можуть працювати непередбачувано.

Що б ви не обрали, оберіть один варіант і дотримуйтеся його. Якщо через місяць відмовитися від переназначення, доведеться витратити ще один місяць на повторне звикання.

Що відбувається зі сполученнями клавіш термінала

Код керування терміналом надходить від символу, а не від фізичної клавіші, тому кожне сполучення з Ctrl переміщується разом із розкладкою. Ctrl+C, Ctrl+Z, Ctrl+X і Ctrl+V зберігають свої позиції, оскільки Colemak навмисно залишає Z, X, C і V там, де вони розташовані в QWERTY.

Чотири сполучення, які ви використовуєте щодня, переміщуються. Ctrl+D, яке завершує введення, тепер розташоване там, де в QWERTY є G. Ctrl+R для пошуку в історії розташоване там, де в QWERTY є S. Ctrl+E для переходу в кінець рядка розташоване там, де в QWERTY є K. Ctrl+U, яке очищає рядок, розташоване там, де в QWERTY є I.

tmux зберігає стандартний префікс, оскільки B не переміщується в Colemak. У Colemak-DH B переміщується у верхній рядок, і префікс переміщується разом із ним. Це перше, що ви помітите, якщо підтримуєте тривалий сеанс tmux на VPS. Перепризначити префікс на зручну для вас клавішу можна одним рядком. Це простіше, ніж двічі перевчатися на той самий рефлекс.

Сполучення клавіш у робочому середовищі працюють за тим самим правилом. Прив’язка до Super+E переміщується разом із розкладкою, оскільки її визначає символ. Прив’язка до Super+F1 залишається на місці, оскільки функціональні клавіші розкладка не перепризначає.

Скільки часу коштує перехід

Ніхто не може назвати точний строк для вашого випадку. Сліпий набір ґрунтується на моторній пам’яті. Ви не вивчаєте розташування літер, а перебудовуєте рефлекс, який перетворює слово на послідовність рухів пальців. Тому допомагає лише час, проведений за набором тексту.

За відгуками користувачів, а це дані з їхніх власних журналів практики, а не результати контрольованого вимірювання, у перший тиждень швидкість зазвичай становить значно менше половини попередньої. До попередньої швидкості користувачі повертаються приблизно за один-три місяці щоденного використання. Різниця між користувачами значна, тому сприймайте ці цифри як загальну тенденцію, а не як точний графік.

Дві звички уповільнюють перехід. Перемикання між QWERTY і Colemak протягом дня не дає жодному рефлексу закріпитися. Тому більшість користувачів, які завершують перехід, повністю переходять на нову розкладку на основному комп’ютері. Якщо почати в напружений тиждень, доведеться повільно набирати текст під тиском часу. Це привчає дивитися на клавіші.

Налаштуйте спосіб повернення до попередньої розкладки заздалегідь. Потреба знову використати QWERTY виникне саме тоді, коли щось зламається і хтось чекатиме на вас.

Як швидко повернутися до QWERTY

В X11 команда setxkbmap us негайно повертає QWERTY. У консолі те саме робить sudo loadkeys us. Щоб скасувати постійне налаштування, виконайте sudo localectl set-x11-keymap us.

Перемикач зручніший за команду, яку потрібно вводити в розкладці, якою ви ще не можете користуватися:

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

Це завантажує Colemak як першу розкладку, а звичайну US — як другу. Комбінація Super+Space перемикає їх по черзі. Кінцева кома в colemak, не є помилкою: вона задає варіант colemak для першої розкладки, а для другої не задає жодного. У GNOME додайте обидва джерела введення в Settings, де Super+Space уже перемикає їх.

Два запити пароля працюють поза вашим сеансом робочого середовища й потребують окремої уваги. Екран входу запускається до застосування налаштувань вашого сеансу, тому перевіряйте його, вийшовши із системи, а не покладаючись лише на це налаштування. Якщо диск зашифрований, запит парольної фрази запускається з initramfs, де зберігається власна копія keymap. У Debian і Ubuntu після зміни /etc/default/keyboard перебудуйте initramfs командою sudo update-initramfs -u, а потім один раз перезавантажте систему для перевірки, поки у вас ще є інший спосіб отримати доступ до машини.

Чи можна залишити QWERTY в одній програмі?

Розкладка застосовується до того, як програма отримує натискання клавіші. X server або compositor перетворює scancode на символ і передає програмі цей символ, тому програма не може запросити іншу розкладку. Вона може лише переназначити отримані символи. Саме тому виправлення для Vim задається в конфігурації Vim і немає універсального перемикача розкладки для окремого вікна.

Працюють два підходи. Перший — для окремого пристрою. Якщо введення QWERTY виконується на окремій клавіатурі, задайте розкладку для цього пристрою, а не для всієї системи:

xinput list
setxkbmap -device 12 -layout us

Візьміть id із xinput list і перевірте його, по черзі вводячи текст на кожній клавіатурі. sway приймає такі самі налаштування для кожного input identifier із swaymsg -t get_inputs, а більш специфічний selector має пріоритет над type:keyboard.

Другий підхід — виконати переназначення всередині програми, як це робить langmap у Vim. У іграх майже завжди є екран налаштування key binding. Переназначити там клавіші переміщення швидше, ніж намагатися змінити розкладку ззовні. Для програм, у яких немає такого налаштування, призначте перемикач розкладки вище й натискайте його перед запуском програми.

FAQ

Чи потрібно встановлювати Colemak на моєму VPS?

Ні, якщо ви підключаєтеся до нього через SSH. SSH передає символи, тому розкладка визначається на вашому ноутбуці до надсилання даних, а сервер отримує ті самі байти, які надіслав би користувач із розкладкою QWERTY. Винятком є консоль у браузері в панелі вашого провайдера. Вона підключається до віртуальної машини як клавіатура та використовує власну консольну розкладку сервера. Ця консоль є способом відновлення доступу, коли SSH не працює. Тому змінюйте її лише за впевненості у своїх діях і перевірте її, поки SSH ще працює.

Чи варто вивчати Colemak або Colemak-DH?

Обидві розкладки потребують приблизно однакового перенавчання після QWERTY, тому обирайте за зручністю, а не за складністю переходу. Colemak-DH переміщує D, B і G та міняє місцями H і M, оскільки звичайна Colemak вимагає натискати D і H вказівним пальцем із розтягуванням до центрального стовпця. Назви варіантів XKB — colemak і colemak_dh. Для клавіатур із додатковою клавішею поруч із лівим shift використовується colemak_dh_iso. Виконайте localectl list-x11-keymap-variants us | grep colemak, щоб переглянути доступні у вашій системі варіанти.

Що відбувається з клавішами Vim hjkl у Colemak?

h залишається на тому самому місці. j переміщується під Y у QWERTY, k — під N у QWERTY, а l — під U у QWERTY, тому клавіші керування курсором розподіляються між трьома рядами. Ви можете перенавчитися використовувати їх на нових місцях. Це збереже сумісність з усіма плагінами та навчальними матеріалами. Інший варіант — переназначити чотири клавіші під правою рукою: h, n, e та i у Colemak і m, n, e та i у Colemak-DH. Опція Vim langmap виконує таке саме завдання для normal mode, але не поширюється на комбінації з Ctrl і може спричиняти конфлікти з прив’язками плагінів.

Скільки часу потрібно, щоб знову досягти попередньої швидкості друку?

Розраховуйте на тижні, а не на дні, оскільки це моторна пам’ять, а єдиний спосіб її сформувати — практика. У журналах практики користувачі зазвичай зазначають, що протягом першого тижня швидкість значно нижча за половину попередньої, а повернення до неї займає від одного до трьох місяців щоденного використання. Щоденне чергування QWERTY і Colemak подовжує цей період, оскільки жоден із рефлексів не встигає закріпитися.

Чому setxkbmap нічого не змінив на моєму робочому столі?

Майже напевно тому, що сеанс працює у Wayland. У Wayland композитор керує розкладкою та передає її кожному застосунку. Тому setxkbmap або не може знайти дисплей, або змінює лише XWayland, а нативні застосунки ігнорують цю зміну. Налаштовуйте розкладку безпосередньо в композиторі: за допомогою ключа gsettings org.gnome.desktop.input-sources у GNOME, параметра xkb_variant у конфігурації sway або на сторінці Layouts у System Settings KDE Plasma.