Skip to content

Универсальная английская и русская раскладка для Windows, Linux и macOS

Notifications You must be signed in to change notification settings

braindefender/universal-layout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Universal Layout

Универсальная раскладка — пакет комбинированной русской и английской раскладки для Windows, Linux и macOS. Раскладка спроектирована для повышенного удобства ввода различных символов. Присутствует также версия для ортолинейных и сплит-клавиатур.

universal-layout-base-layer

Содержание

Происхождение

Мне очень понравилась идея универсальной раскладки Никиты Прокопова, в особенности логичное использование клавиш точки для двоеточия, а запятой для точки с запятой.

В итоге мной была разработана своя версия английской и русской раскладок, в которых «одинаковые» символы расположены на отдельных клавишах.

Также большим плюсом для меня является лёгкий способ вводить кавычки « и », а также ворох специальных символов на слое AltGr.

Что не так со стандартными раскладками?

symbol-chaos

Стандартная русская раскладка проектировалась по остаточному принципу, исходя из условия, что латинскую менять нельзя. Это привело к тому, что в русской раскладке пунктуация (запятая, точка, двоеточие, точка с запятой, кавычка, вопрос) расположены в других местах, нежели в английской. А кое-что в русской раскладке и вовсе нельзя набрать, например, одинарную кавычку.

— Nikita Prokopov (@tonsky)

Подробнее почитать о проблемах стандартных раскладок можно здесь:

Как это решает универсальная раскладка?

  • Вся пунктуация стоит на одних и тех же местах как для русского, так и для английского языка
  • Есть несколько клавиш, которые собрали в себя все похожие символы, которые раньше были разбросаны по клавиатуре: '"`, /|\, -_— и =+≠±
  • [ ] { } и ' теперь можно ввести и на русской раскладке

К чему придётся привыкнуть?

  • Раскладка объединяет в себе русскую и английскую раскладки, которые переключаются по клавише Caps Lock. Правда, для Windows есть Standard версия от moigagoo с раздельными раскладками, если Caps Lock для вас непривычен.
  • На месте цифр расположены символы, и наоборот, на месте символов — цифры. К примеру, 7 = Shift + ?
  • В стандартной версии буквы Б и Ю поменяли своё расположение. В версии для ортолинейных клавиатур изменений ещё больше, подробнее о них написано ниже
  • Ъ Ё   вынесены на слой с модификатором Alt.

Слой специальных символов (AltGr + <key>)

universal-layout-alt-layer

Версия для ортолинейных клавиатур

universal-layout-base-layer universal-layout-alt-layer

Для ортолинейных клавиатур буквы русского и английского алфавита помещены в сетку 2×15. Для этого пришлось пожертвовать тремя буквами русского алфавита, которые не уместились в сетку. Однако, они расположены весьма логично и запоминаются мнемонически:

Ё = Alt + Е
Ъ = Alt + Ь
Щ = Alt + Ш

Также, эта раскладка используется в 36-клавишной раскладке Wellum

О минусах и багах

  • Если вы используете RDP или VNC, то раскладка в них работать не будет. Если очень хочется, можно поставить её и на удалённые машины, но это опция зачастую недоступна.
  • Некоторые приложения Windows принудительно добавляют дефолтную раскладку, которая была установлена по-умолчанию в системе. При этом, раскладка не отображается в списке доступных для языка. Чтобы это исправить, надо вручную добавить дефолтную раскладку и удалить.
  • Есть проблемы в работе AltGr на Linux. Их можно исправить, но в каждом конкретном случае нужно будет разбираться отдельно. К сожалению, любой софт не идеален. Например, Linux не поддерживает ввод лигатур (Alt + K = =>).

Не смотря на все эти баги, я пользуюсь этой раскладкой более 5 лет и удобство от её использования перевешивает все описанные проблемы. Единственная система, где раскладка работает идеально — macOS.

Как установить?

В папке layouts репозитория есть две версии (Standard и Ortho) для Windows, Linux и macOS.

Windows 10/11

Для Windows также есть Standard версия от moigagoo с двумя различными раскладками для RU (UniRU) и EN (UniEN) локали соответственно. Она может понадобиться вам, если вы хотите переключать язык стандартным способом, а не через Caps Lock. Также, это позволит видеть какая именно раскладка сейчас активна.

  1. Запустить setup.exe нужной версии и дождаться установки.
  2. Установить раскладку в настройках системы: Настройки > Время и язык > Язык и регион > Английский (США) > Меню три точки > Языковые параметры > Добавить раскладку
  3. (Опционально) Удалить из списка стандартную раскладку для английского языка. В случае, если система установлена на английском языке, то можно целиком удалить русский язык на предыдущем экране.
  4. (Опционально) Установить раскладку в качестве стандартной для Экрана входа Windows в меню Административные языковые параметры > Копировать параметры.
  5. Перезагрузить систему — лишним не будет.

Linux

Люблю линукс за то, что можно всё настраивать. Правда тебе приходится всё настраивать.

  1. Для NixOS: положить universal (или universal_ortho) рядом с конфигом (или указать путь в symbolsFile до него). Пример:

    {...}: {
       services.xserver = {
         layout = "universal";
    
         extraLayouts = {
           universal = {
             description = "Universal Layout";
             languages = ["eng"];
             symbolsFile = ./universal;
           };
         };
       };
    }
  2. Для остальных: поместить содержимое папки layouts/Linux/xkb в ~/.config/xkb.

  3. Далее, способ установки зависит от окружения рабочего стола (Desktop Environment):

    • GNOME: В списке языков добавить Russian и English. В Gnome Tweaks в настройках клавиатуры включить опцию Universal Layout. Но это может работать криво: на Wayland может появляться ещё одна группа с дефолтной английской раскладкой.
    • i3wm, herbstluftwm и другие WM на X Window System: добавить в автозапуск следующие команды:
      xkbcomp $HOME/.config/xkb/symbols/universal $DISPLAY 2>&1
    • Для sway, hyprland и других WM на Wayland: ищите инструкцию в документации своего оконного менеджера.

macOS

  1. Файл layouts/macOS/Universal.bundle скопировать в ~/Library/Keyboard Layouts.
  2. Перезагрузиться и перезайти в систему.
  3. Выбрать желаемую раскладку в Настройки системы > Клавиатура > Источники ввода. Она будет в разделе с Русской раскладкой.
  4. (Опционально) Удалить стандартные раскладки русского и английского языка.

Для этого в файле ~/Library/Preferences/com.apple.HIToolbox.plist удалить XML ноды, соответствующие стандартным раскладкам.

Разработка

Windows 10/11

Для изменения или создания раскладок под Windows понадобится программа Microsoft Keyboard Layout Creator.

EXE'шник установщика есть и в репозитории в папке layouts/Windows/software/msklc.exe.

Программа древняя и давно не обновлялась Microsoft, поэтому для его работы нужен .NET Framework 2.0.

msklc

С помощью неё можно открыть и редактировать файлы формата .klc, а также создать пакет для установки раскладки (Project > Build DLL and Setup Package).

Важно! Поле Name в Project > Properties должно быть уникальным для системы и содержать не более 8 символов!

Linux

Для изменения или создания раскладок под Linux я не находил GUI-приложений. Файлы раскладок никак не компилируются, поэтому для их редактирования вам понадобится любой текстовый редактор.

О том как пользоваться XKB можно почитать на ArchWiki.

macOS

Для изменения или создания раскладок под macOS понадобится программа Ukelele.

ukelele

С помощью неё можно открыть файлы формата .bundle, установить раскладку напрямую в систему или экспортировать в файл.

Благодарности

Никите Прокопову @nikitonsky за оригинальную идею и ресурсы. Репозиторий оригинальной Universal Layout на GitHub.

Дмитрию Ковалёву @devpew за хорошие видео о кастомных механических и раздельных эргономичных клавиатурах.

Русскоязычному сообществу эргономичных раскладок и клавиатур @klavaorgwork за помощь и обратную связь.

About

Универсальная английская и русская раскладка для Windows, Linux и macOS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages