Skip to content

Repository files navigation

Linkage

Windows 的算力,Mac 的工作方式。

Your Windows workstation, from your Mac

产品官网 · English · 开始探索 · 路线图

Development preview macOS client / Windows host Component licenses

架构示意:Windows 上的应用经过 GPU 编码和网络传输,在 Mac 上解码显示;输入返回 Windows。

Linkage 希望把 Mac 变成 Windows 工作站的一块网络显示器。 SolidWorks 等应用完整运行在 Windows x86-64 上;Mac 负责视频解码、显示、音频和输入。你保留 Windows 的应用生态,也能继续使用 Mac 的窗口、触控板和键盘。

开发预览 · 尚无面向普通用户的安装包。 已有真实有线串流与多个原生交互模块;当前媒体客户端基于修改过的 Moonlight,主机基于 Sunshine + 虚拟显示驱动。触控板手感、物理像素对齐和跨设备配置仍在完善。上图是架构示意,不是软件截图。

为什么做它

用 Mac 写代码、处理文档,同时需要 Windows 上的 CAD 和工程软件,是很常见的工作方式。我们关心的不只是“连得上”,而是小字和细线能否看清、拖动松手能否及时结束、快捷键是否符合习惯,以及全屏会话能否自然融入 macOS。

Linkage 把这些体验拆成可以实现、测量和验证的模块。

关注点 已有工作 当前边界
文字与细线 HEVC 4:4:4、VideoToolbox 硬解与 Metal 呈现;分段像素测试工具 drawable 对齐不等于物理面板 1:1;清晰度仍是首要优化项
Mac 键盘习惯 Command 编辑快捷键、Option→Win/Alt 可配置、长按 Command-Q 已核验部分 Windows 按键事件;完整物理键盘与 CAD 组合待扩展
触控板与指针 精细滚动、拖动释放逻辑、光标模式选择、分阶段时延诊断 与原生 macOS 的滚动手感仍有差距,尚不宣称零延迟
工作连续性 原生 Swift/AppKit 入口与设置、全屏切换、音频串流 媒体端仍有 Qt/SDL;独立 Windows 应用窗口融合属于未来工作
复制与粘贴 双向文字/图片桥接与传输验证 需要独立 Windows 会话代理;应用内粘贴矩阵仍在验收,不含文件同步

它是怎么工作的

flowchart LR
    subgraph Windows[Windows 工作站]
        A[CAD / Windows 应用] --> B[GPU + Windows 桌面]
        B --> C[虚拟显示器]
        C --> D[DXGI 捕获 + NVENC]
    end
    D -->|有线网络 · 视频 / 音频| E
    subgraph Mac[Mac]
        E[VideoToolbox 硬件解码] --> F[Metal 呈现]
        G[AppKit 键盘 / 触控板]
    end
    G -->|输入事件| Windows
Loading

CAD 指令、几何模型和求解器留在 Windows。网络传输的是视频、音频、输入与控制消息;启用剪贴板时还会传输复制的文字或图片。

当前是 VDD → DXGI → Sunshine/NVENC → 修改版 Moonlight → VideoToolbox/Metal。直接从 IDD 取得 GPU 纹理、减少捕获环节,是研究方向,尚未实现。无需把显卡 HDMI 输出接到 Mac。

我们测到了什么

开发机上已跑通 RTX 4070 Ti SUPER → 有线网络 → Apple M4,以 2940 × 1846 / 60 Hz / HEVC 4:4:4 / 100 Mbps 配置接收视频,并验证实际 VideoToolbox 会话使用硬解。

这些是单套开发环境的结果,不是所有 Mac、显卡或网络的性能保证,也不等于物理 Retina 面板逐像素显示。

一次物理滚动测试取得 1,599 组无歧义事件配对:AppKit 回调到 SDL 分发中位数 0.529 ms、p95 0.760 ms。这仅是客户端的一段处理时间,不包含网络、Windows 处理、视频返回和屏幕扫描。我们不把它宣传为端到端延迟。方法与限制见 验证说明

开始探索

运行独立开发工具

需要 macOS 14+、Xcode Command Line Tools、Swift、CMake 与 Python 3.11+。这些命令构建探针和核心测试,不会自动安装主机或启动完整串流

git clone https://github.com/Functionhx/Linkage.git
cd Linkage
python3 scripts/panebridge.py doctor
bash scripts/build-all.sh
bash scripts/check.sh
# 读取 Mac 显示能力
tools/display-probe/.build/release/display-probe --json

# 打开像素校准窗口
tools/display-probe/.build/release/display-probe --window

完整客户端、配对主机与剪贴板需要更多构建步骤,见 开发指南。目前的实验 GUI 依赖组合要求 macOS 26+ / Apple Silicon;独立工具的 macOS 14 部署目标不代表整个产品支持 macOS 14。

开发官网

cd website
npm ci
npm run dev
# 静态构建
npm run build

官网采用 Astro + Tailwind + TypeScript,包含中英文、下载状态与隐私页面,可部署到 GitHub Pages 或 Cloudflare Pages。长期要求保存在 官网任务

仓库导航

目录 内容
tools/panebridge-launcher 原生入口、设置、媒体生命周期和剪贴板协调
native/InputCoreTrackpadCoreScrollCore 输入所有权、手势、精细滚动
native/WindowCoreHoldToQuitCoreClipboardCore 窗口、退出控制、粘贴协调
native/moonlight-patches 固定版本的客户端和 Sunshine 主机补丁
native/ffmpeg-patchesSDLInput 解码证据和 macOS 修饰键适配
packages/SessionKit 可独立测试的会话协商与生命周期模型
tools/display-probedecoder-probemetal-replay 显示、实际硬解、呈现验证工具
tools/pixel-fixturescroll-diagnostics 可重复的画质与输入诊断
host/windows Windows 盘点、剪贴板代理和像素测试工具
website 静态产品官网

接下来

  • 先把画面做好:区分 Windows 源像素、编码、呈现与面板缩放的影响。
  • 把连接变简单:把开发机配置转为可协商、可恢复的显示会话。
  • 把操作磨细:完善触控板释放、滚动、物理快捷键和应用内剪贴板验收。
  • 让更多人试用:可复现完整构建、签名安装包和更广的硬件矩阵。

完整计划见 路线图。欢迎带着设备、分辨率、编码格式与复现步骤提交 Issue,也欢迎贡献改进。

致谢与许可证

Linkage 建立在 MoonlightSunshineVirtual Display DriverFFmpegSDL 的基础上。感谢这些项目让低延迟显示与输入成为可探索的起点。

原创代码和文档采用 MIT;Moonlight/Sunshine 衍生补丁保留 GPL-3.0,FFmpeg 与 SDL 保留对应上游许可。组合客户端需要遵循对应依赖的许可要求。详见 LICENSETHIRD_PARTY.md

Linkage 是独立项目,与 Apple、Microsoft、NVIDIA、Dassault Systèmes 或 MathWorks 无隶属关系。应用软件需在 Windows 上正常安装并拥有有效授权。

About

Your Windows workstation, from your Mac. A macOS-first network display experiment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages