我在xRDP中配置了我的10个按钮鼠标,以便与超级V增强会话一起使用:
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。有没有人对如何消除额外的按键有任何建议?
发布于 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。这样,我仍然得到四轴卷轴,但我使用键盘前进/后退。太糟糕了,我已经习惯了。
发布于 2021-11-16 22:05:40
这里有一个解决这个问题的方法。它不漂亮,但它对我来说足够可靠。
.xbindkeysrc配置允许指定任意命令。通过使用存储在用户主目录中的临时文件,可以在第二次按下时保存和检索按钮按下的当前状态。这样,第二次按压就会被忽略,临时文件就会被删除。
"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。
"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:7https://askubuntu.com/questions/1256854
复制相似问题