Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Is it possible to completely disable the built-in keyboard on a MacBook? No input should be possible from that keyboard when I connect an external keyboard. This is sort of possible with the trackpad and the mouse, is there an option (or indeed a hack!) to do the same with the built-in hardware?

share|improve this question
    
How about some of the solutions suggested in this similar superuser question? –  binarybob Oct 14 '12 at 18:40
1  
I started down the path of turning this into an applescript that would automatically toggle the internal keyboard on and off: sudo kextfind /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeybo‌​ard.kext/ 2> /tmp/keyboard-kext-out; if [ -s /tmp/keyboard-kext-out ]; then; echo "Kext is NOT loaded"; else; echo "Kext is loaded"; fi But I couldn't quite get it to work. Here's hoping that someone else with more motivation that me can pull that off. –  timmfin Feb 6 '13 at 18:19

1 Answer 1

From Googling around, I found this page. It suggests that you unload a AppleUSBTCKeyboard.kext to disable keyboard:

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

This will prompt you for your password and then give some errors, but it does disable the built in keyboard (tested on my ML 10.8.2)

To re-enable the builtin keyboard, load the kext file again:

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

BTW, I noticed that this immediately prints all that was typed on the builtin keyboard, so be ready for this (in Terminal this should probably just output some text).

share|improve this answer
2  
Does this still work for you on OS X Mavericks 10.9.1? It used to work for me before, but now I'm getting: (kernel) Can't unload kext com.apple.driver.AppleUSBTCKeyboard; classes have instances: (kernel) Kext com.apple.driver.AppleUSBTCKeyboard class AppleUSBTCKeyboard has 1 instance. Failed to unload com.apple.driver.AppleUSBTCKeyboard - (libkern/kext) kext is in use or retained (cannot unload). –  john2x Dec 20 '13 at 2:15
    
I’m getting the same error as @john2x but it does seem to be working despite the warning. –  Leo May 16 at 17:34

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.