应用介绍
Synergy、Deskflow 这类键鼠共享工具解决了「一套键鼠管几台电脑」,但它们转发的是抽象过的鼠标坐标和按键。触控板一到另一台机器就退化成普通滚轮——三指切换桌面、四指调度中心、捏合缩放全都没了,因为这些手势要靠系统底层的多点触控数据才认得出来。
Viewflow 走的是另一条路:把原始 HID 报文租借过去。它在 macOS 侧装一个 DriverKit 驱动扩展,伪装成一台协议兼容的原生多点触控设备,让系统的 AppleMultitouchTrackpadHIDEventDriver 直接接管,Linux 那边把 Magic Trackpad 的每个触点原样喂过来。这样手势是 macOS 自己识别的,而不是用 CGEvent 合成的假滚动。
不过要看清楚它现在的状态:仓库 9 月 7 号才建,作者在 README 里反复强调这是「可运行、有测试的基础,不是完成品」。多指手势那条线的最新记录是——v11 装上后手势能响应但抬手会回弹,v12 修了手势收尾的生命周期、签名部署也过了,但作者写着物理复测还没做。想复现还得自己去申请 DriverKit 和 HID Device 的签名权限。
它的野心其实比键鼠共享大得多:目标是一个跨设备的窗口合成器——程序继续跑在原来那台机器上,窗口像素、输入、剪贴板、拖拽的文件和每个程序的音频在一张共享的逻辑桌面上流动。Rust 写的,GPL-3.0。
原始 HID 租借:协议里专门有一类 raw HID lease,带世代号,断线时自动全部释放,配合 macOS 侧的 DriverKit 驱动把触控板的多点数据原样送达。
跨系统输入:相对鼠标位移、按键、高分辨率滚轮、HID 键盘用法码都走经过校验的 QUIC 通道,每个事件带租约、目标和序号,接收端确认后才算数。Windows 用 Session 1 的 SendInput 后端,支持 F13-F24 和常见多媒体键,并打了防回环标记。
窗口跨机显示:Hyprland 用 GPU 抓单个窗口,编码后经 QUIC 传到 Windows 硬件解码合成;macOS 侧走 ScreenCaptureKit 抓取和 AppKit 呈现,另有
剪贴板双向同步:桌面会话建立后自动同步 UTF-8 文本和 PNG 图片,Linux 走 Wayland data-control(X11 兜底),Windows 用原生剪贴板,macOS 用 NSPasteboard,单次上限 16 MiB。也能单独跑
传输层:mTLS 认证的 QUIC,控制流和大块数据走可靠流,媒体走低延迟数据报,附带时钟同步和 RTT/偏移估计,断线按指数退避重连。证书和私钥必须显式给路径,二进制里不内嵌任何测试身份。
逐程序音频:协议里有窗口族的音频路由,音频跟着窗口走而不是整机混音。
和 Deskflow 共存:Deskflow 不被链接进来,而是作为独立的 GPL-2.0 进程通过本地 IPC 集成,用自己的 UDP 端口,不会去停掉或重配你现有的 Deskflow。
还没有发布版:仓库里没有 Release,得自己
Viewflow 走的是另一条路:把原始 HID 报文租借过去。它在 macOS 侧装一个 DriverKit 驱动扩展,伪装成一台协议兼容的原生多点触控设备,让系统的 AppleMultitouchTrackpadHIDEventDriver 直接接管,Linux 那边把 Magic Trackpad 的每个触点原样喂过来。这样手势是 macOS 自己识别的,而不是用 CGEvent 合成的假滚动。
不过要看清楚它现在的状态:仓库 9 月 7 号才建,作者在 README 里反复强调这是「可运行、有测试的基础,不是完成品」。多指手势那条线的最新记录是——v11 装上后手势能响应但抬手会回弹,v12 修了手势收尾的生命周期、签名部署也过了,但作者写着物理复测还没做。想复现还得自己去申请 DriverKit 和 HID Device 的签名权限。
它的野心其实比键鼠共享大得多:目标是一个跨设备的窗口合成器——程序继续跑在原来那台机器上,窗口像素、输入、剪贴板、拖拽的文件和每个程序的音频在一张共享的逻辑桌面上流动。Rust 写的,GPL-3.0。
软件功能
原始 HID 租借:协议里专门有一类 raw HID lease,带世代号,断线时自动全部释放,配合 macOS 侧的 DriverKit 驱动把触控板的多点数据原样送达。
跨系统输入:相对鼠标位移、按键、高分辨率滚轮、HID 键盘用法码都走经过校验的 QUIC 通道,每个事件带租约、目标和序号,接收端确认后才算数。Windows 用 Session 1 的 SendInput 后端,支持 F13-F24 和常见多媒体键,并打了防回环标记。
窗口跨机显示:Hyprland 用 GPU 抓单个窗口,编码后经 QUIC 传到 Windows 硬件解码合成;macOS 侧走 ScreenCaptureKit 抓取和 AppKit 呈现,另有
vf-window-peer 做 macOS 与 Hyprland/Windows 之间的窗口共享。剪贴板双向同步:桌面会话建立后自动同步 UTF-8 文本和 PNG 图片,Linux 走 Wayland data-control(X11 兜底),Windows 用原生剪贴板,macOS 用 NSPasteboard,单次上限 16 MiB。也能单独跑
vf-clipboard-peer。传输层:mTLS 认证的 QUIC,控制流和大块数据走可靠流,媒体走低延迟数据报,附带时钟同步和 RTT/偏移估计,断线按指数退避重连。证书和私钥必须显式给路径,二进制里不内嵌任何测试身份。
逐程序音频:协议里有窗口族的音频路由,音频跟着窗口走而不是整机混音。
和 Deskflow 共存:Deskflow 不被链接进来,而是作为独立的 GPL-2.0 进程通过本地 IPC 集成,用自己的 UDP 端口,不会去停掉或重配你现有的 Deskflow。
还没有发布版:仓库里没有 Release,得自己
cargo 编译。文档里写明了性能指标是验收目标而不是实测结果,很多环节的物理验收仍未完成——现在更适合围观和折腾,不适合当生产力工具。
