禁用Macbook的键盘

时间:2016-08-11 11:31:25

标签: macos keyboard shift launchd

在我寻找解决方案以禁用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.

有什么问题?

1 个答案:

答案 0 :(得分:3)

/Users/<username>/disable-keyboard.sh的正确脚本是:

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