Переназначить кнопки на дополнительном устройстве

Я видел ряд обсуждений, похожих на эту проблему, но я пока не смог заставить это работать.

Я недавно сильно сломал левый мизинец. Я получил Fragpedal Quad и пытаюсь переназначить педали на такие вещи, как управление, Alt и Tab.

Устройство ведет себя как мышь - по умолчанию педали сопоставлены с колесом прокрутки вверх, колесом прокрутки вниз, щелчком правой кнопки и левой кнопкой мыши. Когда я запускаю xinput, я получаю следующее:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Good Work Systems, Inc. GWS IDI Device    id=9    [slave  pointer  (2)]
⎜   ↳ PixArt USB Optical Mouse                  id=11   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Good Work Systems, Inc. GWS IDI Device    id=10   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=12   [slave  keyboard (3)]
    ↳ Lenovo Lenovo Black Silk USB Keyboard     id=13   [slave  keyboard (3)]

Педали - это устройство "Good Work Systems".

Самое близкое, что я получил, чтобы заставить себя вести себя так, как я хотел, было создание и редактирование конфигурации.xbindkeys как таковой:

# Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Но это касается и моих обычных кнопок мыши. Как указать сопоставление ключей для каждого устройства?

2 ответа

Сопоставьте кнопки мыши на вашем устройстве с неиспользуемыми кнопками мыши, а затем используйте xbindkeys для обращения к ним.

  1. использование xinput list чтобы найти идентификатор вашего устройства.
  2. использование xinput set-button-map переназначить ваши кнопки на другие кнопки мыши. Например, если xinput list означает, что идентификатор вашего устройства равен 15, а на вашем устройстве четыре кнопки. xinput set-button-map 15 10 11 12 13, Теперь вы установили щелчки мыши устройства 15 равными b:10, b:11, b:12 и b:13.
  3. Обновите ваш.xbindkeysrc, чтобы переназначить эти кнопки на нужные вам ярлыки.

Я понимаю, что на данный момент это 2 года, и уже ответил, но для дальнейшего использования, вы можете указать идентификатор устройства в вашем вызове xte,

# Copy
"xte -i 9 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:5

# Cut
"xte -i 9 'keydown Control_L' 'key X' 'keyup Control_L"
  b:4

# Paste
"xte -i 9 'keydown Control_L' 'key V' 'keyup Control_L'"
  b:3

# Select All
"xte -i 9 'keydown Control_L' 'key A' 'keyup Control_L'"
  b:1

Это должно ограничить изменение одним устройством, идентифицированным по идентификатору, указанному как -i, Поскольку эти идентификаторы могут отображаться по-разному при каждом запуске, вы можете захотеть внести изменения в сценарий, чтобы выполнить его вручную.

(см. также /questions/293669/kak-avtomaticheski-perenaznachit-knopki-na-moej-myishi-pri-zapuske/293677#293677)

Другие вопросы по тегам