Я добавил эту строку в свой ~ / .bash_profile
на Mac OSX Sierra. В Ubuntu это будет ~ / .bashrc
.
экспорт SUDO_PS1 = "\ [\ e [31; 1m \] $ PS1 \ [\ e [0m \]"
Справочная информация: ваша клавиатура представляет собой USB-устройство HID , и ядро правильно распознает USB-события HID для клавиш слайдера и преобразует их в коды клавиш ( KEY_ZOOMIN
и KEY_ZOOMOUT
). Так что в этом отношении он уже «работает»: вы можете получать события и делать с ними что-то полезное.
Однако перевод X-клавиатуры поддерживает только коды клавиш до 255 (см. этот ответ , это ограничение протокола X). Таким образом, вы не можете преобразовать их в X keyyms. (И, возможно, это не то, что вы хотите, в любом случае, потому что масштабирование обычно обрабатывается событиями кнопки мыши в приложениях, а именно кнопками 4 и 5. Так что, даже если бы вы преобразовали его в символы клавиш, они не стали бы увеличивать или уменьшать масштаб).
Но судя по тому, что вы пытались сделать, похоже, что вы хотите переназначить их на клавиши вверх и вниз , идентичные клавишам со стрелками вверх и вниз, которые уже доступны как другие клавиши на клавиатуре.
Как упоминалось в уже связанном ответе , чтобы позволить X переназначать коды клавиш больше 255, кто-то создал исправленный вариант X драйвер evdev
. Итак, вам нужно скомпилировать и установить этот исправленный вариант, и затем опция event_key_remap
будет распознана. Он не распознается стандартным драйвером evdev
, поэтому неудивительно, что ваша запись xorg.conf
ничего не сделала.
Это, наверное, самый чистый метод.
В процессе захвата всего Linux, systemd
, по-видимому, теперь также имеет собственную базу данных оборудования и может перезаписывать сопоставления клавиатуры. Я не совсем уверен, на каком уровне ядра это работает, поэтому я не знаю, поможет ли это вообще, а формат «базы данных оборудования», похоже, не задокументирован. Так что я ничем не могу вам помочь в этом отношении.
Однако формат сопоставления , похоже, изменился , поэтому, возможно, вам повезет больше, если вы включите номер шины, как описано.
Правка : Читая исходный код ядра, я обнаружил, что каждое устройство ввода имеет свой собственный скан-код (зависит от оборудования, до 8 байт, хотя во многих местах в ядре передаются только 1/2/4 байта) в keycode (то, что вы видите с evtest
) сопоставления перевода. Большие значения кода могут быть установлены и получены с помощью ioctl EVIOCGKEYCODE_V2
и EVIOCSKEYCODE_V2
на устройстве. Общего инструмента, подобного xmodmap
или loadkeys / dumpkeys
, похоже, не существует, хотя некоторые инструменты, связанные с ИК-приемником, очевидно, используют эти ioctl. Если так работает база данных systemd
, более гибкой альтернативой было бы использование такого инструмента в правиле udev
(также более простое для тестирования). Я написал быструю программу на C, чтобы выгрузить отображение, может, стоит выложить ее на github ...
В принципе, вы уже можете обрабатывать события своими собственными программами или скриптами и делать все, что захотите. .Например, запустите на нем evtest
, проанализируйте вывод с помощью сценария bash и вызовите xdotool
с нажатиями кнопок 4 или 5, чтобы получить тот же эффект, что и колесо прокрутки мыши для вашего ползунка. кнопки. И т. Д., Стр. (Был вопрос об обмене стеками с примитивным скриптом для той же цели, но я не могу его найти прямо сейчас. При необходимости я могу поискать еще).