ruen-кнопки

Кнопки, которые печатают один и тот же символ независимо от текущей раскладки и языка.

Первый раз попробовал на клавиатурах Ergohaven (дока), идея мне понравилась и я дальше взял её с собой в kanata, уже в собственной реализации:

  1. Точка и запятая на отдельных кнопках и на одном и том же месте, независимо от языка и раскладки.
  2. Отдельный символьный слой, в котором присутствуют нужные мне символы и тоже печатаются независимо от языка.

Реализация

Клавиатура (не важно программная или аппаратная) знает какой язык сейчас включен (например сама отслеживает переключение языков, особенно хорошо это получается когда русский и английский включаются разными сочетаниями, т.е. язык не переключается, а выбирается нужный). Дальше если символ есть в нужном языке, то в ОС отправляется код нужной клавиши или сочетания. Если символа в текущем языке нет - тогда происходит переключение в нужный язык, набор требуемого символа и переключение обратно на тот язык, который был.

Есть ещё вариант реализации через прямой ввод unicode-символа, но он более сложный в реализации и платформо-зависимый (юникод-символы по-разному вводятся в разных ОС), а на MacOS к тому же всё равно требуется переключаться на спец. раскладку - с юником-символами.