使用 iPad 作为 MacMini 独立显示器的完整解决方案
前言
MacMini 作为服务器使用时,通常需要外接显示器才能正常启动和运行。但如果你手头有一台 iPad,完全可以将其作为 MacMini 的独立显示器使用,既节省成本又充分利用现有设备。
本文将详细介绍如何通过 macOS 的**随航(Sidecar)**功能,配合虚拟显示器软件和自动化脚本,实现 iPad 作为 MacMini 独立显示器的完整解决方案。
实现原理
核心思路如下:
- 虚拟显示器:MacMini 作为服务器启动时需要显示器,使用
Better Display软件创建虚拟显示器 - 随航功能:利用 macOS 自带的随航功能将 iPad 连接到 MacMini
- 自动化脚本:通过 AppleScript 自动化连接流程,实现一键连接
环境要求
- macOS 版本:macOS 26+(本文脚本适用于最新版本,旧版本请参考文末的旧版脚本)
- 设备:MacMini + iPad(需支持随航功能)
- 网络:MacMini 和 iPad 需连接到同一 Wi-Fi 网络
- 软件:Better Display(虚拟显示器软件)
详细配置步骤
一、MacMini 基础设置
1. 系统登录设置
- 打开 设置 → 用户与群组 → 登录项
- 选择 自动以此身份登录,选择登录账户
- ⚠️ 注意:此操作需要关闭文件保险箱(FileVault)
2. 启用远程登录
- 打开 设置 → 通用 → 共享
- 开启 远程登录 功能
3. 屏幕锁定设置
为避免连接中断,需要调整屏幕锁定设置:
- 打开 设置 → 锁定屏幕
- 将以下选项均设置为 永不:
- 不活跃时启动屏幕保护程序
- 不活跃时关闭显示器
- 屏幕保护程序启动或显示器关闭后需要密码
4. 安装并配置 Better Display
- 下载并安装 Better Display 软件
- 打开 设置 → 通用 → 登录项
- 将 Better Display 添加到登录项,确保开机自启动
- 在 Better Display 中新建一个虚拟屏幕并启用
- 平时不用时可以关闭虚拟屏幕以节省资源
5. 配置显示器连接
- 打开 设置 → 显示器
- 点击 添加显示器,选择 iPad
- 将连接模式设置为 镜像
二、创建自动化连接脚本
1. 创建快捷指令脚本
- 打开 快捷指令 App
- 点击 + 创建新快捷指令
- 搜索并添加 运行 AppleScript 操作
- 粘贴以下代码:
-- 获取IP地址
on getIPAddress()
set ipStr to ""
set ipTypeStr to ""
try
set foundIP to do shell script "ipconfig getifaddr en0"
set ipStr to foundIP
set ipTypeStr to "wifi"
on error
try
set foundIP to do shell script "ipconfig getifaddr en1"
set ipStr to foundIP
set ipTypeStr to "wifi"
on error
set ipStr to ""
set ipTypeStr to ""
end try
end try
return {ipStr, ipTypeStr}
end getIPAddress
-- 关闭窗口
on closeWindow()
tell application "System Settings" to quit
end closeWindow
-- 第一步:打开系统显示器设置
open location "x-apple.systempreferences:com.apple.preference.displays"
-- 等待窗口打开
delay 1
tell application "System Events"
tell process "System Settings"
-- 确保窗口在前台
set frontmost to true
delay 0.2
-- 标记是否找到目标按钮
set foundButton to false
-- 最大Tab次数限制
set maxTabs to 20
set tabCount to 0
-- 第二步:使用Tab键导航查找+按钮(description包含"显示器设置")
repeat while not foundButton and tabCount < maxTabs
-- 按Tab键移动到下一个元素
keystroke tab
delay 0.03
set tabCount to tabCount + 1
-- 深度优先搜索焦点元素(限制深度为4,目标元素在深度4)
try
-- 初始化搜索栈
set searchStack to {}
set maxDepth to 4
repeat with elem in every UI element of window 1
set end of searchStack to {elem, 0}
end repeat
-- 深度优先搜索
repeat while (count of searchStack) > 0 and not foundButton
-- 取出栈顶元素和深度
set currentItem to item 1 of searchStack
set currentElem to item 1 of currentItem
set currentDepth to item 2 of currentItem
set searchStack to items 2 thru -1 of searchStack
-- 限制递归深度
if currentDepth <= maxDepth then
try
-- 检查是否为焦点元素,且只在深度3-4时检查description(目标在深度4)
if value of attribute "AXFocused" of currentElem is true then
if currentDepth >= 3 then
try
if description of currentElem contains "显示器设置" then
set foundButton to true
keystroke return
exit repeat
end if
end try
end if
end if
end try
-- 将子元素加入搜索栈
if currentDepth < maxDepth then
try
repeat with child in every UI element of currentElem
set end of searchStack to {child, currentDepth + 1}
end repeat
end try
end if
end if
end repeat
end try
end repeat
-- 第三步:如果找到按钮,继续操作
if foundButton then
-- 等待菜单打开
delay 0.3
-- 按第一次下方向键
key code 125
delay 0.1
-- 按第二次下方向键
-- 兼容可能有连接键盘什么的,多按几次也只会选择最后一个选项
key code 125
delay 0.1
-- 按第三次下方向键,选中镜像扩展第一个选项
key code 125
delay 0.1
-- 第四步:按回车键,连接成功
keystroke return
-- 播报连接成功
say "连接成功"
else
-- 如果没有找到按钮,播报IP地址
set {ipAddress, ipType} to my getIPAddress()
say "ip为: " & ipAddress & "。连接终止!"
end if
end tell
end tell
-- 关闭窗口
my closeWindow()
2. 配置脚本权限
- 在快捷指令中点击 语法检测,确保代码无误
- 将快捷指令命名为 iPad 并保存
- 右键点击快捷指令,选择 添加到程序坞,方便快速访问
- 打开 设置 → 隐私与安全 → 辅助功能
- 在 允许下面的应用程序控制你的电脑 中,添加:
- 快捷指令
- iPad 脚本(如果系统提示,选择允许)
3. 测试脚本
在终端中运行以下命令测试脚本是否正常工作:
open -a 'iPad.app'
如果脚本运行成功,系统会自动打开显示器设置并尝试连接 iPad。
三、iPad 端配置(可选)
如果你希望通过 iPad 主动连接 MacMini,可以配置以下步骤:
⚠️ 前提条件:
- iPad 和 MacMini 需连接到同一 Wi-Fi 网络
- 需要提前知道 MacMini 的 IP 地址
- MacMini 需开启远程登录
- 在 iPad 上打开 快捷指令 App
- 创建新快捷指令,搜索并添加 通过 SSH 运行脚本
- 配置 SSH 连接信息:
- IP 地址:MacMini 的 IP 地址(如:192.168.1.100)
- 端口:22
- 用户名:MacMini 的登录用户名
- 密码:MacMini 的登录密码
- 在脚本框中输入:
open -a 'iPad.app' - 运行快捷指令即可自动连接到 MacMini
四、高级配置
1. 开机自动连接
如果需要每次开机自动连接 iPad:
- 将快捷指令生成的 App 添加到 设置 → 通用 → 登录项
- 这样 MacMini 启动后会自动执行连接脚本
2. 有线连接(提高稳定性)
如果 Wi-Fi 连接不稳定,可以使用 USB 线连接:
- 使用 USB-C 或 Lightning 数据线连接 iPad 和 MacMini
- 如果连接报错,可能是防火墙拦截
- 需要在防火墙设置中允许
SidecarRelay的传入连接
脚本说明
新版脚本(macOS 26+)
新版脚本使用深度优先搜索算法,通过 Tab 键导航和 UI 元素遍历,自动定位并点击显示器设置按钮。主要特点:
- 智能搜索:使用深度优先搜索定位目标按钮
- 容错处理:包含错误处理和 IP 地址获取功能
- 语音反馈:连接成功或失败时会有语音提示
旧版脚本(适用于旧版 macOS)
如果你的 macOS 版本较旧,可以使用以下脚本:
-- 连接结束清理
on quitFunction()
say "连接中止"
tell application "System Settings" to quit
quit
end quitFunction
-- 连接函数
on runFunction(ipadName)
beep 1
tell application "System Settings"
activate
delay 1
tell application "System Events"
tell process "System Settings"
click menu item "显示器" of menu "显示" of menu bar item "显示" of menu bar 1
delay 0.5
tell group 1 of group 2 of splitter group 1 of group 1 of window "显示器"
try
click pop up button 1
delay 0.6
set foundMirrorSection to false
set menuItems to name of every menu item of menu 1 of pop up button 1
set targetIndex to 0
repeat with i from 1 to count of menuItems
-- 找到镜像或扩展至菜单
if not foundMirrorSection then
if item i of menuItems is equal to "镜像或扩展至" then
set foundMirrorSection to true
end if
else
-- 找到ipad名称
if item i of menuItems is equal to ipadName then
set targetIndex to i
exit repeat
end if
end if
end repeat
if targetIndex > 0 then
click menu item targetIndex of menu 1 of pop up button 1
say "连接成功"
else
say "没有找到镜像菜单中的 " & ipadName
end if
on error
say "连接错误"
end try
end tell
end tell
end tell
end tell
end runFunction
-- 主函数
on run {input, parameters}
-- 此处设置ipad名称,尽量使用英文字母,不要有符号
set ipadName to "youripadname"
runFunction(ipadName)
quitFunction()
end run
使用说明:
- 将脚本中的
"youripadname"替换为你的 iPad 实际名称 - iPad 名称尽量使用英文字母,避免使用特殊符号
注意事项
网络要求
- 同一 Wi-Fi 网络:iPad 和 MacMini 必须连接到同一个 Wi-Fi 网络
- IP 地址获取:如果使用 iPad 端连接,需要提前知道 MacMini 的 IP 地址
- 可以在路由器中为 MacMini 绑定固定 IP
- 或者编写脚本自动报告 IP 地址
- 也可以通过连接电视机查看 IP 地址
稳定性优化
- 有线连接:如果 Wi-Fi 连接不稳定,建议使用 USB 线连接 iPad 和 MacMini
- 防火墙设置:如果使用有线连接时出现错误,需要在防火墙中允许
SidecarRelay的传入连接
常见问题
- 脚本无法运行:检查是否在辅助功能中授权了快捷指令
- 连接失败:确认 iPad 和 MacMini 在同一网络,且随航功能正常
- 虚拟显示器未启动:确保 Better Display 已添加到登录项并正常运行
总结
通过本文的配置,你可以实现:
✅ iPad 作为 MacMini 的独立显示器
✅ 一键自动连接 iPad
✅ 开机自动连接(可选)
✅ 远程通过 iPad 触发连接(可选)
这个方案充分利用了 macOS 的随航功能和自动化能力,为 MacMini 服务器提供了灵活的显示解决方案。