У меня есть мышь Logitech MX Revolution, на которой есть клавиша XF86Search. Я использовал xdotool, чтобы назначить ее средней кнопкой мыши в файле xbindkeys.
Этот щелчок мыши больше не действует как одно нажатие кнопки, а вместо этого мерцает между включенным и выключенным состояниями при удержании. Это нежелательное поведение делает его непригодным для работы. Например, он не позволяет мне панорамировать холст в графических программах или панорамировать в области просмотра Blender.
Использование xev для считывания сопоставления кнопок показывает чередующиеся мерцающие состояния, похожие на повторные нажатия клавиш на клавиатуре.
Кто-нибудь знает, в чем проблема? У меня однажды была эта проблема в моей новой установке Mint 18.2, но она исчезла после перезагрузки и подзарядки батарей. На этот раз это решение не является ответом, так как это произошло снова при обновлении Mint 18.2 и снова на новой установке Ubuntu.
Я отвязал клавишу поиска в сочетаниях клавиш.
решение1
Решением для прекращения повторения нажатия клавиши является добавление команды xset -r keycode в файл xbindkeys. Это ведет себя так же, как отключение повтора клавиши в settings/keyboard.
Код на месте выглядит так:
"xset -r 225; xdotool mousedown 2"
m:0x0 + c:225
XF86Search
"xdotool mouseup 2"
m:0x0 + c:225 + release
XF86Search
Хотя это решило эту проблему, реальная проблема, с которой я столкнулся, не была устранена, а именно, кнопка поиска работала идеально как средняя кнопка мыши в таких программах, как Blender. Вышеуказанное решение не работает с модификатором Shift по непонятной мне причине.
Лучшим решением этой проблемы было бы полностью отказаться от 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"