Настройте мышь Logitech с помощью xbindkeys
У меня есть мышь Logitech Performance MX, которую я хочу настроить для Ubuntu 14.10 с помощью xbindkeys. После этого поста мне удалось установить xbindkeys и xautomation, однако кнопки по-прежнему не работают.
Вот мой файл xbindkeysrc:
# For the benefit of emacs users: -*- shell-script -*-
###########################
# xbindkeys configuration #
###########################
#
# Version: 1.8.6
#
# If you edit this file, do not forget to uncomment any lines
# that you change.
# The pound(#) symbol may be used anywhere for comments.
#
# To specify a key, you can use 'xbindkeys --key' or
# 'xbindkeys --multikey' and put one of the two lines in this file.
#
# The format of a command line is:
# "command to start"
# associated key
#
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
# set directly keycode (here control + f with my keyboard)
#"xterm"
# c:41 + m:0x4
# specify a mouse button
#"xterm"
# control + b:2
#"xterm -geom 50x20+20+20"
# Shift+Mod2+alt + s
#
## set directly keycode (here control+alt+mod2 + f with my keyboard)
#"xterm"
# alt + c:0x29 + m:4 + mod2
#
## Control+Shift+a release event starts rxvt
#"rxvt"
# release+control+shift + a
#
## Control + mouse button 2 release event starts rxvt
#"rxvt"
# Control + b:2 + Release
"xte 'key Control_L'"
b:10
##################################
# End of xbindkeys configuration #
##################################
Благодарю.
4 ответа
Я знаю, что этому вопросу год, но он все еще кажется без ответа.
Я думаю, что ваша проблема в том, что вы просто вызвать xte 'key Control_L'
, который просто "постучит" по вашей клавише управления, означая, что нажатие клавиши эмулируется только в течение очень короткого промежутка времени, а затем клавиша отпускается. Вам необходимо оформить keydown
событие, когда вы начинаете нажимать кнопку мыши и запустить keyup
событие, когда вы отпустите кнопку мыши. Ваш .xbindkeysrc
должен выглядеть так:
"xte 'keydown Control_L'"
b:8
"xte 'keyup Control_L'"
b:8 + Release
Я обнаружил, что xte - это бред. Моя последовательность для отображения кнопки большого пальца моей logitech 518 на "control W", чтобы закрывать вкладки и окна, никогда не работала хорошо с неправильной последовательностью xte. Например, это не удалось:
"xte 'keydown Control_L' 'w' 'keyup Control_L'"
b:8
как это сделал:
"xte 'keydown Control_L' 'w' 'keyup Control_L'"
b:8 + release
Я также заметил, что xte был медленным. Я попробовал xvkbd, и он работает хорошо.
конечно вы должны получить xvkbd с этим:
sudo apt-get install xvkbd
Поместите это в свой .xbindkeysrc
файл в вашем домашнем каталоге
"xvkbd -text '\C\[w]'"
m:0x0 + b:8
и перезапустите xbindkeys
pkill -f xbindkeys && xbindkeys
У меня Logitech M705 и только что прошел через это.
Кнопка 8 отображается на кнопку вперед / назад сбоку:
###########################
# xbindkeys configuration #
###########################
# Workspace Left
"xte 'keydown Control_L' 'keydown Alt_L' 'key Left' 'keyup Alt_L' 'keyup Control_L'"
b:8
##################################
# End of xbindkeys configuration #
##################################
У меня тоже были проблемы с отображением кнопок мыши. Ни один из существующих здесь ответов не затронул суть проблемы.
TL;DR: добавить
+ release
связь с отображением (см. последний фрагмент кода).
В качестве примера я хотел показать обзор окна, что я пытался сделать с помощью этого:
"/usr/bin/dbus-send --session --print-reply --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'"
b:8
Я добавил запись, чтобы подтвердить
xbindkeys
подбирал прессы, а это были:
"echo 'b:8 pressed' > /tmp/.xbindkeys.log 2>&1"
b:8
Итак, учитывая, что нажатия клавиш работали, я знал, что проблема не в
xbindkeys
забирая прессы, но где-то еще. Я пробовал имитировать нажатия клавиш с помощью
xte
, но это тоже не сработало. Однако я заметил, что что-то странное происходило с фокусом окон на экране, когда я это делал.
"/usr/bin/xte 'keydown Super_L' 'key s' 'keyup Super_L' >> /tmp/.xbindkeys.log 2>&1"
b:8
В качестве удара в темноте я добавил
+ release
ассоциация с командой, которая решила проблему:
"/usr/bin/xte 'keydown Super_L' 'key s' 'keyup Super_L' >> /tmp/.xbindkeys.log 2>&1"
b:8 + release
Заданные ключевые назначения могут измениться, используя
xte
не является надежным решением, поэтому я хотел вернуться к
dbus-send
команда. Так что заменяя команды и включая
+ release
ассоциации, все заработало:
"/usr/bin/dbus-send --session --print-reply --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'"
b:8 + release
Оглядываясь назад, я нашел ссылку на это решение в вики Arch. Может ли кто-нибудь пролить свет на то, почему
+ release
нужно в комментариях?
Должно быть, потому что управление ключом само по себе мало что делает.
Попробуй это:
xte 'keydown Super_L' 'keydown Right' 'keyup Super_L' 'keyup Right'
Это в основном Super[windows key]+Right_Arrow
это должно занять любое открытое окно в правой половине экрана.
Это всего лишь пример, вы можете автоматизировать любую комбинацию клавиш.