macOS - 启动前运行 plist 脚本

macOS - 启动前运行 plist 脚本

左侧选项MacBook 的 alt 键始终处于按下状态 - 不是机械的,但我猜它正在生成按键事件。屏幕键盘显示选项键被按下(有红色边框)。因此在 mac 登录屏幕(密码屏幕)中,由于选项键按下后,输入的密码字符将变为特殊字符(例如,w 变为 ∑)。

因此,我已禁用左选项键使用hidutil

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x7000000E2,
    "HIDKeyboardModifierMappingDst":0x700000000}]}'

我已将其制作成 plist 脚本并使用其加载launchctl

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.hidutilKeyMapping</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--matching</string>
        <string>{"ProductID":0x1234}</string> <!-- Replaced with actual product id -->
        <string>--set</string>
        <string>{"UserKeyMapping":[
            {
              "HIDKeyboardModifierMappingSrc": 0x7000000E2,
              "HIDKeyboardModifierMappingDst": 0x700000000
            }
        ]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

我已经将其加载为

launchctl load ~/Library/LaunchAgents/local.hidutilKeyMapping.plist

尽管我已经RunAtLoad设定真的,直到我登录后它才会生效。

我想应用按键映射(禁用左选项键) 在启动过程中,即在 Apple 徽标出现期间/之前。

我尝试过plist

  1. ~/Library/LaunchAgents
  2. /Library/LaunchDaemons

这两个选项似乎都不起作用,即,直到我通过密码屏幕后,键映射才会应用。

如何在启动时调用此 plist 脚本?

注意:我已暂时重置密码,使其仅包含特殊字符以便输入密码。

答案1

设置LimitLoadToSessionTypeStandardIO我有用。

<key>LimitLoadToSessionType</key>
<array>
<string>StandardIO</string>
</array>

相关内容