実際には、osascript を使用して、プログラムなしでこれを非常に簡単に行うことができます。
osascript -e 'tell application "System Events" to key code 144 using command down'
ただし、ケーブルを接続しても自動的には実行されません。
単一の Bluetooth キーボードとトラックパッドも使用する場合は、blueutil を使用して Macbook に切り替えて、imac で Bluetooth を一時的に無効にし、Macbook がキーボードとトラックパッドを取得できるようにします。ターゲット表示モードを終了したいときはいつでも、Macbook の Bluetooth をオフにして、imac がキーボードとトラックパッドに再接続されるまで数秒待ちます。
お使いの imac で、以下のスクリプトをファイル ~/bin/target-display-mode に置き、`chmod +x ~/bin/target-display-mode を実行します
次に、imac の用語ウィンドウで、target-display-mode をコマンドとして実行します。MacBook で Bluetooth が有効になっていて、キーボードとトラックパッドが既に認識されている場合は、それらに接続されます。または、Bluetooth 設定を開き、各デバイスを見つけて「接続」します (MacBook の組み込みキーボードとトラックパッドを使用)。
#! /usr/bin/env bash
# Enter target-display mode with a macbook connected by cable;
# then, temporarily turn off bluetooth so the macbook can the
# bluetooth keyboard, trackpad and other devices that are currently
# connected to the imac.
#
# Later, turn bluetooth back on so the imac can later reconnect to it's
# bluetooth devices.
#
# To exit target display mode, turn off bluetooth on the macbook and
# disconnect the cable. After a few seconds, the imac will reconnect to
# the keyboard and trackpad.
#
osascript -e 'tell application "System Events" to key code 144 using command down'
sleep 5
(
/usr/local/bin/blueutil off
sleep 60
/usr/local/bin/blueutil on
) &
スクリプトが 60 秒間待機してから、imac で Bluetooth をオンに戻すことに注意してください。別のキーボードや有線マウスを持っていないことは非常に重要です。Bluetooth がオフのままの場合、ssh を使用するか再起動しないと再接続できません。