Переназначить кнопки на дополнительном устройстве
Я видел ряд обсуждений, похожих на эту проблему, но я пока не смог заставить это работать.
Я недавно сильно сломал левый мизинец. Я получил 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 для обращения к ним.
- использование
xinput list
чтобы найти идентификатор вашего устройства. - использование
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. - Обновите ваш.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)