首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用带有xbindkey的复杂鼠标按钮组合吗?

我可以使用带有xbindkey的复杂鼠标按钮组合吗?
EN

Ask Ubuntu用户
提问于 2016-10-03 02:15:42
回答 3查看 7.3K关注 0票数 6

我正在运行Ubuntu16.04并连接罗技M705鼠标。这个鼠标总共有10个按钮,按钮1被左击,按钮2右击,按钮10“拇指按钮”。

我已经建立了xbindkeys

代码语言:javascript
复制
# 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中打开新选项卡中的链接。

现在我想要实现的是:当我点击按钮1,然后按钮10,然后我选择一些文本,我释放两个按钮,文本应该复制到剪贴板。因此,对于任何窗口来说,都是一种quickedit模式,一旦文本以这种方式被选中,它就会被复制。

代码语言:javascript
复制
# quickcopy
"xte 'keydown Control_L' 'key c' 'keyup Control_L' "
  b:10  + b:1 + Release

但这并没有达到预期的效果。

有什么办法来描绘这样复杂的环境吗?我可以想象这是一个伟大的用途,考虑到“拇指按钮”可能工作类似于键盘上的Ctrl键,即修改标准的点击行为。

稍后Id想为按钮10 (拇指按钮)+按钮2(右键)提供粘贴功能。

谢谢

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2016-12-06 11:38:02

在终端中运行xbindkeys -n -v输出:

代码语言:javascript
复制
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是一种鼠标状态,所以xbindkey似乎将b:10 + b:1 + Release解释为简单的b:1 + Release

我不知道我们是否做错了,并且有正确的编写方法,或者在xbindkeys中使用双鼠标键组合是不可能的。

票数 3
EN

Ask Ubuntu用户

发布于 2017-09-23 07:26:38

正常情况下不可能这样做,但幸运的是,xbindkey支持名为guile的脚本语言,它允许您执行诸如set状态/变量之类的操作,这样就可以创建类似于修饰符键的按钮。

我做了一条关于它的帖子:https://www.linuxquestions.org/questions/linux-desktop-74/%5Bxbindkeys%5D-advanced-mouse-binds-4175428297/

票数 5
EN

Ask Ubuntu用户

发布于 2019-02-15 05:16:54

示例

实现b:3 + b:1,在本例中右击和左击发送CTRL+F5 .这需要使用guile支持构建xbindkey。

使用以下内容创建此附加配置文件/home/user/.xbindkeysrc.scm

基本上这会

  • 先拦截监视键>然后拦截
  • 注意第二个键
    • 在key1 + key2中,它发送命令
    • 否则,它会发送第一个键的命令。
    • 重新启动xbindkey(以干净的方式重新启动)

代码语言:javascript
复制
;;   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) 

多亏了大卫·波布

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/832411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档