抄一下各位 MX Master3S 的键位设置,鞠躬 ♂ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Angryraven
V2EX    macOS

抄一下各位 MX Master3S 的键位设置,鞠躬 ♂

  •  
  •   Angryraven 173 天前 2457 次点击
    这是一个创建于 173 天前的主题,其中的信息可能已经有所发展或是发生改变。

    3S 用两天了还用不惯,键位设置短时间记不住,判断个人的设置不合理

    另外精度也没找准,总是比我想指的地方偏出那么一小段

    9 条回复    2025-04-27 16:14:41 +08:00
    cusuanan
        1
    cusuanan  
       173 天前
    侧键 Ctrl C 和 Ctrl V
    拇指按键 Enter
    然后配合 strokesplus 使用
    peteretep
        2
    peteretep  
       173 天前
    不习惯就换
    好的硬件基本一上手就知道合手的,2 天没感觉舒服,那就是型号选错了
    linxi7
        3
    linxi7  
       173 天前
    https://imgur.la/images/2025/04/27/Screen-Shot-2025-04-27-at-09.29.12.png
    我用的 3 ,主要改了拇指位的自定义按键,其他全默认
    adamwang
        4
    adamwang  
       173 天前
    我的是用 Mac Mouse Fix 设置,设置如下
    shigella
        5
    shigella  
       173 天前

    把所有日常用的快捷键都绑鼠标上了
    3x4 的组合非常夸张 但是用惯了已经有肌肉记忆了
    1101x1
        6
    1101x1  
       173 天前
    bettermouse
    Tink
        7
    Tink  
    PRO
       173 天前
    我是 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("鼠标快捷键模块已加载")
    ```
    Angryraven
        8
    Angryraven  
    OP
       172 天前
    感谢各位回复,看我感觉这鼠标不适合我...伤脑筋
    ekikaizeng
        9
    ekikaizeng  
       172 天前
    关于     助文档     自助推广系统     博客     API     FAQ     Solana     5581 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 03:35 PVG 11:35 LAX 20:35 JFK 23:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86