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

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

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

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

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

Я отключил ключ поиска в быстрых комбинациях клавиш.

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

2 ответа

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

код выглядит следующим образом:

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

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

Лучшим решением этой проблемы было полностью отказаться от xbindkeys и вместо этого включить эмуляцию среднего клика, добавив этот код to /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"
0
ответ дан 18 July 2018 в 06:17

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

код выглядит следующим образом:

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

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

Лучшим решением этой проблемы было полностью отказаться от xbindkeys и вместо этого включить эмуляцию среднего клика, добавив этот код to /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"
0
ответ дан 24 July 2018 в 18:34

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

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