2016-08-11 8 views
2

В моем поиске решения по отключению клавиатуры на моем Macbook я в настоящее время борется с Launchd.Отключить клавиатуру Macbook

Некоторые предпосылки: я пролил немного воды на моей модели Macbook Pro 2010, и с тех пор некоторые клавиши на клавиатуре больше не работают. Я начал использовать Mac в качестве рабочего стола с внешней клавиатурой, мышью и монитором и отлично поработал. Но тогда это ухудшилось, когда клавиша shift застряла (не сам ключ, а где-то на материнской плате, я думаю). Сдвиг заставляет Mac загружаться в безопасный режим. Я обошел это, нажав клавишу Option во время загрузки. Но теперь есть что-то новое: некоторые клавиши срабатывают в случайном порядке, поэтому компьютер становится непригодным для использования ... я обойти эту проблему, используя логин не-пароля, и с помощью этой команды оболочки:

sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/ 

Я поставил эту команду в скрипте под названием disable-keyboard.sh. Он отлично работает! Внутренняя клавиатура выключена, а внешняя клавиатура работает хорошо.

Однако выполнение этой команды - настоящая боль при случайных запускаемых ключах, что затрудняет загрузку терминала. Поэтому мне нужно запустить эту команду во время загрузки. Я попал в запуск программ:

Я сделал список свойств файла:

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

Решение: Сценарий, который находится в ведении запуск программ должна начинаться с линии «#!/Bin/Баш» –

+0

Это полностью решить мою проблему, спасибо вы. Хвост системных журналов помог мне определить, что тоже не так: tail -f /var/log/system.log – martinedwards

+1

Это здорово услышать Мартина! –

ответ

2

Правильный сценарий на /Users/<username>/disable-keyboard.sh является:

#!/bin/bash 
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/ 
Смежные вопросы