Diary over Finite Fields

515ひかるが書き溜めたメモとコラムと雑記

MacBook の内蔵キーボードを無効化するのに少し苦労した話

どうも、今日は久しぶりにパソコン関係の記事です。

わたしはmacOS Sierraを使っているのですが(買ったときからそうだったので)、MacBook の内蔵キーボードを無効化する方法を知りたくなったので調べました。

というのも、これがやりたかったからです。

f:id:hikaru515:20170528160610j:plain

トラックパッドを潰すとマウスを使わざるを得ないので、どうしても内蔵キーボードの上に外部キーボードを乗せたかったんですよね。

内蔵キーボードを無効化するのが思っていたよりも面倒だった(ちなみに後述しますが、その面倒くささのほとんどは自分のせいです)のでメモします。

最初に試した方法

まずはこの記事を参考に手動でもいいので無効化できないかやってみました。

qiita.com

$ sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext
(kernel) Kext com.apple.driver.AppleUSBTCKeyboard not found for unload request.
Failed to unload com.apple.driver.AppleUSBTCKeyboard - (libkern/kext) not found.

よくわかりませんが、エラーが発生してそもそも手動でも無効化できないことがわかりました。なんでかなとエラーメッセージで適当に調べていたところ、次のような issue がありました:

github.com

ここに、

This command doesn't work on MacOS Sierra.

と書き込んでいるかたがいらっしゃるので僕だけに起きたエラーではないのでしょう。で、この issue はもう解決している様子だったので Karabinner-Elements を使えばいいのかとインストールしてみることにしました。

Karabiner-Elements をビルドする

何も考えていなかったので、GitHub の README にしたがって僕はビルドしました。開発をするわけでないなら当然ビルドでなくインストーラーをダウンロードしたほうが早いに決まっているので、以下の手順は一般ユーザー向けではないかと思います。詳細は本家の Usage にしたがってください。

特に需要はないと思いますが、ビルド方法を書いておきます。

boostのインストール

ビルドにboostが必要らしいので、http://www.boost.org/ から最新のboostをダウンロードし、展開します。僕は ~/Download/boost_1_64_0.tar.gzにダウンロードして、以下のように配置しました。

$ cd ~/Download
$ tar zxvf boost_1_64_0.tar.gz
$ cd boost_1_64_0
$ sudo mkdir -p /opt/local/include
$ sudo mv boost /opt/local/include

Xcode のインストール

よくわかりませんが、 Xcode が必要だったのでインストールします。具体的には、make をしてみたらこのブログ記事にあるようなエラーが発生したので、この記事通りに対応したらビルドができたという感じです。

インストールに解説は不要かと思いますが、App StoreでXcodeで検索してインストールすればいいです。一度起動して、Agreeするのと、

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

というコマンドを実行しましょう。

ちなみに Xcode のダウンロードにめちゃくちゃ時間がかかりました。回線がしょぼい、悲しい。。。

make

あとは README の通りに git cloneしてmakeします。すると .dmgファイルが生成されているはずなので、起動してインストールします。

ビルド自体にはなんかエラーが出てましたが、僕が使っている範囲では正常に動いていると思います。

設定方法

LaunchpadにKarabiner-Elementsが現れているはずです。外部キーボードをさした状態でDeviceタブを見たときにキーボードが認識されていれば、内蔵キーボードは使えなくなっていると思います。

まとめ

  • 「これだけ有名なソフトウェアならインストーラくらいどっかにあるだろ」という発想をしよう、自分
  • ネット環境をもっとよくしよう自分

なんか今日はこれしかしていないんですがすでに疲れました。おしまい。