3S 用两天了还用不惯,键位设置短时间记不住,判断个人的设置不合理
另外精度也没找准,总是比我想指的地方偏出那么一小段
![]() |
1
cusuanan 17 小时 23 分钟前
侧键 Ctrl C 和 Ctrl V
拇指按键 Enter 然后配合 strokesplus 使用 |
![]() |
2
peteretep 17 小时 22 分钟前
不习惯就换
好的硬件基本一上手就知道合手的,2 天没感觉舒服,那就是型号选错了 |
3
linxi7 17 小时 15 分钟前
https://imgur.la/images/2025/04/27/Screen-Shot-2025-04-27-at-09.29.12.png
我用的 3 ,主要改了拇指位的自定义按键,其他全默认 |
![]() |
4
adamwang 16 小时 27 分钟前
|
![]() |
5
shigella 16 小时 18 分钟前
|
![]() |
6
1101x1 15 小时 46 分钟前
bettermouse
|
![]() |
7
Tink 15 小时 22 分钟前
我是 hammerspoon 实现的
``` -- 创建日志记录器 local logger = hs.logger.new('MouseShortcuts','debug') -- 创建鼠标事件监听器 -- Logitech Anywhere 2S 按键映射 local mouseButtons = { left = 0, right = 1, back = 3, -- 靠后侧键 forward = 4, -- 靠前侧键 wheel_button = 2 -- 滚轮后边的功能键 } -- 声明监听器变量 local mouseWatcher = nil local scrollWatcher = nil -- 定义快捷键行为 local function handleMouseButton(button, modifiers) -- 滚轮后边的功能键 = Mission Control if button == mouseButtons.wheel_button then hs.task.new("/usr/bin/open", nil, {"-a", "Mission Control"}):start() return true end -- 靠前侧键 = 返回 if button == mouseButtons.forward then hs.eventtap.keyStroke({"cmd"}, "[") return true end -- 靠后侧键 = 前进 if button == mouseButtons.back then hs.eventtap.keyStroke({"cmd"}, "]") return true end return false end -- 处理滚轮横向滚动 local function handleScrollWheel(event) -- 使用 axis2 来监听横向滚动 local dx = event:getProperty(hs.eventtap.event.properties['scrollWheelEventDeltaAxis2']) -- 输出滚轮事件日志 if dx ~= 0 then logger.i(string.format("滚轮横向拨动 - 方向值: %d", dx)) end -- 如果不是横向滚动,直接返回 if dx == 0 then return false end -- 直接根据方向触发切换 if dx < 0 then logger.i("切换到左边桌面") hs.task.new("/usr/bin/osascript", nil, {"-e", 'tell application "System Events" to key code 123 using control down'}):start() return true elseif dx > 0 then logger.i("切换到右边桌面") hs.task.new("/usr/bin/osascript", nil, {"-e", 'tell application "System Events" to key code 124 using control down'}):start() return true end return false end -- 创建监听器的函数 local function createWatchers() -- 创建鼠标按键事件监听 mouseWatcher = hs.eventtap.new({ hs.eventtap.event.types.otherMouseDown, hs.eventtap.event.types.otherMouseUp, hs.eventtap.event.types.leftMouseDown, hs.eventtap.event.types.leftMouseUp, hs.eventtap.event.types.rightMouseDown, hs.eventtap.event.types.rightMouseUp, hs.eventtap.event.types.otherMouseDragged }, function(event) local eventType = event:getType() local button = event:getProperty(hs.eventtap.event.properties.mouseEventButtonNumber) local modifiers = event:getFlags() -- 转换修饰键为数组形式 local modArray = {} for k, v in pairs(modifiers) do table.insert(modArray, k) end -- 获取事件类型的可读名称 local eventNames = { [hs.eventtap.event.types.otherMouseDown] = "其他按键按下", [hs.eventtap.event.types.otherMouseUp] = "其他按键释放", [hs.eventtap.event.types.leftMouseDown] = "左键按下", [hs.eventtap.event.types.leftMouseUp] = "左键释放", [hs.eventtap.event.types.rightMouseDown] = "右键按下", [hs.eventtap.event.types.rightMouseUp] = "右键释放", [hs.eventtap.event.types.otherMouseDragged] = "其他按键拖动" } -- 输出鼠标事件日志 -- logger.i(string.format("鼠标事件 - 类型: %s, 按钮: %d, 修饰键: %s", -- eventNames[eventType] or eventType, -- button or 0, -- hs.inspect(modArray))) -- 仅对按下事件执行操作 if eventType == hs.eventtap.event.types.otherMouseDown then return handleMouseButton(button, modArray) end return false end) -- 创建滚轮事件监听 scrollWatcher = hs.eventtap.new({ hs.eventtap.event.types.scrollWheel }, handleScrollWheel) -- 启动监听器 mouseWatcher:start() scrollWatcher:start() end -- 检查并重启监听器的函数 local function checkWatchers() if not mouseWatcher:isEnabled() or not scrollWatcher:isEnabled() then logger.w("监听器已停止,尝试重新启动...") -- 停止现有监听器 if mouseWatcher then mouseWatcher:stop() end if scrollWatcher then scrollWatcher:stop() end -- 重新创建并启动监听器 createWatchers() logger.i("监听器已重新启动") end end -- 创建定时器定期检查监听器状态 local watcherChecker = hs.timer.new(5, checkWatchers) watcherChecker:start() -- 初始化监听器 createWatchers() -- 添加快捷键用于手动重启监听器 hs.hotkey.bind({"cmd", "alt"}, "m", function() logger.i("手动重启鼠标监听器...") createWatchers() logger.i("鼠标监听器已重启") end) logger.i("鼠标快捷键模块已加载") ``` |
![]() |
8
Angryraven OP 感谢各位回复,看我感觉这鼠标不适合我...伤脑筋
|
![]() |
9
ekikaizeng 10 小时 31 分钟前
|