Blinry发布了关于在Linux/Wayland桌面环境中实现多鼠标指针的深度技术调查与解决方案[1]。研究表明,Wayland核心协议已深度集成多座椅支持,每个输入事件都通过wl_pointer或wl_keyboard连接到相应的wl_seat[1]。
在桌面合成器中,sway和River对多座椅功能支持最为完善,均包括per-seat窗口焦点功能[1]。GUI库方面,SDL自v3.3.4(2025年发布)开始支持多座椅功能[1],而GTK4事件虽提供get_seat方法可识别座椅来源,但不支持动态座椅添加检测[1]。应用程序的多座椅支持差异较大,Firefox仅在应用启动时已存在的座椅上响应事件,Chromium则不支持多座椅输入[1]。此外,wayvnc自v0.8.0(2024年发布)支持为每个连接创建新座椅的--transient-seat功能[1]。
作者发布了多个工具和补丁库来改进Wayland生态中的多座椅支持,同时提供了配置多个输入设备和远程协作的实践指南[1]。
A comprehensive investigation into implementing multiple mouse pointers in Linux and Wayland desktop environments has revealed the current state of multi-seat support across the ecosystem [1]. The Wayland core protocol includes deep integration of multi-seat functionality, with each input event connected to a wl_pointer or wl_keyboard, which in turn connects to a wl_seat [1].
Desktop compositors show varying levels of support for this feature. Sway and River offer the most comprehensive multi-seat implementations, including per-seat window focus capabilities [1]. Meanwhile, SDL has begun supporting multi-seat functionality as of version 3.3.4 released in 2025 [1], and wayvnc added a --transient-seat feature in version 0.8.0 (released in 2024) that allows creating new seats for each connection [1].
Application-level support remains inconsistent across the board. GTK4 provides a get_seat method within events to identify the seat source, though it lacks support for detecting dynamically added seats [1]. Firefox only responds to events on seats that already exist when the application starts, while Chromium does not support multi-seat input at all [1]. The research includes multiple tools and patch libraries aimed at improving multi-seat functionality, along with practical guidance for configuring multiple input devices and enabling remote collaboration [1].