У меня есть Lenovo ThinkPad, где клавиши FN+стрелки назначены на мультимедийные клавиши. Для согласованности с другими моими ноутбуками я бы хотел, чтобы они были назначены на клавиши home, end, page-up и page-down.
Я использую Debian Stretch с рабочим столом Mate. Как мне это сделать?
решение1
Первый шаг — зайти в system -> preferences -> keyboard shortcuts и отключить горячие клавиши для play, stop, previous track и next track. Это был необходимый первый шаг, до того как он был сделан, коды клавиш не отображались в xev.
После того, как это было сделано, я смог следовать инструкциям и обнаружил, что коды клавиш были
- FN+Left (также известная как предыдущая): 173
- FN+Вправо (также известная как «следующий»): 171
- FN+UP (также известная как «стоп»): 174
- FN+Вниз (также известная как воспроизведение): 172
xev снова можно использовать для определения «символов клавиш» для home, end, page up и page down.
- Дом: Дом
- Конец: Конец
- Страница вверх: Предыдущий
- Страница вниз: Далее
Можно переназначить клавиши для текущего сеанса с помощью
xmodmap -e "keycode 173 = Home"
xmodmap -e "keycode 171 = End"
xmodmap -e "keycode 174 = Prior"
xmodmap -e "keycode 172 = Next"
Похоже, нет хорошего способа сделать это постоянным, судя по всему, .Xmodmap не работает на многих современных системах, а все остальные варианты подразумевают либо ручной запуск скриптов, либо редактирование файлов в /usr. Я решил, что редактирование файлов в /usr — наименее плохой вариант.
В частности, я отредактировал /usr/share/X11/xkb/symbols/inet, заменив настройки для ключей I171 — I174 на
key <I171> { [ End ] };
key <I172> { [ Next ] };
key <I173> { [ Home ] };
key <I174> { [ Prior ] };
Благодарим следующие источники за крупицы информации, необходимые для решения этой проблемы
https://help.ubuntu.com/community/MultimediaKeys
https://medium.com/@damko/a-simple-humble-but-comprehensive-guide-to-xkb-for-linux-6f1ad5e13450
https://askubuntu.com/questions/296155/how-can-i-remap-keyboard-keys/296437#296437
Используйте setxkbmap, чтобы поменять местами левый Shift и левый Control.