Я запускаю Ubuntu 16.04 и подключил мышь Logitech M705. Эта мышь имеет в общей сложности 10 кнопок, при этом кнопка 1 является щелчком левой кнопкой, щелчком правой кнопкой кнопки 2, кнопка 10 "кнопка ползунка".
Я настроил xbindkeys
# History Back & Forward
"xte 'keydown Alt_L' 'key Left' 'keyup Alt_L' "
b:6 + Release
"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L' "
b:7 + Release
# page down
"xte 'key Next' "
b:8
# page up
"xte 'key Prior' "
b:9
# powerclick
"xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L' "
Это все работы очень хорошо. Что я называю powerclick
используется для открытия ссылок в FF на новой вкладке.
Теперь, чего я хотел бы достигнуть: когда я нажимаю кнопку 10 THEN кнопки 1 ЗАТЕМ, я выбираю некоторый текст, и я отпускаю обе кнопки, текст должен быть скопирован в буфер обмена. Так добрый из quickedit режима для любого окна, как только текст выбран этот путь, он копируется.
# quickcopy
"xte 'keydown Control_L' 'key c' 'keyup Control_L' "
b:10 + b:1 + Release
Но это не делает желаемого эффекта.
Существует ли способ отобразить такие сложные условия? Я могу вообразить это являющееся большого применения, полагая, что "кнопка ползунка" могла бы работать так же к клавише Ctrl на клавиатуре, т.е. изменить стандартное поведение по щелчку.
Позже я хотел бы сделать функцию Вставки для кнопки 10 (кнопка ползунка) + кнопка 2 (Правильная кнопка)
Спасибо
Выполнение xbindkeys -n -v
в терминальные выводы:
1 keys in /home/whoever/.xbindkeysrc
min_keycode=8 max_keycode=255 (ie: know keycodes)
"xte 'keydown Control_L' 'key c' 'keyup Control_L' "
Release + m:0x0 + b:1 (mouse)
starting loop...
, Как я думаю m:0x0
, состояние мыши, кажется, что xbindkeys интерпретирует b:10 + b:1 + Release
как просто b:1 + Release
.
я не знаю, делаем ли мы его неправильно и существует корректный способ записать это, или если использование комбинации с двумя кнопками мыши просто не возможно в xbindkeys
.
Не возможно сделать обычно, но к счастью xbindkeys поддерживает язык сценариев, названный хитростью, которая позволяет Вам делать вещи как состояния/переменные набора, который позволяет Вам создавать кнопки то действие как модифицирующие клавиши.
я сделал поток об этом: https://www.linuxquestions.org/questions/linux-desktop-74 / % 5Bxbindkeys%5D-advanced-mouse-binds-4175428297 /
реализация b:3 + b:1
, щелкните правой кнопкой в сочетании с щелчком левой кнопкой, отправляют CTRL+F5 в этом примере... это требует, чтобы xbindkeys, которые будут созданы с поддержкой хитрости
, Создали этот дополнительный файл конфигурации /home/user/.xbindkeysrc.scm
со следующим содержанием.
В основном это будет
- прерывание сначала наблюдаемый ключ> затем
- часы для второго ключа
- случай key1 + key2, это отправляет свою команду
- иначе, это отправляет команду за первым ключом
- xbindkeys перезапуска (для запуска в очевидном способе)
;; This configuration is guile based.
;; http://www.gnu.org/software/guile/guile.html
;; Right Click
(define (first-binding)
"First binding"
(xbindkey-function '("b:3") b3-second-binding)
)
(define (reset-first-binding)
"reset first binding"
(ungrab-all-keys)
(remove-all-keys)
)
(define (b3-second-binding)
"Button Extra Functions"
(reset-first-binding)
;; First Key Down + Second Key = Action Ctrl+F5 And Release
(xbindkey-function '("b:1")
(lambda ()
(reset-first-binding)
(run-command "xte 'keydown Control_R' 'keydown F5' 'keyup F5' 'keyup Control_R'")
(run-command "killall xbindkeys; xbindkeys")
)
)
;; First Key Up = Release
(xbindkey-function '(release "b:3")
(lambda ()
(reset-first-binding)
(run-command "xte 'mouseclick 3'")
(run-command "killall xbindkeys; xbindkeys")
)
)
)
(first-binding)
Благодаря David Bobb