Macos 禁用Macbook';键盘

Macos 禁用Macbook';键盘,macos,keyboard,shift,launchd,Macos,Keyboard,Shift,Launchd,在我寻找禁用Macbook键盘的解决方案时,我目前正在努力使用Launchd 首先是一些背景:我在MacBookPro 2010上洒了一些水,从那以后键盘上的一些键就不能用了。我开始将Mac电脑用作带有外部键盘、鼠标和显示器的桌面,并在一段时间内表现出色。但随着shift键卡住,情况变得更糟(我想不是键本身,而是主板上的某个地方)。这种转变迫使Mac进入安全模式。我通过在开机时按Option键解决了这个问题。 但现在有了一些新的东西:一些键被随机触发,所以计算机无法使用。。。我使用无密码登录并通

在我寻找禁用Macbook键盘的解决方案时,我目前正在努力使用Launchd

首先是一些背景:我在MacBookPro 2010上洒了一些水,从那以后键盘上的一些键就不能用了。我开始将Mac电脑用作带有外部键盘、鼠标和显示器的桌面,并在一段时间内表现出色。但随着shift键卡住,情况变得更糟(我想不是键本身,而是主板上的某个地方)。这种转变迫使Mac进入安全模式。我通过在开机时按Option键解决了这个问题。 但现在有了一些新的东西:一些键被随机触发,所以计算机无法使用。。。我使用无密码登录并通过运行以下shell命令解决了此问题:

sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/
我把这个命令放在一个名为disable-keyboard.sh的脚本中。 它工作得很好!内部键盘关闭,外部键盘工作正常

然而,运行这个命令是一件非常痛苦的事情,因为随机触发的键使得加载终端变得非常困难。所以我需要在启动时运行这个命令。我进入了Launchd:

我创建了一个属性列表文件:

more /Users/<username>/Library/LaunchAgents/DisableKeyboard.plist

<xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>DisableKeyboard</string>
    <key>Program</key>
    <string>/Users/<username>/disable-keyboard.sh</string>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

怎么了?

/Users//disable keyboard.sh中正确的脚本是:

#!/bin/bash
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/

解决方案:Launchd运行的脚本需要以“#!/bin/bash”行开头。这完全解决了我的问题,谢谢。跟踪系统日志也有助于我发现问题所在:tail-f/var/log/system.log听到Martin的消息太好了!
Users/<username>/Library/LaunchAgents/DisableKeyboard.plist: service already loaded
system.log:


com.apple.xpc.launchd[1] (DisableKeyboard[292]): Program specified by service is not a Mach-O executable file.
#!/bin/bash
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/