在我寻找解决方案以禁用Macbook上的键盘时,我目前正在努力使用Launchd。
首先是背景:我在Macbook Pro 2010型号上洒了一些水,然后键盘上的一些键不再有效。我开始使用Mac作为带有外部键盘,鼠标和显示器的桌面,并且很长一段时间。但是随着移位键被卡住而变得更糟(不是键本身,而是我猜的主板上的某个地方)。该班次迫使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>
似乎有效:
launchctl load /Users/<username>/Library/LaunchAgents/DisableKeyboard.plist
返回
Users/<username>/Library/LaunchAgents/DisableKeyboard.plist: service already loaded
然而:
launchctl start DisableKeyboard
在
system.log:
com.apple.xpc.launchd[1] (DisableKeyboard[292]): Program specified by service is not a Mach-O executable file.
有什么问题?
答案 0 :(得分:3)
/Users/<username>/disable-keyboard.sh
的正确脚本是:
#!/bin/bash
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/