Я разработчик, и в настоящее время я использую Ubuntu Linux с PyCharm IDE для разработки веб-сайта. Чтобы улучшить производительность печати, я думаю изменить CapsLock на Hyper_L и назначить его для mod3 с помощью xmodmap. После этого я хочу отобразить mod3 для клавиши «i» на «Вверх». Пока что я сделал:
xmodmap -e "keysym Caps_Lock = Hyper_L"
вывод выглядит так:
shift Shift_L (0x32), Shift_R (0x3e)
lock Hyper_L (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
тогда я удаляю Hyper_L из mod4
xmodmap -e "remove Mod4 = Hyper_L"
После этого я попытался назначить Hyper_L для mod3
xmodmap -e "add Mod3 = Hyper_L"
Однако я получил ошибку в следующем:
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 118 (X_SetModifierMapping)
Value in failed request: 0x17
Serial number of failed request: 11
Current serial number in output stream: 11
Итак, в чем здесь проблема? Как я могу заставить это работать? Правильный ли мой подход? Или я должен использовать другой подход, чтобы использовать mod3 для пользовательских ключей?
PS Я использую клавиатуру Microsoft Natural Ergonomic 7000
Я знаю, что этот вопрос довольно старый, но мне нужно поделиться своим решением, так как (расстраивающе) ответ Хеймантью не сработал для меня. Что в итоге сработало для меня:
Это включит capslock в качестве ключа mod3, установит разметку «us» и установит вариант «intl». Если вы используете интерактивную оболочку, такую как fish, вы можете нажать tab после «-layout», «-option» или «-variant», чтобы получить полный список возможных параметров.
Дополнительная информация: год назад я попробовал подход xmodmap на машине с Ubuntu, работающей с оконным менеджером i3, переключаясь со стандартной среды gnome. Я изменил «us» раскладку клавиатуры xkb, в частности международную раскладку с мертвыми клавишами - она работала нормально при использовании gnome-desktop-manager (есть возможность установить caps-lock в качестве клавиши mod3), но я не смог заставить его работать с xmodmap. Это была моя ошибка: я думал, что графический интерфейс gdm использует xmodmap для привязки caps lock к mod3, но на самом деле он устанавливал эту опцию X11. Теперь, когда я переключился на Арку, я был вынужден понять это.
Я рекомендую всем, кто планирует возиться с этим, прочитать справочные страницы по localectl, xmodmap, setxkbmap и тестировать макеты, добавив спящий и возвратный компоненты:
это сэкономило мне много времени.
Однако я до сих пор не понимаю, почему подход xmodmap не работает. Надеюсь, это кому-нибудь поможет.
источник