SSD Nodes Learn Hosting plans →
Руководства Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-25

Как настроить раскладку Colemak в Linux

Узнайте, как активировать Colemak в консоли, X11 и Wayland. Разберем нюансы работы с Vim, горячими клавишами Ctrl и почему на SSH серверах раскладку менять не требуется.

Где настраивается раскладка Colemak в Linux

В Linux раскладка Colemak не является единой системной настройкой. Раскладка применяется тем компонентом, который в данный момент считывает ввод с клавиатуры, поэтому она настраивается в одном из трех мест: текстовая консоль, X11 server или ваш Wayland compositor. Если выбрать неверный уровень, настройка не применится.

Четвертый вариант позволяет полностью обойти операционную систему. Клавиатура, которая переназначает клавиши на уровне собственной прошивки (например, устройства с поддержкой 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 в любом случае потребуется переучиваться один раз, поэтому выбирайте вариант, который кажется вам удобнее, и остановитесь на нем. Смена раскладки во второй раз потребует столько же усилий, сколько и в первый, так как вы перестраиваете мышечную память, привязанную к расположению клавиш. Если вы все еще сомневаетесь, стоит ли вообще отказываться от 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-сервер для настройки. Композитор загружает раскладку клавиатуры и передает её каждому приложению, поэтому раскладка является настройкой композитора. Именно поэтому команда setxkbmap не работает должным образом: она либо не может найти дисплей, либо меняет раскладку только для 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 откройте «Параметры системы» (System Settings), перейдите в раздел «Клавиатура» (Keyboard), затем «Раскладки» (Layouts) и добавьте английскую раскладку (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 запуск /etc/default/keyboard при загрузке системы восстановит параметры из конфигурационного файла.

Нужна ли headless VPS раскладка Colemak?

Почти никогда, и важно понимать почему. SSH передает символы, а не позиции клавиш. Ваш эмулятор терминала получает нажатие клавиши, локальная раскладка преобразует его в символ, и только этот символ передается по соединению. Сервер получает n, не имея возможности узнать, какая физическая клавиша его сгенерировала. Таким образом, раскладка, установленная на вашем ноутбуке, сопровождает вас во всех SSH-сессиях, в tmux и во всех редакторах, которые вы запускаете удаленно, поэтому удаленной машине вообще не требуется настройка клавиатуры.

Помните об этом, прежде чем приступать к редактированию файлов клавиатуры на продуктивных серверах. Если вы управляете парком Linux-серверов, раскладка относится к машине, за которой вы сидите, а не к парку, поэтому ей не место в вашей системе автоматизации. Первые десять минут на новой VPS принесут больше пользы, чем это.

Стоит предусмотреть два исключения. Первое — консоль, подключенная непосредственно к машине. Консоль в браузере в панели управления провайдера обычно представляется виртуальной машине как клавиатура, поэтому нажатия клавиш приходят в виде скан-кодов, и раскладка консоли самого сервера определяет, какой символ появится. Это единственное место, где раскладка, установленная на сервере, вступает в силу, и это также ваш путь спасения, когда SSH перестает работать, поэтому незавершенная настройка раскладки консоли там создает реальный риск.

Последовательная консоль (serial console) ведет себя иначе, так как она передает символы, и применяется ваша локальная раскладка. Второе исключение — общая машина. Раскладка консоли действует на уровне всей системы, поэтому установка Colemak на сервере, в который входят другие люди, изменит её и для них, и они не догадаются, в чем причина.

Что происходит с клавишами hjkl в Vim

В раскладке Colemak клавиша h не перемещает курсор. Остальные три работают. Клавиша j находится под клавишей Y (в QWERTY), k — под N, а l — под U. В результате клавиши управления курсором оказываются разбросаны по трем рядам, вместо того чтобы находиться под четырьмя пальцами.

Существует два рабочих решения, у каждого из которых есть свои сторонники.

Оставьте настройки по умолчанию и переучитесь. В этом случае конфигурация не нарушается, все плагины продолжают работать, а любые советы по Vim, написанные другими пользователями, остаются актуальными.

Либо переназначьте четыре клавиши, которые находятся под правой рукой, на те же позиции, где раньше были hjkl. В Colemak эти клавиши соответствуют h, n, e и i. В Colemak-DH те же физические клавиши соответствуют m, n, e и i, так как в этой раскладке H и M поменяли местами.

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

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

Опция langmap в Vim выполняет аналогичную задачу, но требует меньше строк:

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, поиск по истории, находится на месте S в QWERTY. Ctrl+E, переход в конец строки, теперь на месте K. Ctrl+U, очистка строки, находится на месте 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 добавьте оба источника ввода в настройках, где Super+Space уже настроен на переключение.

Два запроса пароля происходят вне сеанса рабочего стола и требуют отдельного внимания. Экран входа в систему запускается до применения настроек вашего сеанса, поэтому проверяйте его через выход из системы, а не полагайтесь на настройки. Если диск зашифрован, запрос парольной фразы выполняется из initramfs, у которой есть собственная копия раскладки клавиатуры. В Debian и Ubuntu пересоберите её с помощью sudo update-initramfs -u после изменения /etc/default/keyboard, а затем один раз перезагрузитесь для проверки, пока у вас еще есть другой способ доступа к машине.

Можно ли оставить одну программу в раскладке QWERTY?

Раскладка применяется до того, как приложение получит нажатие клавиши. X server или композитор преобразует скан-код в символ и передает его дальше, поэтому приложение не может запросить другую раскладку. Оно способно лишь переназначить то, что уже получило. Именно поэтому исправление для 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, чтобы увидеть доступные в вашей системе варианты.

Что происходит с клавишами hjkl в Vim при использовании Colemak?

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

Сколько времени займет возвращение к прежней скорости печати?

Рассчитывайте на недели, а не дни, так как это вопрос мышечной памяти, требующий регулярной практики. Согласно отчетам пользователей, в первую неделю скорость обычно составляет менее половины от прежней, а возврат к нормальным показателям происходит через один-три месяца ежедневного использования. Чередование QWERTY и Colemak каждый день замедляет процесс, так как ни один из рефлексов не успевает закрепиться.

Почему команда setxkbmap не сработала на рабочем столе?

Почти наверняка из-за того, что используется Wayland. В Wayland композитор управляет раскладкой и передает её каждому приложению, поэтому setxkbmap либо не может найти дисплей, либо меняет настройки только для XWayland, а нативные приложения игнорируют изменения. Настраивайте раскладку в самом композиторе: через ключ gsettings org.gnome.desktop.input-sources в GNOME, в конфигурации xkb_variant для sway или на странице Layouts в системных настройках KDE Plasma.