首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xbindkeys XF86Back发送了两次

xbindkeys XF86Back发送了两次
EN

Ask Ubuntu用户
提问于 2020-07-06 15:46:02
回答 2查看 275关注 0票数 0

我在xRDP中配置了我的10个按钮鼠标,以便与超级V增强会话一起使用:

代码语言:javascript
复制
Option "Buttons" "10"
Option "ButtonMap" "1 2 3 4 5 8 9"

"xbindkeys -xsendevent -text "\[XF86Back]""
b: 6

"xbindkeys -xsendevent -text "\[XF86Forward]""
b: 7

这适用于前7个按钮(标准3+4轴滚动).但是,在检查xev时,我看到每次单击都会触发按钮6和7的映射两次。当我退出xbindkey时,永远不会发送XF86Back事件。Chrome不响应按钮6和7,除非我映射到XF86Back/Forward。有没有人对如何消除额外的按键有任何建议?

EN

回答 2

Ask Ubuntu用户

发布于 2020-07-07 17:38:41

这个问题仍未解决。对xev的仔细检查表明,按钮6和7以及按钮8和9分别返回按6和7的按钮。按钮8和按钮9代码根本不发送。这是一个Logitech Ergo跟踪球,所以可能Windows驱动程序与此有关(通过增强的session/xrdp运行Hyper-V管理器)。无论如何,不可能区分这两组按钮。

我已经删除了ButtonMap和禁用按钮8-10。这样,我仍然得到四轴卷轴,但我使用键盘前进/后退。太糟糕了,我已经习惯了。

票数 0
EN

Ask Ubuntu用户

发布于 2021-11-16 22:05:40

这里有一个解决这个问题的方法。它不漂亮,但它对我来说足够可靠。

.xbindkeysrc配置允许指定任意命令。通过使用存储在用户主目录中的临时文件,可以在第二次按下时保存和检索按钮按下的当前状态。这样,第二次按压就会被忽略,临时文件就会被删除。

代码语言:javascript
复制
"if [ -f ~/.xbindkeys_back_pressed ]; then rm ~/.xbindkeys_back_pressed; else touch ~/.xbindkeys_back_pressed; xbindkeys -xsendevent -text '\[XF86Back]'; fi"
  b:6

"if [ -f ~/.xbindkeys_forward_pressed ]; then rm ~/.xbindkeys_forward_pressed; else touch ~/.xbindkeys_forward_pressed; xbindkeys -xsendevent -text '\[XF86Forward]'; fi"
  b:7

在我的例子中,xbindkey似乎不支持xsendevent,所以我使用的是xte。

代码语言:javascript
复制
"if [ -f ~/.xbindkeys_back_pressed ]; then rm ~/.xbindkeys_back_pressed; else touch ~/.xbindkeys_back_pressed; xte 'keydown Alt_L' 'keydown Left' 'keyup Left' 'keyup Alt_L'; fi"
  b:6

"if [ -f ~/.xbindkeys_forward_pressed ]; then rm ~/.xbindkeys_forward_pressed; else touch ~/.xbindkeys_forward_pressed; xte 'keydown Alt_L' 'keydown Right' 'keyup Right' 'keyup Alt_L'; fi"
  b:7
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1256854

复制
相关文章

相似问题

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