Turn an idle Mac into a portrait "phone body" for remote coding. 一条命令把 Mac 主屏转成竖屏,用手机通过 UU远程 / RustDesk / AnyDesk 远程操控,体感像握着一台大手机写代码、跑 AI Agent。
灵感来源 / Inspired by @web3chacha on X。
网易 UU远程 在 2025.11 正式支持了 macOS 被控(4K / 144Hz / 触控手势映射,且免费)。 把一台闲置 Mac 的屏幕转成竖屏后,用手机远程连进去,操作区域正好贴合手机竖屏比例和触控习惯—— 跑 Claude Code / Codex / 各种聊天式 AI 工具时,"像直接在用一台大手机"。
这个仓库是验证脚本合集,提供两种把 Mac 变竖屏的方案:
brew install displayplacer # 依赖
./phonebody.sh on # 开启竖屏手机模式
./phonebody.sh off # 恢复横屏
./phonebody.sh toggle # 一键切换(默认)真实外接屏常锁死 1080p 且无 HiDPI,旋转后又小又糊。用 BetterDisplay 造一块 自定义分辨率 + Retina 的虚拟竖屏,实测清晰度大幅提升,物理屏还不受影响。
brew install --cask betterdisplay # 依赖(免费版够用)
# ⚠️ 首次需在 系统设置→隐私与安全性→屏幕录制 授权 BetterDisplay 并重启它
./phonebody-virtual.sh on # 创建并接入竖屏 HiDPI 虚拟屏
./phonebody-virtual.sh off # 断开| 方案 A 旋转物理屏 | 方案 B 虚拟屏 | |
|---|---|---|
| 清晰度 | 受真屏限制,常常糊 | ✅ 自定义 + HiDPI,锐利 |
| 影响本地屏 | 会(物理屏真的转了) | 否 |
| 依赖 | displayplacer | BetterDisplay + 屏幕录制权限 |
| 适合 | 快速试手感 | 真正日常用 |
- 旋转后分辨率会宽高互换:旋转到 90° 时,必须按
res:1080x1920(旋转后的写法)来设, 沿用旋转前的res:1920x1080会报could not find res。脚本已自动处理。 - 真实外接屏常常不支持 HiDPI 缩放:很多外接屏/采集屏旋转后只有一种分辨率、字很小, 帖子里"300% 大字"的效果在真实屏上做不到——所以有了方案 B 虚拟屏。
- BetterDisplay 虚拟屏必须有屏幕录制权限:没授权时虚拟屏
displayID=0,displayplacer也看不到它(没真正注册成显示器)。授权并重启 BetterDisplay 即可。 - betterdisplaycli 没有
connect/delete动词(调用会挂起): 接入/断开用set -connected=on/off;彻底移除虚拟屏就退出 BetterDisplay。
脚本只是验证。产品化方向是一个菜单栏 App:
-
验证虚拟 HiDPI 竖屏可行(已用 BetterDisplay 实测,清晰度 OK) - 自研用
CGVirtualDisplay创建虚拟竖屏(不依赖 BetterDisplay、物理屏不动、自带 HiDPI) - 远程工具适配层:一键检测 / 启动 / 配置 UU远程(触控 + 高帧率 + 全屏),兼容 RustDesk / AnyDesk / Splashtop
- 用
AXUIElement把目标 App 自动铺满竖屏 - 多 Profile + 全局热键 + 一键还原
- 面向"手机远程写代码 / 跑 AI Agent"的垂直体验
想一起搞、或者觉得有意思,欢迎 Star / Issue / PR 👋
MIT © 2026 dongsheng123132