Замена символов клавиатуры в Wayland

…или повышаем продуктивность набора документов с Quarto

Linux
Quarto
keyboard hack
Author

i2z1@ddslab.ru

Published

November 15, 2024

Как перестать переключать раскладку при наборе заголовков Markdown/Rmarkdown/Quarto если у вас оконный менеджер Wayland

Проблема

Когда часто приходится редактировать Markdown-подобные документы (я периодически грешу Quarto презентациями с Reveal.JS), постоянно приходится переключать русскую раскладку клавиатуры на английскую только для того, чтобы набрать символы заголовков #:

## Заголовок презентации 1

## Заголовок презентации 2

На русской раскладке Shift+3 соответствует символу который я использую примерно никогда раз в три года. Поэтому было решено поменять на русской раскладке значение символа с на #.

Решение для X

Раньше, когда повсеместно на Linux использовался оконный сервер X, применялась программа xmodmap:

xmodmap -e "keycode 12 = numbersign"

Здесь мы меняем клавишу с кодом 12 на символ диеза, который называется numbersign.

Сами коды клавиш мы смотрим с помощью программы xev – запускаем программу, нажимаем нужную клавишу и смотрим вывод в терминале.

Решение для Wayland

Все изменилось с переходом с иксов на Wayland – схема с xmodmap больше не работает.

Но выход есть!

  1. Теперь для определения кода клавиш нужно использовать альтернативу xev – программу wev(кто бы мог подумать!) Запускаем wev, нажимаем нужную клавишу и смотрим ее код.
  2. Правим файл раскладки /usr/share/X11/xkb/symbols/ru:
    ...
    
    //key <AE03>    {[          3,  numerosign  ]};
    key <AE03>  {[          3,  numbersign  ]}; //added
    
    ...

Здесь я закомментировал (поставил // в начале) строку с присвоением символа (numerosign) и добавил строку с новым значением numbersign.

  1. Сохраняем файл и перелогиниваемся в наш Wayland сеанс.

Вуаля!