Linux使用LogiOps配置Logi鼠标

        最近装了个Windows和Arch的双系统,但是在Arch下使用鼠标时感觉有些卡顿,上Arch wiki也没有解决。

        我们知道,Windows下有着Logi官方的驱动软件,但是没有Linux版的。通过上网搜索,发现了一个开源的替代驱动logiOps(https://github.com/PixlOne/logiops)。以下是我的配置过程。

一、使用环境

1. 操作系统

ArchLinux x86_64    Kernel:linux 6.9.10

2. 鼠标

Logi POP Mouse

二、兼容设备

以下摘自logiops/TESTED.md at main · PixlOne/logiops · GitHub

This is currently only compatible with HID++ >2.0 devices.

This is not by any means an exhaustive list. Many more devices are supported but these devices are the ones that are confirmed to be working. To add to this list, submit a pull request adding your device.(翻译:这绝不是一份详尽的清单。支持更多设备,但这些设备已确认可以正常工作。若要添加到此列表,请提交添加设备的拉取请求。)

DeviceCompatible?Config Name
MX Master 3SYesMX Master 3S
MX Master 3YesWireless Mouse MX Master 3
MX Master 3 for MacYesMX Master 3 for Mac
MX Master 2SYesWireless Mouse MX Master 2S
MX MasterYesWireless Mouse MX Master
MX Anywhere S2YesWireless Mobile Mouse MX Anywhere 2S
MX Anywhere 3YesMX Anywhere 3
MX VerticalYesMX Vertical Advanced Ergonomic Mouse
MX ErgoYesMX Ergo Multi-Device Trackball
MX Ergo M575YesERGO M575 Trackball
M720YesM720 Triathlon Multi-Device Mouse
M590YesM585/M590 Multi-Device Mouse
T400YesZone Touch Mouse T400
MX KeysYesMX Keys Wireless Keyboard
M500sYesAdvanced Corded Mouse M500s

尽管我使用的Logi Pop Mouse并不在上面的列表中,但是也是同样支持的。

三、安装过程

1. 对于Arch用户

在AUR中就有LogiOps,所以安装过程十分简单,直接用paru或者yay安装即可。

示例:

paru -S logiops

2. 对于其他Linux发行版用户

请参考LogiOps项目的README.md文件。

或者参考这篇博客logiops,在 Linux下设置罗技鼠标的按键和手势

3. 设置开机自启

sudo systemctl enable logid

四、配置过程

LogiOps的配置主要是修改 /etc/logid.cfg 中的内容

这一部分参考:Configuration · PixlOne/logiops Wiki · GitHub

1. 准备工作

连接鼠标后,首先关闭logid进程:

sudo systemctl stop logid

然后执行 sudo logid -v 打印Debug信息(记得先关闭logid进程)

我的打印结果如下:

根据输出的信息,可以知道鼠标的名称和各按键的CID及一些特征信息(注意每种鼠标的CID对应的按键可能不同,可以根据鼠标的特征进行判断,且一般前两个是左右键。如果不知道具体是哪个可以先继续往后看,知道整个配置流程后可以试出来)。

有了以上信息,接下来就是正式对 /etc/logid.cfg 的配置了。

2. 对 logid.cfg 的配置

这里展示我的配置:

devices: (
{
    // 鼠标名
    name: "Logi POP Mouse";
    // 和滚动相关的设置
    hiresscroll:
    {
        hires: false;
        invert: false;
        target: false;
    };
    // 鼠标默认dpi
    dpi: 2000;
    // 按键设置
    buttons: (
        {
            // 根据按键cid确定是鼠标上哪个按键
            cid: 0x108;
            action =
            {
                // 动作类型:手势
                type: "Gestures";
                gestures: (
                    {
                        direction: "Up";    // 按住向上移动
                        mode: "OnRelease";  // 按键松开时触发
                        action =
                        {
                            // 相当于按下键盘上的按键:KEY_VOLUMEUP(音量+)
                            
                            type: "Keypress";
                            keys: ["KEY_VOLUMEUP"];
                        };
                    },
                    {
                        direction: "Down";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_VOLUMEDOWN"];
                        };
                    },
                    {
                        direction: "Left";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_PREVIOUSSONG"];
                        };
                    },
                    {
                        direction: "Right";
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_NEXTSONG"];
                        }
                    },
                    {
                        direction: "None"
                        mode: "OnRelease";
                        action =
                        {
                            type: "Keypress";
                            keys: ["KEY_MUTE"];
                        }
                    }
                );
            };
        }
    );
}
);

 通过以上配置的效果如下:

dpi2000
cid0x108
手势(按住向上)音量+
手势(按住向下)音量-
手势(按住向左)上一首
手势(按住向右)下一首
手势(只点击)静音

 如果想实现类似 ctrl + alt + A 这样的多按键,可以写成这样:

keys: ["KEY_LEFTCTRL", "KEY_LEFTALT", "KEY_A"];

3. 启动 logid 进程

最后不要忘记启动 logid 进程

sudo systemctl start logid

 4. 附:Linux 下键盘按键对应宏定义

可以在Bootlin中查阅自己使用的Linux内核版本对应的源码中的 input-event-codes.h (示例)

这里粘贴6.10内核版本的部分内容供参考:

#define KEY_RESERVED	0
#define KEY_ESC			1
#define KEY_1			2
#define KEY_2			3
#define KEY_3			4
#define KEY_4			5
#define KEY_5			6
#define KEY_6			7
#define KEY_7			8
#define KEY_8			9
#define KEY_9			10
#define KEY_0			11
#define KEY_MINUS		12
#define KEY_EQUAL		13
#define KEY_BACKSPACE	14
#define KEY_TAB			15
#define KEY_Q			16
#define KEY_W			17
#define KEY_E			18
#define KEY_R			19
#define KEY_T			20
#define KEY_Y			21
#define KEY_U			22
#define KEY_I			23
#define KEY_O			24
#define KEY_P			25
#define KEY_LEFTBRACE	26
#define KEY_RIGHTBRACE	27
#define KEY_ENTER		28
#define KEY_LEFTCTRL	29
#define KEY_A			30
#define KEY_S			31
#define KEY_D			32
#define KEY_F			33
#define KEY_G			34
#define KEY_H			35
#define KEY_J			36
#define KEY_K			37
#define KEY_L			38
#define KEY_SEMICOLON	39
#define KEY_APOSTROPHE	40
#define KEY_GRAVE		41
#define KEY_LEFTSHIFT	42
#define KEY_BACKSLASH	43
#define KEY_Z			44
#define KEY_X			45
#define KEY_C			46
#define KEY_V			47
#define KEY_B			48
#define KEY_N			49
#define KEY_M			50
#define KEY_COMMA		51
#define KEY_DOT			52
#define KEY_SLASH		53
#define KEY_RIGHTSHIFT	54
#define KEY_KPASTERISK	55
#define KEY_LEFTALT		56
#define KEY_SPACE		57
#define KEY_CAPSLOCK	58
#define KEY_F1			59
#define KEY_F2			60
#define KEY_F3			61
#define KEY_F4			62
#define KEY_F5			63
#define KEY_F6			64
#define KEY_F7			65
#define KEY_F8			66
#define KEY_F9			67
#define KEY_F10			68
#define KEY_NUMLOCK		69
#define KEY_SCROLLLOCK	70

提示:可以搜索其中以“KEY_”开头的宏定义

五、参考文献:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值