Универсальная кириллическая(если быть точным: ru/ua/by) раскладка для X-ов. Особенностью является то, что знаки пунктуации находятся на тех же клавишах, что и в английской (us).
Чтобы при наборе знаков пунктуации не задумываться про текущую раскладку.
Минусы:
- некоторые символы прихошлось перетащить на 3 уровень, для русского языка пришлось пожертвовать «юэщжёцфъ»(в старой версии «юэщжёцйъ»).
- как следствие их достаточно тяжело набирать одной рукой. Как воркэраунд можно включить режим sticky modifiers.
- раскладка немного отличается от «йцукен»,
Кандидаты на перенос «наверх» тщательно выбирались из соображений минимальной частотности использования и как можно меньшей разницы с «йцукен». Таким образом, из наиболее часто используемых 26 букв радикально “переехали” только «жбх», «ф» осталась на той же клавише, только на другом уровне.
Раскладки для украинского/беларусского языков для меня вторичны, так что символы из них, отсутствующие в русском, тоже на третьем уровне. Было бы неплохо сделать альтернативные варианты с «і/ы» (украинский) и «і/и» (беларусский), но пока нет времени.
cd /path/to/repo/dir
git clone https://github.com/a13/xkb-custom.git
ln -sf `pwd`/xkb-custom ~/.xkb
Чтобы не приходилось лезть в системные файлы (которые всё равно перезаписываются при обновлении), приходится использовать такой костыль в автозагрузке(например в ~/.xsession):
# сброс старых настроек
setxkbmap us -option
# минимальный вариант (главное - забидить клавишу-модификатор для 3 уровня).
setxkbmap us,rup -option "lv3:menu_switch" -print | xkbcomp -I"$HOME/.xkb" - "$DISPLAY"
Все возможные(в базовой) варианты выбора модификаторов можно посмотреть командой
grep lv3: /usr/share/X11/xkb/rules/base.lst
например так:
(add-to-list 'load-path "~/.xkb/contrib")
(require 'unipunct)
или автоматически с помощью Quelpa (использование master
из чужого репозитория в общем случае небезопасно, возможно лучше указывать конкретный хэш)
(use-package unipunct
:quelpa
(unipunct
:url "https://raw.githubusercontent.com/a13/xkb-custom/master/contrib/unipunct.el"
:fetcher url))
После этого для использования будет доступен метод ввода “russian-unipunct-ng” (главное не забыть установить default-input-method
или активировать с помощью reverse-im).
Изменения:
- Й вернулась на старую клавишу
- Ф перешла на 3й уровень старой клавиши, под Х
- Э под З
- Є под Е
+----------------------------------------------------------------+ | 1! | 2@ | 3# | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | -_ | =+ | ’~ | +----------------------------------------------------------------+ |йЙїЇ| бБ |уУюЮ| кК |еЕєЄ| нН |гГґҐ|шШщЩ | жЖ |зЗэЭ| [{ | }] | +------------------------------------------------------------+ |хХфФ|ыЫіІ|вВўЎ| аА | пП |рР₽₴|оОёЁ| лЛ | дД | ;: | '" | \| | +-----------------------------------------------------------+ | яЯ |чЧцЦ| сС | мМ | иИ | тТ |ьЬъЪ| ,< | .> | /? | +-------------------------------------------------+
+----------------------------------------------------------------+ | 1! | 2@ | 3# | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | -_ | =+ | ’~ | +----------------------------------------------------------------+ |ххїЇ| бБ |уУюЮ| кК |еЕэЭ| нН |гГґҐ|шШщЩ | жЖ |зЗєЄ| [{ | }] | +------------------------------------------------------------+ | фФ |ыЫіІ|вВўЎ| аА | пП | рР |оОёЁ| лЛ | дД | ;: | '" | \| | +-----------------------------------------------------------+ |яЯѣѢ|чЧцЦ| сС | мМ |иИйЙ| тТ |ьЬъЪ| ,< | .> | /? | +-------------------------------------------------+
- [ ] Ukrainian-first variant (swap i/ы?)
- [ ] Literate the sources
- [ ] Generate all layouts(xkb/emacs) from one source
- [ ] Support other OSes