Как я прикрепляю xbindkeys клавиатуру к кнопке мыши, повторяя нажатия клавиш при содержании?

У меня есть мышь Logitech MX Revolution, которая имеет клавишу на клавиатуре XF86Search на нем. Я использовал xdotool для отображения его как средней кнопки мыши в моем xbindkeys файле.

Этот щелчок мышью больше не действует как единственное нажатие кнопки, но вместо этого мерцает между на и от состояний при удержании. Это нежелательное поведение делает это неприменимым для работы с. Например, это предотвращает меня от способности панорамировать холст в Графических программах, или от панорамирования вокруг в области просмотра Блендера.

Используя xev к считать отображение кнопки показывает, что переменные состояния, мерцающие подобный клавиатуре, нажимают повторяющиеся клавиши.

У кого-либо есть идея того, какова проблема? У меня когда-то была эта проблема в моей новой установке Монетного двора 18.2, но это ушло после перезагрузки и перезарядки моих батарей. На этот раз этим решением не является ответ, как это произошло снова при обновлении Монетного двора 18.2, и снова на новой установке Ubuntu.

Я развязал ключ поиска в сочетаниях клавиш.

0
задан 26 September 2017 в 12:53

1 ответ

Решение мешать нажатию клавиши повториться путем добавления команды xset-r код клавиши в xbindkeys файле. Это ведет себя тот же путь как запрещающий ключевое повторение в настройках/клавиатуре.

код на месте похож на это:

"xset -r 225; xdotool mousedown 2"
    m:0x0 + c:225
    XF86Search

"xdotool mouseup 2"
    m:0x0 + c:225 + release
    XF86Search

, В то время как это решило эту проблему, настоящая проблема, я имел, не был зафиксирован, который заставлял кнопку поиска работать отлично средней кнопкой мыши в программах, таких как Блендер. Вышеупомянутое решение не работает хорошо с модификатором Сдвига по причине, которую я не понимаю.

лучшее решение для этой проблемы состояло в том, чтобы воздержаться от xbindkeys полностью и вместо этого включить эмуляцию щелчка средней кнопкой путем добавления этого кода к /etc/sysctl.conf:

# Enable mouse button emulation
dev.mac_hid.mouse_button_emulation = 1
# Set 2nd button to 217 - the middle button of MX Revolution mouse.
dev.mac_hid.mouse_button2_keycode = 217

После этого я должен был создать udev файл в /etc/udev/rules.d/, где он обратится к сценарию каждый раз, когда он видел бы мой включенный аппаратный ключ. Этот сценарий содержит команду sysctl --system, которая необходима, чтобы включить мыши 2 эмуляции. По некоторым причинам это не включено по умолчанию, который является чем-то, что я хотел бы изучить позже.

Это - мой udev файл, характерный для моего аппаратного ключа Logitech:

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="046d", RUN+="/bin/sh  /home/user/mouse-initialize-settings.sh"
1
ответ дан 2 November 2019 в 05:19

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

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