重新映射 Microsoft Sculpt Comfort Mouse 上的侧面触摸按钮

重新映射 Microsoft Sculpt Comfort Mouse 上的侧面触摸按钮

我最近买了一个 Microsoft Sculpt Comfort Mouse。它使用蓝牙连接到我的笔记本电脑,所有常规鼠标按钮在 Linux 和 Windows 7 下都可以完美使用。不过,这款鼠标的不同之处在于,它的侧面有一个特殊的Windows/Super键,按下时可启动开始/菜单。它还有一个触摸传感器,可以检测侧面按钮的上下移动,并振动鼠标以确认它已被激活。

当然,在 Windows 中有一个程序可以让我改变笔触的作用并关闭振动。

在 Linux 中,当按下或滑动侧键时,xev 仅检测正常的按键。Xev 不会报告任何鼠标按钮按下事件。

所以我的问题是,我可以更改在 Linux 下发送的按键信息吗?

我很想将键绑定从 更改为(tabxev报告的内容)更改为+ + /以便在工作区之间切换。downbackspaceupctrlaltleftright

谢谢你的帮助!

答案1

我刚刚自己买了一个,发现下面的功能对我来说非常有效。

  1. 打开 dconf-editor(sudo apt-get install dconf-editor如果尚未安装)。
  2. 导航到 org -> gnome -> 桌面 -> wm -> 键绑定。
  3. 改变值切换到工作区

    ['<Control><Alt>Down', '<Primary><Super>Tab', '<Control><Super>Tab']

    以及价值切换到工作区

    ['<Control><Alt>Up', '<Primary><Super>BackSpace', '<Control><Super>Backspace']

答案2

因此,由于 Microsoft Sculpt Comfort Mouse 没有为超级和滑动手势注册鼠标按钮按下,而是注册键盘按键按下,因此我使用“xautomation”和“xbindkeys”包来监听这些按键按下并发送Ctrl+ Alt+ Right/Left以在工作区之间切换。这不是一个理想的解决方案,但它在 10 次中有 8 次都有效。

#Move to left workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Left' 'keyup Control_L' 'keyup Alt_L' 'keyup Left'"
   m:0x4+mod4+m:0x0+c:23
   #Control_L+Super_L+Tab

#Move to right workspace
"xte 'keydown Control_L' 'keydown Alt_L' 'usleep 100' 'key Right' 'keyup Control_L' 'keyup Alt_L' 'keyup Right'"
   m:0x4+mod4+m:0x0+c:22
   #Control_L+Super_L+Backspace

此 xbindkeys 脚本的作用是监听鼠标向上和向下滑动手势发送到计算机的按键。如果检测到,xautomation 会发送标准移动桌面按键control+ alt+ left/ right

鼠标向上滑动手势发送按键left control+ left super+ backspace。鼠标向下滑动手势发送按键left control+ left super+ tab。m:0x4+mod4+m:0x0+c22 是 xbindkeys 检测到的实际键代码组合。

我会再多弄弄它,看看能否提高效率,但现在这已经完成了工作。我只希望鼠标tab输出backspace不会影响我正在做的任何工作。

答案3

我想映射相同的按钮,以便在 Firefox 中双向浏览选项卡。我使用的是 xbindkeys 和 xmacro。效果很好!

.xbindkeysrc

#Thumb down
"echo 'KeyStrPress Control_L KeyStrPress Tab KeyStrRelease Control_L KeyStrRelease Tab'|xmacroplay :0"
   Control+Mod4+Tab

#Thumb up
"echo 'KeyStrPress Control_L KeyStrPress Shift_L KeyStrPress ISO_Left_Tab KeyStrRelease Control_L KeyStrRelease Shift_L KeyStrRelease ISO_Left_Tab' |xmacroplay :0"
   Control+Mod4+BackSpace

相关内容