Linux下罗技键盘G710的快捷键设置

背景

之前一直在Windows系统上工作。我使用的键盘是罗技G710+,鼠标有两个:罗技M575和G502。由于罗技这几款产品都有额外的可设置的快捷键,在过往的工作中可以大大提高工作效率。我通常会习惯把G710的左下角G6和G5两个键设置成复制和粘贴。此前在Windows系统中,这个工作由罗技官网下载的驱动来完成。但最近我的工作环境换成了Linux,罗技官网并没有Linux版本的驱动。因此需要寻找一些替代方法。

GitHub开源项目logiops

仓库地址为:

GitHub - PixlOne/logiops: An unofficial userspace driver for HID++ Logitech devices

适配大部分罗技产品的通用驱动,适配的设备列表为:

logiops/TESTED.md at main · PixlOne/logiops · GitHub

注:仅与 HID++ >2.0 设备兼容

此项目没有图形化界面,需要修改.cfg文件来实现所有配置,项目中给出了示例。可惜的是,这个项目并不兼容710。

piper

一个有图形化界面的鼠标驱动,可惜只适配我的G502鼠标。安装很简单,打开后可以设置G502的所有配置。

安装方法:

Ubuntu系统使用罗技鼠标_罗技anywhere3s在ubuntu-CSDN博客

GitHub开源项目logitech-g710-linux-driver

项目地址:

GitHub - Wattos/logitech-g710-linux-driver: Logitech G710 Linux Driver

顾名思义,Linux中G710的非官方驱动。项目原理是通过Xmodmap重新设置键盘键码的映射。通过修改.Xmodmap文件来实现键位修改键位映射,但项目中没有太多说明文档。最后我找到了一个有用的帖子:Logitech G710+ M# and G# keys

核心内容是下图红框中的:.Xmodmap文件中的keycode 191 - keycode 200 分别对应M1-MR,G1-G6 10个键。把后面的keysym改成需要的即可。对应键位和键符表:List of Keysyms Recognised by Xmodmap - LQWiki

但是,这个驱动只能把键位映射到单个键符上,比如:less.

我想要把G6映射成Ctrl+C的愿望又破灭了。我尝试把G6映射到XF86Copy,映射可以生效,但复制的效果并不能全局生效。因为不是所有的应用都支持识别XF86Copy(FireFox浏览器生效但Chrome不行,AndroidStudio也不行)。此方法又失败。

此时我已经将搜索方向转到如何使用Xmodmap实现复制粘贴的功能。然后我搜到了Xbindkeys。

Xbindkeys

使用方法:

Linux: Set F2 F3 F4 to Cut Copy Paste

此方法是在.xbindkeysrc文件中指定某一个键按下时执行的命令,然后使用xvkbd命令模拟在虚拟键盘输入的事件。示例内容如下:

# ~/.xbindkeysrc

# make F2 do Ctrl+x
"xvkbd -no-jump-pointer -xsendevent -text '\Cx'"
F2

# make F3 do Ctrl+c
"xvkbd -no-jump-pointer -xsendevent -text '\Cc'"
F3

# make F4 do Ctrl+v
"xvkbd -no-jump-pointer -xsendevent -text '\Cv'"
F4

# make F11 do Ctrl+PageUp
"xvkbd -no-jump-pointer -xsendevent -text '\C\[Prior]'"
F11

# make F12 do Ctrl+PageDown
"xvkbd -no-jump-pointer -xsendevent -text '\C\[Next]'"
F12

# make F14 do Ctrl+w
"xvkbd -no-jump-pointer -xsendevent -text '\Cw'"
F14

第一行是映射执行的命令,第二行是映射的键的名字。键名列表见:

Linux: X11 Keyboard Key Names

xbindkeys相关资料:xbindkeys - ArchWiki

但问题又来了,这个键名列表里只有键盘上的通用键,没有罗技键盘上的特殊键。还是无法映射。

最终方案

最终解决的方案灵感来源于设置全局截图快捷键。使用flameshot命令来实现全局截图,并在linux系统设置中将这个指令映射到shift+alt+A组合快捷键上。

参考资料:ubuntu下最好用的截图工具flameshot_flameshot ubuntu-CSDN博客

                https://zhuanlan.zhihu.com/p/641339868

这给了我灵感。由于linux系统设置自定义快捷键时是通过按下相应的键来实现的,那么我可以直接设置G6键的效果为:执行xvkbd -no-jump-pointer -xsendevent -text '\Cc'命令。

如上设置后,果然全局生效。

TODO

还需要寻找M575的驱动方法,还有全局鼠标手势(我习惯右键上划回到顶端)。有时间继续研究。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值