Как перестать переключать раскладку при наборе заголовков Markdown/Rmarkdown/Quarto если у вас оконный менеджер Wayland
Проблема
Когда часто приходится редактировать Markdown-подобные документы (я периодически грешу Quarto презентациями с Reveal.JS), постоянно приходится переключать русскую раскладку клавиатуры на английскую только для того, чтобы набрать символы заголовков #
:
## Заголовок презентации 1
## Заголовок презентации 2
На русской раскладке Shift+3Shift+3 соответствует символу №
который я использую примерно никогда раз в три года. Поэтому было решено поменять на русской раскладке значение символа с №
на #
.
Решение для X
Раньше, когда повсеместно на Linux использовался оконный сервер X, применялась программа xmodmap
:
xmodmap -e "keycode 12 = numbersign"
Здесь мы меняем клавишу с кодом 12 на символ диеза, который называется numbersign.
Сами коды клавиш мы смотрим с помощью программы xev
– запускаем программу, нажимаем нужную клавишу и смотрим вывод в терминале.
Решение для Wayland
Все изменилось с переходом с иксов на Wayland – схема с xmodmap
больше не работает.
Но выход есть!
- Теперь для определения кода клавиш нужно использовать альтернативу
xev
– программуwev
(кто бы мог подумать!) Запускаемwev
, нажимаем нужную клавишу и смотрим ее код. - Правим файл раскладки
/usr/share/X11/xkb/symbols/ru
:
...
//key <AE03> {[ 3, numerosign ]};
key <AE03> {[ 3, numbersign ]}; //added
...
Здесь я закомментировал (поставил //
в начале) строку с присвоением символа №
(numerosign) и добавил строку с новым значением numbersign
.
- Сохраняем файл и перелогиниваемся в наш Wayland сеанс.
Вуаля!