Repolode
peetzweg

peetzweg/opendisplay

把 iPhone、iPad 或闲置 Mac 变成 Mac 的扩展第二屏,支持 USB 与 WiFi 连接,免费开源。

可替代:Apple SidecarDuet DisplayLuna Display

Star
5,762
Fork
376
未关闭 Issue
170
最近提交
前天

这是什么?

OpenDisplay 是一组 macOS 与 iOS 应用,让 Mac 把 iPhone、iPad 或另一台 Mac 当作扩展显示器使用,而不是仅仅镜像。Mac 端创建虚拟显示器,通过 ScreenCaptureKit 采集画面,用 VideoToolbox 进行硬件 H.264 或 HEVC 编码,再经 TCP 连接传输。连接方式包括通过数据线经 macOS 内置的 usbmuxd 走 USB,以及通过 Bonjour 自动发现的 WiFi。

接收端的触摸操作会回传给 Mac,因此在扩展屏上可以点击、拖拽并进行双指滚动。支持竖屏与横屏,虚拟显示器按设备屏幕像素以 @2x 匹配,文字清晰。闲置的 Mac 也可以安装 OpenDisplay Receiver(需 macOS 12 及以上)作为显示器,通过 WiFi 或线缆连接。

它定位为 Apple Sidecar 以及 Duet Display、Luna Display 等付费应用的免费、可自托管替代方案。通信协议写在 PROTOCOL.md 中。项目依赖私有 API CGVirtualDisplay,macOS 更新后可能失效。

核心功能

  • 01将 Mac 桌面扩展到 iPhone、iPad 或闲置 Mac 上,作为真正的第二块显示器
  • 02扩展屏上支持点击、拖拽和双指滚动触控
  • 03支持 USB 有线连接(经 usbmuxd)以及通过 Bonjour 自动发现的 WiFi 连接
  • 04使用硬件 H.264 或 HEVC 编码,流式管线延迟较低
  • 05支持 Retina @2x 渲染,以及竖屏与横屏切换

适用场景

  • 用闲置的 iPad 或旧 iPhone 作为笔记本的额外显示器
  • 把旧 Mac 当作另一台 Mac 的第二块屏幕
  • 在外出时用 iPhone 或 iPad 扩展屏幕空间,无需额外购买显示器

快速上手

  1. 1

    从项目发布页下载并在 Mac 上安装运行发送端应用

  2. 2

    用数据线连接 iPhone 或 iPad,或连接到同一 WiFi 网络

  3. 3

    在 iPhone 或 iPad 上安装并打开 OpenDisplay 应用,然后在 Mac 应用中选择该设备

使用前须知

  • 接收端 Mac 暂不支持键盘和鼠标输入。
  • 暂不支持音频。
  • 发送端 Mac 需要 macOS 14 或更新版本,接收端 Mac 需要 macOS 12 或更新版本。

标签

常见问题

opendisplay 是什么?
把 iPhone、iPad 或闲置 Mac 变成 Mac 的扩展第二屏,支持 USB 与 WiFi 连接,免费开源。 OpenDisplay 是一组 macOS 与 iOS 应用,让 Mac 把 iPhone、iPad 或另一台 Mac 当作扩展显示器使用,而不是仅仅镜像。Mac 端创建虚拟显示器,通过 ScreenCaptureKit 采集画面,用 VideoToolbox 进行硬件 H.264 或 HEVC 编码,再经 TCP 连接传输。连接方式包括通过数据线经 macOS 内置的 usbmuxd 走 USB,以及通过 Bonjour 自动发现的 WiFi。
opendisplay 可以免费使用吗?用的什么许可证?
opendisplay 以 GPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
opendisplay 还在维护吗?
活跃维护中。opendisplay 最近一次提交是在 2026年10月18日。
opendisplay 适合用来做什么?
用闲置的 iPad 或旧 iPhone 作为笔记本的额外显示器 把旧 Mac 当作另一台 Mac 的第二块屏幕 在外出时用 iPhone 或 iPad 扩展屏幕空间,无需额外购买显示器
opendisplay 怎么安装和运行?
从项目发布页下载并在 Mac 上安装运行发送端应用 用数据线连接 iPhone 或 iPad,或连接到同一 WiFi 网络 在 iPhone 或 iPad 上安装并打开 OpenDisplay 应用,然后在 Mac 应用中选择该设备
在哪里获取 opendisplay?
源代码和安装说明在 GitHub 上:https://github.com/peetzweg/opendisplay

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目