Как заставить слайдер MS Natural Ergonomic 4000 работать на Linux Mint?

Я добавил эту строку в свой ~ / .bash_profile на Mac OSX Sierra. В Ubuntu это будет ~ / .bashrc .

экспорт SUDO_PS1 = "\ [\ e [31; 1m \] $ PS1 \ [\ e [0m \]"

7
03.02.2017, 23:21
1 ответ

Справочная информация: ваша клавиатура представляет собой USB-устройство HID , и ядро ​​правильно распознает USB-события HID для клавиш слайдера и преобразует их в коды клавиш ( KEY_ZOOMIN и KEY_ZOOMOUT ). Так что в этом отношении он уже «работает»: вы можете получать события и делать с ними что-то полезное.

Однако перевод X-клавиатуры поддерживает только коды клавиш до 255 (см. этот ответ , это ограничение протокола X). Таким образом, вы не можете преобразовать их в X keyyms. (И, возможно, это не то, что вы хотите, в любом случае, потому что масштабирование обычно обрабатывается событиями кнопки мыши в приложениях, а именно кнопками 4 и 5. Так что, даже если бы вы преобразовали его в символы клавиш, они не стали бы увеличивать или уменьшать масштаб).

Но судя по тому, что вы пытались сделать, похоже, что вы хотите переназначить их на клавиши вверх и вниз , идентичные клавишам со стрелками вверх и вниз, которые уже доступны как другие клавиши на клавиатуре.

  1. Как упоминалось в уже связанном ответе , чтобы позволить X переназначать коды клавиш больше 255, кто-то создал исправленный вариант X драйвер evdev . Итак, вам нужно скомпилировать и установить этот исправленный вариант, и затем опция event_key_remap будет распознана. Он не распознается стандартным драйвером evdev , поэтому неудивительно, что ваша запись xorg.conf ничего не сделала.

    Это, наверное, самый чистый метод.

  2. В процессе захвата всего Linux, systemd , по-видимому, теперь также имеет собственную базу данных оборудования и может перезаписывать сопоставления клавиатуры. Я не совсем уверен, на каком уровне ядра это работает, поэтому я не знаю, поможет ли это вообще, а формат «базы данных оборудования», похоже, не задокументирован. Так что я ничем не могу вам помочь в этом отношении.

    Однако формат сопоставления , похоже, изменился , поэтому, возможно, вам повезет больше, если вы включите номер шины, как описано.

    Правка : Читая исходный код ядра, я обнаружил, что каждое устройство ввода имеет свой собственный скан-код (зависит от оборудования, до 8 байт, хотя во многих местах в ядре передаются только 1/2/4 байта) в keycode (то, что вы видите с evtest ) сопоставления перевода. Большие значения кода могут быть установлены и получены с помощью ioctl EVIOCGKEYCODE_V2 и EVIOCSKEYCODE_V2 на устройстве. Общего инструмента, подобного xmodmap или loadkeys / dumpkeys , похоже, не существует, хотя некоторые инструменты, связанные с ИК-приемником, очевидно, используют эти ioctl. Если так работает база данных systemd , более гибкой альтернативой было бы использование такого инструмента в правиле udev (также более простое для тестирования). Я написал быструю программу на C, чтобы выгрузить отображение, может, стоит выложить ее на github ...

  3. В принципе, вы уже можете обрабатывать события своими собственными программами или скриптами и делать все, что захотите. .Например, запустите на нем evtest , проанализируйте вывод с помощью сценария bash и вызовите xdotool с нажатиями кнопок 4 или 5, чтобы получить тот же эффект, что и колесо прокрутки мыши для вашего ползунка. кнопки. И т. Д., Стр. (Был вопрос об обмене стеками с примитивным скриптом для той же цели, но я не могу его найти прямо сейчас. При необходимости я могу поискать еще).

7
27.01.2020, 20:18

Теги

Похожие вопросы