实际上,您可以使用 osascript 无需程序即可轻松完成此操作。
osascript -e 'tell application "System Events" to key code 144 using command down'
但是当您插入电缆时,它不会自动执行此操作。
如果您还想使用单个蓝牙键盘和触控板,那么您可以将它们切换到 macbook,方法是使用 blueutil 暂时禁用 imac 上的蓝牙,以便 macbook 可以抓取键盘和触控板。每当您想退出目标显示模式时,只需关闭我的 macbook 上的蓝牙并等待几秒钟,让 imac 重新连接到键盘和触控板。
在您的 imac 上,将以下脚本放入文件 ~/bin/target-display-mode,然后运行 `chmod +x ~/bin/target-display-mode
然后在您的 imac 上,在术语窗口中,将 target-display-mode 作为命令运行。如果您的 macbook 上启用了蓝牙,并且它已经知道您的键盘和触控板,那么它将连接到它们。或者打开蓝牙首选项并找到每个设备并“连接”(使用 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 上重新打开蓝牙。没有其他键盘或硬连线鼠标,这一点非常重要。如果蓝牙仍然关闭,您将无法在不使用 ssh 或重新启动的情况下重新连接它们。