SSD Nodes Learn 🎉 VPS від $5.50/міс
Посібники Matt ConnorВід Matt Connor · Оновлено 2026-08-13

Як увімкнути Colemak у Linux для консолі, X11 і Wayland

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

Де в Linux розташовується розкладка Colemak

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

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

Далі в цьому посібнику розглянуто три програмні рівні, пояснено, чому віддаленому серверу майже ніколи не потрібен жоден із них, а також описано вплив перемикання на 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, тому його не буде лише у старій версії. Станом на серпень 2026 року в Ubuntu 24.04 і Debian 13 постачається новіша версія.

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

Colemak чи Colemak-DH

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

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

Якщо ви переходите з 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-сервера для налаштування. Композитор завантажує keymap і передає його кожному застосунку, тому розкладка є налаштуванням композитора. Через це setxkbmap у Wayland працює некоректно: команда або не знаходить дисплей, або змінює лише XWayland, а власні застосунки Wayland ігнорують цю зміну.

У GNOME це налаштовується через ключ gsettings:

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

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

У sway додайте налаштування до ~/.config/sway/config:

input type:keyboard {
    xkb_layout us
    xkb_variant colemak_dh
}

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

У KDE Plasma відкрийте «Системні параметри», перейдіть до «Клавіатура», потім до «Розкладки» та додайте English (US) із варіантом Colemak.

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

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

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

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

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

sudo setupcon

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

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

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

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

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

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

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

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

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

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

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

У 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, де зберігається власна копія розкладки клавіатури. У 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

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

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

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, а colemak_dh_iso призначений для клавіатур із додатковою клавішею поруч із лівим Shift. Виконайте 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.