惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
V
V2EX
Martin Fowler
Martin Fowler
MyScale Blog
MyScale Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
人人都是产品经理
人人都是产品经理
WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
博客园 - 叶小钗
C
Check Point Blog
Microsoft Security Blog
Microsoft Security Blog
Apple Machine Learning Research
Apple Machine Learning Research
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
IT之家
IT之家
The Hacker News
The Hacker News
The Cloudflare Blog
T
Threatpost
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
P
Proofpoint News Feed
I
InfoQ
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Troy Hunt's Blog
罗磊的独立博客
P
Privacy International News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security @ Cisco Blogs
Latest news
Latest news
D
Docker
PCI Perspectives
PCI Perspectives
S
Secure Thoughts
Help Net Security
Help Net Security
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss
Engineering at Meta
Engineering at Meta
腾讯CDC
L
LINUX DO - 最新话题
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
W
WeLiveSecurity
Forbes - Security
Forbes - Security
T
Threat Research - Cisco Blogs
美团技术团队
L
LINUX DO - 热门话题
Know Your Adversary
Know Your Adversary
O
OpenAI News

野小新 – 魔帆博客

Python包管理的血泪史:从混乱到秩序的漫长征 | 魔帆博客 解锁iOS侧载自由:使用sideStore轻松搞定ipa签名 | 魔帆博客 Git配置:如何优雅的配置多用户并使用 ssh 密钥验证 | 魔帆博客 Git 合并本地两个不同的 Repo 仓库 | 魔帆博客 Git 提示 fatal: unsafe repository is owned by someone else 错误 | 魔帆博客 安装有 RootMagiskXposedPlay 的 WSA 安卓子系统 | 魔帆博客 Fedora 系统升级 32->34 跨版本升级 | 魔帆博客 教程:如何更新安装 docker-compose V2 和使用 docker switch | 魔帆博客 2022 年 Android 下的安卓浏览器使用指北-Firefox向 | 魔帆博客 Docker WSL1/2 迁移 Linux 发行版目录 | 魔帆博客 Spotify 主题 spicetify-fluent - 微软 win11 风格美化 | 魔帆博客 WSA 安卓子系统 adb 提示 cannot connect the target machine actively refused it 10061 | 魔帆博客 双重验证 Authy 导出所有 TOTP token 和 golang 配置 GOPROXY 解决网络问题 | 魔帆博客 powershll 像 bash 一样为单个命令设置临时环境变量 | 魔帆博客 Linux 教程:Linux 初学者必了解的概念 | 魔帆博客 安卓电池充电保护-智能充电/温控切断(Root方案) | 魔帆博客 备用机养成方案 - Tasker 安卓短信转发到 telegram | 魔帆博客 创建支持安全启动(Secure Boot)的 Arch Linux ISO 安装镜像 | 魔帆博客 MiBand小米手环2/3刷机刷固件刷表盘刷字体指南(iPhone iOS 也支持) | 魔帆博客
Mac mini + iPad 随航梦幻联动!零显示器配置指南,iPad 秒变 Mac 主屏幕 | 魔帆博客
野小新 · 2025-08-07 · via 野小新 – 魔帆博客

零显示器环境下的 Sidecar 全自动方案

关键词:Mac mini、iPad、Sidecar(随航)、BetterDisplay、AppleScript、自动化

一、故事的开头——“我的 Mac mini 没地方看”

事情是这样的:我要离家出走(误,其实是去外边住一段时间),行李箱太小了,我又只有一个Mac Mini,所以只能带着这台小巧玲珑的 Mac mini M4。
可 Mac mini 这玩意儿,浑身上下只有一个致命缺点——它没有自带屏幕
带显示器?算了吧,行李箱表示已经喘不过气。
既然手里还有一台 iPad,何不把它捣鼓成 Mac 的主显示器?

于是,一套“零显示器点亮 Mac mini”的 Sidecar 自动化方案就此诞生。
整个配置步骤大概能在 15 分钟内搞定!


二、最终的效果

  1. 开机后全自动:Mac mini 自己跑脚本,把 iPad 当成主屏点亮。
  2. 一键复活:Sidecar 失联?按下全局快捷键秒连。
  3. 全程无外接显示器:“轻装上阵”,背包再也不用塞 HDMI 线和扛着一个显示器。

三、工具清单

硬件:

  • 一台支持 Sidecar 的 iPad(iPadOS 13 以上都行)。
  • 一台 Mac mini(macOS Ventura / Sonoma 及以上)。
  • 一个能配对的蓝牙键盘(鼠标/触控板可选但强烈推荐)。
  • 第一次配置时需要临时接入显示器 1 次,后面就可以收进柜子吃灰了。

软件方面:

  • BetterDisplay(开源 + 免费,负责虚拟显示器)
  • macOS 自带“自动化”(Automator)
  • 下方提供的 AppleScript 脚本

四、正式开工

1. 找到你的 iPad 名字(非常关键)

脚本需要精确匹配 iPad 名称,不然 Mac 会一脸懵逼不知道连谁。

步骤:

  1. 拿起 iPad → 设置 → 通用 → 关于本机
  2. 名称 一栏就是脚本要用的名字,例如 Paxos 的 iPad
  3. 复制下来,等会儿粘到脚本里。
    Tips:最好别起那种有 Emoji 的名字。

2. 用 Automator 创建“开启随航.app”

  1. 打开 Launchpad → 其他 → 自动化(Automator)
  2. 新建文稿 → 类型选“应用” → 确定
  3. 在左侧搜索栏输入“AppleScript”,把「运行 AppleScript」拖到右边。
  4. 把本文最后的脚本粘进去,把 Paxos的iPad 改成你的 iPad 名称。
  5. 点右上角运行测试:iPad 要是弹出提示/直接连上,就说明成功。
  6. ⌘+S 保存,名字起成 开启随航,位置丢到 /Applications 方便日后调用。
新建文稿 → 类型选“应用” → 确定
新建文稿 → 类型选“应用” → 确定
Pasted image 20250804151308
添加运行 AppleScript 并添加文章末尾的脚本

3. 设定全局快捷键

我不喜欢装第三方软件,所以还是 Automator 本家搞定。

  1. Automator 再次新建 → 这次选“快速操作(Quick Action)
  2. 工作流接收:选“任何应用
  3. 在动作列表找到「启动应用程序」,拖到右边,指定刚才的 开启随航.app
  4. 保存,名字随意,比如 打开随航显示
Pasted image 20250804152343
记得把工作流的接收选项中要选中“在任意程序”
  1. 前往 系统设置 → 键盘 → 键盘快捷键 → “服务”
  2. 找到 打开随航显示,点右边添加快捷键,例如 ⌃⌥⌘M (Ctrl+Option+Cmd+M)
    记牢它,以后 Sidecar 失联就靠这招“妙手回春”。
Pasted image 20250804152228

4. 设为开机自启

系统设置 → 通用 → 登录项
/Applications/开启随航.app 拖进去,大功告成。
以后 Mac mini 一开机就会自动启动这个,如果iPad在附近则会自动连接,不在则什么事情也没有 没有显示器的情况可以通过Mac mini 自带的扬声器的声音提示知道是否连接成功(脚本内配置了音效提示)

5. 准备一块“空气显示器”——BetterDisplay

macOS 新版本会检测“你至少得有一块显示器”才能启动 Sidecar。
物理 HDMI 欺骗器当然最方便,不过没有的话我们也能虚拟一块。

  1. 安装 BetterDisplay(brew cask / dmg 随意)。
  2. 打开 → Overview → Create New Virtual Screen
  3. 尺寸随便,我选了 “iPad Pro 11 inch”。
  4. 创建后系统会出现一个新的显示器。
  5. 系统设置 → 显示器:
  • iPad 设为「主显示器」(拖动那条白色菜单栏到 iPad 上)。
  • 虚拟屏幕 勾成“镜像 iPad 屏幕”。
    这样就算 macOS 再怎么“查户口”,咱们手里永远有台显示器。
Pasted image 20250804153430

五、启动流程(以后每天都是这样)

  1. 把 iPad 摆在 Mac mini 旁边,保持蓝牙+Wi-Fi 开启。
  2. 按下 Mac mini 电源键。
  3. 等听见开机声,用蓝牙键盘盲输密码(或者直接设置自动登录,更懒)。
  4. 几秒后 iPad 自动亮起 Sidecar,Mac 桌面映入眼帘。
  5. 过程中若网络闪断,直接 ⌃⌥⌘S 重新召唤即可。

六、完整脚本(复制即用)

注意 1:把 Paxos的iPad 改成你自己的 iPad 名称。
注意 2:如果你的系统语言中文/英文/繁体中文,按行添加翻译关键字。

on findLastTargetIndex(targetItem, itemList)
    set lastIndex to 0
    repeat with i from (count of itemList) to 1 by -1
        if item i of itemList is targetItem then
            set lastIndex to i
            exit repeat
        end if
    end repeat
    return lastIndex
end findLastTargetIndex

-- 给自己来个提示音,知道脚本开始执行
do shell script "afplay /System/Library/Sounds/Pop.aiff"

tell application "System Settings"
    activate
    delay 1
    tell application "System Events"
        tell process "System Settings"
            -- 判断系统语言,以免多语言界面找不到按钮
            set systemLanguage to do shell script "defaults read -g AppleLocale"

            if systemLanguage starts with "zh" then
                if systemLanguage is "zh_CN" then
                    set menuItemName to "显示器"
                    set menuBarItemName to "显示"
                    set addButtonName to "添加"
                else -- 繁体
                    set menuItemName to "顯示器"
                    set menuBarItemName to "顯示方式"
                    set addButtonName to "加號"
                end if
            else if systemLanguage starts with "en" then
                set menuItemName to "Displays"
                set menuBarItemName to "View"
                set addButtonName to "Add"
            end if

            -- 打开“显示器”面板
            click menu item menuItemName of menu menuBarItemName of menu bar item menuBarItemName of menu bar 1
            delay 0.5

            -- 点右边的「添加」按钮
            tell group 1 of group 2 of splitter group 1 of group 1 of window menuItemName
                try
                    click pop up button addButtonName
                    set menuItems to name of menu items of menu addButtonName of pop up button addButtonName

                    -- 找到最后一个同名设备,防止和通用控制冲突
                    set targetIndex to (my findLastTargetIndex("Paxos的iPad", menuItems))
                    click menu item targetIndex of menu addButtonName of pop up button addButtonName
                    do shell script "afplay /System/Library/Sounds/Blow.aiff"
                on error
                    do shell script "afplay /System/Library/Sounds/Hero.aiff"
                end try
            end tell
        end tell
    end tell
end tell
delay 1
tell application "System Settings" to quit

七、结语

现在,你的 Mac mini 已经“原地长出”了一块 iPad 屏。
Mac mini 不带显示器出门办公,再也不是问题。
赶紧关掉这篇文章,背上包,去星巴克假装数字游民吧

愿折腾常在,Bug 远离。