Linux 闲置笔记本做副屏:方案调研与后续研究 TODO
七月 10, 2026 [linux, desktop] #linux #wayland #gnome #second-monitor #virtual-display #deskreen #sunshine #moonlight #monitorize #spacedesk需求
两台 Linux 电脑(都是 GNOME 桌面,Wayland 协议),把闲置笔记本变成真正意义上的「扩展副屏」——鼠标可以跨屏移动,GNOME 认为这是第二块显示器,可以任意拖拽窗口。不是远程桌面,不是屏幕镜像,不是共享单个窗口。
方案全景
| 方案 | 真正扩展桌面 | 延迟 | 系统要求 | 推荐程度 |
|---|---|---|---|---|
| SpaceDesk | ✅ | 很低 | Windows 主机 | ★★★★★ |
| Deskreen | ❌(镜像/窗口共享) | 中等 | 跨平台 | ★★★ |
| Sunshine + Moonlight | ❌(远程桌面) | 很低 | 跨平台 | ★★★★ |
| HDMI 视频采集卡 | ❌(镜像输入) | 很低 | 任意 | ★★★★ |
| GNOME RDP 远程桌面 | 理论支持 | 中等 | GNOME | ★★★ |
| Monitorize | ✅(理论) | 未知 | GNOME/Wayland | ★★☆ |
| Input Leap + SSH/tmux | ❌(不共享画面) | 无 | 跨平台 | ★★★★ |
方案一:SpaceDesk(最成熟,但仅限 Windows)
Windows 生态下最成熟的方案。通过 WDDM 虚拟显示驱动向系统声明第二块显示器,再通过网络传输画面。
- 优点:真正的扩展桌面,鼠标跨屏,高分辨率,延迟低
- 缺点:主机必须是 Windows,Linux 不可用
关键启示:Windows 的 WDDM 架构允许第三方安装虚拟显示驱动,这是 SpaceDesk 成功的底层原因。Linux 缺少等价机制。
方案二:Deskreen(最简单,但非扩展桌面)
通过 WebRTC 共享桌面或窗口,副屏只需浏览器打开。
- 优点:零安装客户端,开源,跨平台
- 缺点:窗口共享/桌面镜像,不是系统级扩展显示
- 适合:把文档、ChatGPT、日志窗口投到另一台电脑
方案三:Sunshine + Moonlight(低延迟,但非扩展桌面)
利用 GPU 硬件编码(VA-API/NVENC)传输桌面。
- 优点:千兆局域网十几毫秒延迟,适合视频、代码
- 缺点:远程桌面,始终只有 Display 1;需要配合虚拟显示器才能模拟扩展
- 参考:之前配置笔记
方案四:HDMI 视频采集卡(画质最好,镜像模式)
主电脑 HDMI → USB Capture → 副屏 OBS/PotPlayer
- 优点:接近无损,延迟几十毫秒
- 缺点:不能扩展桌面,只是显示 HDMI 输入
方案五:GNOME RDP 远程桌面
GNOME 自带的远程桌面通过 screen-share-mode extend 可以创建虚拟显示器。结合 RDP 客户端连接,理论上能实现扩展屏。之前踩过一堆坑。
核心命令:
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode extend
- 优点:原生 GNOME 支持,不需额外软件
- 缺点:RDP 协议延迟较高,依赖 GNOME Keyring 和 systemd 配置,headless 模式存在 session 创建问题
方案六:Input Leap + SSH/tmux(稳定,但不共享画面)
将闲置笔记本当作独立工作站,通过 SSH 连接开发机,Input Leap 共享键鼠。
- 优点:零网络占用,无延迟,稳定
- 缺点:两台电脑独立运行,不能跨屏拖拽窗口
- 适合:纯终端开发的场景
核心障碍:为什么 Linux 没有 SpaceDesk 等价方案
Linux 显示架构的根本限制:
GNOME → Mutter → Wayland → DRM/KMS → GPU → HDMI/DP → Monitor
显示器必须来自 DRM Connector(HDMI-A-1、DP-1、eDP-1 等)。网络上的另一台电脑无法注册成 DRM Connector,GNOME 根本不知道它的存在。
Windows 的 WDDM 支持第三方虚拟显示驱动(如 SpaceDesk Driver),但 Linux 的 DRM/KMS 架构没有等价接口。
要做一个 Linux 版 SpaceDesk 需要同时实现:
- DRM Driver — 向内核注册虚拟显示器
- Wayland Protocol — 通知合成器新显示器存在
- DMA-BUF — 零拷贝获取显存帧
- PipeWire — 捕获虚拟显示器画面
- GPU 编码/解码 — 硬编解码降低延迟
- 热插拔 — 连接/断开自动识别
- EDID — 报告分辨率、刷新率
- Cursor Plane — 独立的鼠标光标平面
- VSync — 帧同步
这几乎等于重新写一套显示驱动。Windows 已经提供这些接口,Linux 尚未统一。
已知的可行路径
路径一:EDID 欺骗 + DRM 虚拟显示器
通过内核参数在未使用的 DRM Connector 上强制加载 EDID,让系统认为接了显示器。Sunshine 再串流这个虚拟显示器。
# 内核参数示例
drm.edid_firmware=HDMI-A-2:edid/hdmi-edid.bin video=HDMI-A-2:1920x1080@60e
- 参考:构造 edid 内核参数创建虚拟显示器
- 优点:使用最多,方法成熟
- 缺点:占用物理接口(HDMI-A-2),依赖 X11/xrandr 或 Gnome on Xorg,Wayland 下兼容性差
路径二:GNOME Virtual Monitor API(Mutter 新增)
2025 年后 GNOME Mutter 增加了 Virtual Monitor API,最初为 RDP 准备。Monitorize 等项目正是利用这一能力。
Mutter 创建 Virtual Monitor
↓
PipeWire 捕获 Display-2
↓
GStreamer 编码
↓
UDP 网络传输
↓
客户端解码 → 全屏显示
- 优点:真正扩展桌面,GNOME 显示设置中可见
- 缺点:仅 GNOME 46+,依赖 PipeWire,项目年轻
路径三:KVM + Virtio-GPU + RDP
在主机上启动轻量级 KVM 虚拟机,通过 Virtio-GPU 创建虚拟显示器,虚拟机内启动 RDP/VNC 服务端。
- 优点:隔离性好,不影响主机会话
- 缺点:配置复杂,需要额外的虚拟化开销
后续 TODO 研究方向
以下按优先级排列:
TODO 1:Monitorize 实测验证
- GitHub: vinnavannewton/project-monitorize
- 目标:在两台 GNOME 46+ 机器上安装测试,验证是否真正实现扩展桌面
- 关注点:
- GNOME Mutter 光标禁用配置 (
/etc/environment) - 虚拟显示器稳定性(官方路线图中 GNOME 标记为 "todo")
- 输入同步、剪贴板、热插拔体验
- 对比 RDP 原生的延迟差异
- GNOME Mutter 光标禁用配置 (
- 结论:最值得尝试的方案,但需要容忍早期阶段的不稳定性
TODO 2:GNOME RDP extend 模式深度验证
- 核心配置:
gsettings set org.gnome.desktop.remote-desktop.rdp screen-share-mode extend - 目标:将 RDP 远程桌面变成稳定的扩展屏方案
- 待解决:
- headless 模式 session 创建问题
- 减小 RDP 协议延迟
- TLS 证书和凭据的自动化配置
- 优势:原生 GNOME 支持,零额外依赖
- 参考:之前排查记录
TODO 3:Wayland 下 EDID 欺骗的可行性探索
目前 EDID 欺骗方案在 Wayland 下效果不佳,需要研究:
wlr-randr是否能在 Wayland 下管理虚拟输出- Mutter 的
headless模式能否配合 EDID 欺骗 - Sway 的虚拟输出能力是否能提供参考
- 不同合成器(Mutter、KWin、Hyprland)的行为差异
TODO 4:wlroots 生态中的虚拟显示器方案
waypipe:转发单个 Wayland 应用到另一台电脑(非扩展屏,但对开发者有用)wayvnc:Wayland 原生 VNC(镜像)way-displays/wl-mirror:镜像已有显示器- 关注:wlroots 协议层是否有机会实现真正的虚拟输出注册
TODO 5:PipeWire + DMA-BUF 低延迟传输
如果虚拟显示器能从内核拿到 DMA-BUF(显存帧),PipeWire 可以直接用 GPU 编码传输,避免 CPU 拷贝。
- 研究 PipeWire 的
libcamera/screen-capture能力 - 探索是否可以通过
kmsro读取 vkms 虚拟显示器的 DRM buffer - 对比现有 GStreamer 方案的延迟
TODO 6:尝试 Windows 主机 + Linux 副屏
如果主机可以是 Windows,则 SpaceDesk 是首选。Linux 副屏只需要安装 SpaceDesk Viewer 即可。
- 验证 SpaceDesk Viewer(Linux 版)的安装和连接
- 对比有线 USB 和无线 WiFi 的延迟差异
TODO 7:KVM + Virtio-GPU 方案实操
- 编写 QEMU 启动脚本,创建无头轻量级虚拟机
- 配置 Virtio-GPU 分辨率为副屏分辨率
- 虚拟机内安装 xrdp/vnc server
- 副屏通过 Remmina 连接虚拟机
- 评估资源占用和延迟
当前结论
截至 2026 年 7 月,在 Linux + Linux + GNOME (Wayland) 环境下,没有一个成熟、稳定、维护活跃、能够像 Windows SpaceDesk 一样把另一台 Linux 笔记本变成真正扩展副屏的方案。这不是个案问题,而是整个 Linux 桌面生态在显示驱动架构层面的空白。
短期工作流建议:
- 独立工作站 + Input Leap:闲置笔记本运行浏览器、文档、监控面板,SSH 连开发机,通过 Input Leap 共享键鼠。稳定且无需与显示系统对抗。
- Deskreen:快速把某个窗口/文档投到副屏
- 增加物理显示器:最务实的长期方案
值得持续跟踪的项目:Monitorize、GNOME Virtual Monitor API 的后续发展。