怎么弄一个快捷开关 FN + F1 ~F12 的功能键 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mypursue
V2EX    macOS

怎么弄一个快捷开关 FN + F1 ~F12 的功能键

  •  
  •   mypursue 3 月 19 日 1742 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有时候我用一些专业软件,或者玩游戏的时候需要用到键盘上的 F1~F12 那些快捷键。 但是平常我还是需要关掉,调节音量大小屏幕明暗的。 我目前自己用快捷指令创建了一个 Applescript ,用 AI 写的。但是这个快捷指令只能打开到开关 FN+F1~F2 这个界面,最后还是我要点击开关。 用了不同的 AI ,但是怎么都修改不出可以自动开关,都是只能到那个界面。

    代码如下: tell application "System Settings" activate -- 跳转到功能键设置页面 do shell script "open x-apple.systempreferences:com.apple.Keyboard-Settings.extension?FunctionKeys" end tell delay 1 -- 增加一点延迟,确保开关已经加载出来 tell application "System Events" tell process "System Settings" set frontmost to true try -- 核心逻辑:在这个子窗口的所有层级里寻找第一个“开关 (group)”或“复选框” -- 在新版 macOS 中,这种开关往往被识别为可以点击的 group 或 switch -- 尝试路径 A:寻找第一个开关 set theToggle to first checkbox of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1 of window 1 click theToggle delay 0.3 -- 点击右下角的“完成”按钮 click button "完成" of window 1 on error -- 尝试路径 B:如果 A 失败,尝试通用的 UI 元素点击 try -- 直接通过 UI 元素索引点击,通常这是页面上第一个也是唯一一个开关 click checkbox 1 of group 1 of scroll area 1 of group 1 of group 2 of splitter group 1 of group 1 of window 1 click button "完成" of window 1 on error display notification "坐标或路径匹配失败,请检查辅助功能权限。" with title "切换失败" end try end try end tell end tell

    12 条回复    2026-04-02 13:19:28 +08:00
    di11wei
        1
    di11wei  
       3 月 19 日   1
    Karabiner-Elements
    mypursue
        2
    mypursue  
    OP
       3 月 19 日
    @di11wei 我只需要设置一个快捷开关,这个软件只是复杂化我想要的东西
    everbef
        3
    everbef  
       3 月 19 日
    1 楼说的那个可能更方便,它是通过记录 app identifier 来实现的。是标准功能键还是媒体键,取决于当前的前台软件
    detecti1914
        4
    detecti1914  
       3 月 19 日
    同推荐 Karabiner-Elements ,可以按照不同 App 设置
    gauzung
        5
    gauzung  
       3 月 19 日
    mark 一下, 偶尔玩游戏需要用到 F 按键, 不过我是 TouchBar, 不知道有没有类似的东西
    timmyliu
        6
    timmyliu  
       3 月 19 日
    PowerToys
    mypursue
        7
    mypursue  
    OP
       3 月 19 日
    @detecti1914 我知道这个软件强大,但是我的要求很很单一,不想为这个要求去安装一个软件占用运行内容。
    不过已经解决了,reddit 一个人给我写了代码,成功解决我的问题了。
    lxmfly123
        8
    lxmfly123  
       3 月 20 日
    hammerspoon 让 AI 帮你写个脚本
    Ch1hao
        9
    Ch1hao  
       3 月 20 日
    一样的需求,插个眼,拜托 up 有方法踢踢我
    mypursue
        10
    mypursue  
    OP
       3 月 21 日
    这个是 reddit 上一个人帮我写的!
    https://gist.github.com/alkusin/c6fb4021f0b78dc1e4254375fde3524d
    Ch1hao
        11
    Ch1hao  
       3 月 23 日
    @mypursue #10 根据这个改了一版。自动切换,会有 UI 操作过程,尝试了无 UI 切换感知的,但是还要点击 F1 来试试是否切换成功,所以就觉得不如留着 UI 好了。

    https://www.icloud.com/shortcuts/faace93346a942f59e84cb068fcf3d18
    19cm
        12
    19cm  
       22 天前
    外接键盘的话, 用 f13 来切就行, 大点的键盘盘子都有驱动支持自定义
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2823 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 68ms UTC 01:40 PVG 09:40 LAX 18:40 JFK 21:40
    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