【无标题】

告别Hyprland/Niri键鼠共享难题:Pynergy ------ 为 Wayland 设计的 Synergy 兼容客户端

在 Linux 桌面全面转向 Wayland 的今天,很多老牌工具都遇到了"水土不服"。如果你是一个多设备用户,习惯使用 SynergyDeskflow (Barrier) 来共享一套键鼠,你可能发现许多 Wayland 合成器(如 hyprland/niri)因为没有实现 RemoteDesktop portal,导致官方客户端无法正常工作。

今天介绍的开源项目 Pynergy,正是为了打破这一僵局而生的。


🚀 为什么选择 Pynergy?

  • 绕过 Wayland 限制 :通过直接调用 Linux 内核的 uinput 模块来模拟输入设备。这意味着它不依赖具体的桌面环境(如 GNOME/KDE)或 Portal 接口,理论上兼容所有支持 uinput 的 Linux 发行版。
  • 兼容 Synergy 协议:它可以且仅可以作为客户端,与 Deskflow、Synergy 等服务端无缝对接。
  • 安全性:支持 TLS/mTLS 加密通信。
  • 可维护:基于 Python 3.13+ 开发,采用模块化设计,轻松添加backend。

🛠️ 功能概览

功能 状态 说明
远程控制 ✅ 已实现 完美支持鼠标和键盘的远程操控
TLS/mTLS ✅ 已实现 提供加密隧道,保障输入安全
坐标模式 ✅ 已实现 支持绝对和相对鼠标移动,适配不同显示器布局
剪贴板共享 🔄 待实现 目前可搭配 sync-clipboard 使用
NixOS 支持 ✅ 已实现 提供 Flake 支持,声明式配置更优雅

📦 快速安装与配置

1. 权限准备(重要!)

由于 Pynergy 需要直接操作 /dev/uinput,你需要给当前用户授权。

通用 Linux 做法:

创建 /etc/udev/rules.d/99-pynergy.rules

udev 复制代码
KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"

然后将自己加入 input 组并加载模块:

bash 复制代码
sudo usermod -aG input $USER
sudo modprobe uinput

2. 启动客户端

你可以直接通过命令行连接到你的服务端:

bash 复制代码
pynergy-client --server 192.168.1.1 --client-name my-linux-box

3. NixOS 用户

Pynergy 对 NixOS 非常友好,你只需要在 flake.nix 中添加 input,并在配置中简单声明:

nix 复制代码
# 在 configuration.nix 中
services.udev.extraRules = ''
  KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"
'';
users.users.<name>.extraGroups = [ "input" ];
boot.kernelModules = [ "uinput" ];

💡 使用小贴士

  • 平滑度调节 :如果你觉得鼠标移动有延迟或掉帧,可以尝试调整 --mouse-move-threshold 参数。
  • 自动启动 :建议配合 systemd --user 服务使用。项目 README 中提供了完整的 .service 模板,让你开机即享丝滑的跨屏体验。
  • 初次连接 :如果开启了 TLS 加密,第一次连接务必在终端手动运行,以便交互式确认服务器证书。

结语

Pynergy不追求极致的性能,而是追求最低开发难度和高可维护性,作为各个合成器实现RemoteDesktop portal前的解决方案。

🔗 项目地址https://github.com/GOKORURI007/pynergy

相关推荐
金銀銅鐵9 小时前
[Python] 扩展欧几里得算法
python·数学·算法
Duckdblab9 小时前
DuckDB 性能调优终极指南:打造闪电般的分析体验
python
带派擂总10 小时前
Python全栈开发精华版最全合集(包含各种面试题) Day24_异常和错误
python
金銀銅鐵13 小时前
n^5 和 n 的个位数是否总相等?
python·数学
aqi0016 小时前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
金銀銅鐵16 小时前
借助 Pygame 探索最大公约数的规律
python·数学·游戏
ServBay1 天前
9 个 Python 第三方库推荐,不用 AI 都好像多出一个团队
后端·python
用户8356290780511 天前
如何使用 Python 添加和管理 Excel 批注(完整示例)
后端·python
用户8356290780511 天前
使用 Python 管理 Excel 工作表:创建、复制、删除与重命名
后端·python