LinearMouse 配置完全指南:从基础到高级技巧
什么是LinearMouse?
LinearMouse 是一款强大的鼠标和触控板自定义工具,它允许用户通过 JSON 配置文件对输入设备进行精细控制。与系统自带的鼠标设置相比,LinearMouse 提供了更丰富的功能和更灵活的配置选项。
配置文件基础
配置文件位置
LinearMouse 的配置文件存储在用户目录下的 .config/linearmouse/linearmouse.json
文件中。如果该文件不存在,LinearMouse 会自动创建一个空配置文件。
专业建议
除非需要使用高级功能,否则建议优先使用图形界面进行设置修改,以避免手动编辑可能导致的语法错误。
配置文件格式
配置文件采用标准的 JSON 格式,目前不支持 JSON5 格式(这意味着不能在配置文件中添加注释)。
快速入门示例
以下是一个简单的配置示例,展示了如何反转鼠标的垂直滚动方向:
{
"$schema": "https://app.linearmouse.org/schema/0.7.2",
"schemes": [
{
"if": {
"device": {
"category": "mouse"
}
},
"scrolling": {
"reverse": {
"vertical": true
}
}
}
]
}
这个配置会为所有连接到设备的鼠标反转垂直滚动方向。
JSON Schema 说明
配置中的 $schema
字段定义了 JSON schema 的版本,这为代码编辑器(如 VS Code)提供了自动补全功能。每个 LinearMouse 版本都有对应的 schema 发布,同一主版本号下保证向后兼容。
核心概念:Schemes(方案)
Scheme 是 LinearMouse 配置的核心概念,它是一组在特定条件下激活的设置集合。
基本结构
每个 scheme 包含两个主要部分:
if
条件:定义该 scheme 何时生效- 具体设置:定义要应用的配置
例如,以下 scheme 仅在设备是鼠标时生效:
{
"if": {
"device": {
"category": "mouse"
}
},
"scrolling": {
"reverse": {
"vertical": true
}
}
}
设备匹配的高级技巧
精确匹配特定设备
通过供应商ID(vendorID)和产品ID(productID),可以为特定设备创建专属配置。这些ID可以在"关于本机"→"系统报告"→"蓝牙/USB"中找到。
{
"schemes": [
{
"if": {
"device": {
"vendorID": "0x046d",
"productID": "0xc52b"
}
},
"pointer": {
"acceleration": 0,
"speed": 0.36
}
}
]
}
应用匹配
可以为特定应用创建专属配置,使用应用的 bundle ID 进行匹配:
{
"schemes": [
{
"if": {
"app": "com.apple.Safari"
},
"scrolling": {
"reverse": {
"vertical": false
}
}
}
]
}
对于非标准应用(如Java应用),可以使用 parentApp
或 groupApp
进行匹配:
{
"schemes": [
{
"if": {
"parentApp": "org.polymc.PolyMC"
}
}
]
}
显示器匹配
还可以根据显示器名称创建特定配置:
{
"schemes": [
{
"if": {
"display": "DELL P2415Q"
},
"pointer": {
"acceleration": 0.5
}
}
]
}
多条件与方案合并
当多个 scheme 同时满足条件时,它们会按照定义的顺序合并。多个 if
条件可以使用数组形式表示,只要满足其中一个条件就会激活该 scheme。
{
"schemes": [
{
"if": [
{
"device": {
"vendorID": "0x046d"
}
},
{
"device": {
"vendorID": "0x045e"
}
}
],
"pointer": {
"acceleration": 0
}
}
]
}
按钮映射详解
按钮映射功能允许为鼠标按钮或滚轮分配特定动作。
基本按钮映射
{
"buttons": {
"mappings": [
{
"button": 2,
"action": "launchpad"
}
]
}
}
按钮编号说明:
| 按钮 | 描述 | |------|------| | 0 | 主按钮(通常是左键) | | 1 | 次按钮(通常是右键) | | 2 | 辅助按钮(通常是中键/滚轮按钮) | | 3 | 第四个按钮(通常是后退按钮) | | 4 | 第五个按钮(通常是前进按钮) | | 5-31 | 其他按钮 |
组合键功能
可以为按钮组合指定动作:
{
"buttons": {
"mappings": [
{
"button": 4,
"command": true,
"action": "missionControl"
}
]
}
}
支持 shift
、option
和 control
修饰键。
桌面切换功能
{
"buttons": {
"mappings": [
{
"button": 3,
"command": true,
"action": "missionControl.spaceLeft"
},
{
"button": 4,
"command": true,
"action": "missionControl.spaceRight"
}
]
}
}
注意
需要授予额外权限才能模拟按键操作。
按键重复功能
设置 repeat: true
可以让动作在按住按钮时重复执行:
{
"buttons": {
"mappings": [
{
"button": 4,
"repeat": true,
"option": true,
"action": "media.volumeUp"
}
]
}
}
滚轮映射
可以将滚轮动作映射到特定功能:
{
"buttons": {
"mappings": [
{
"scroll": "up",
"option": true,
"action": "media.volumeUp"
}
]
}
}
按钮交换
可以交换按钮功能:
{
"buttons": {
"mappings": [
{
"button": 3,
"action": "mouse.button.forward"
},
{
"button": 4,
"action": "mouse.button.back"
}
]
}
}
动作类型大全
简单动作
{
"action": "<action>"
}
常用动作包括:
missionControl
: 调度中心launchpad
: 启动台media.volumeUp
: 音量增加mouse.button.back
: 模拟后退按钮
执行Shell命令
{
"action": {
"run": "open -a Calculator"
}
}
精确滚动控制
{
"action": {
"mouse.wheel.scrollUp": 2
}
}
或按像素滚动:
{
"action": {
"mouse.wheel.scrollLeft": "32px"
}
}
模拟键盘快捷键
{
"action": {
"keyPress": ["shift", "command", "4"]
}
}
结语
LinearMouse 提供了极其灵活的配置选项,从基本的滚动方向调整到复杂的设备、应用特定配置,再到按钮功能重映射,几乎可以满足所有鼠标自定义需求。通过 JSON 配置文件,用户可以精确控制每一个细节,打造完全符合个人使用习惯的鼠标体验。
对于初次接触的用户,建议从简单的配置开始,逐步尝试更复杂的功能。记住在修改配置文件前做好备份,以避免意外错误导致配置丢失。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考