夜雨聆风学习资料网

ARTICLE · 1202853

两台电脑(windows和ubuntu)键盘鼠标共享-两台电脑共用一个套鼠标键盘

两台电脑(windows和ubuntu)键盘鼠标共享-两台电脑共用一个套鼠标键盘

写在前面的话

如果出现问题,请参考结尾 "我踩过的坑"

两台电脑,一套键鼠:背景

我桌上的布局是这样的:左边一台  Ubuntu 笔记本,右边一台 Windows的笔记本。两个显示器,两套系统,但只有一套键鼠。

最开始是两套鼠标,两套键盘。但是来回切的时候经常抓错。更烦的是开会共享屏幕,鼠标在 A 电脑上,人却在看 B 电脑,手忙脚乱。

我也用过远程软件,但是切换窗口麻烦,不如两个显示器舒服。

后来我把它们合成了一套。现在鼠标从 Windows 屏幕右边滑出去,就直接进了 Ubuntu;键盘跟着走,剪贴板里的文字也能带过去。用了一个月,已经完全忘了这事以前有多别扭——这大概就是好工具的样子:你不再意识到它的存在。

下面说说怎么弄

先别急着买 KVM

遇到“两台电脑共用一套键鼠”,很多人的第一反应是买硬件 KVM。它确实稳:物理切换,不装软件,不挑系统。

但,支持 4K 60Hz 的 KVM 要几百块,线材一堆,切换的时候显示器还要重新握手,黑屏一两秒是常事。如果你的两台机器都接同一台显示器、需要频繁切换画面,那 KVM 是合理的。但如果只是想让一套键鼠跨两台机器、两台电脑各有各的屏幕,它就是杀鸡用牛刀。

罗技 Flow 也很好,鼠标滑过去就切了,还能跨设备拖文件。缺点是绑定罗技键鼠,一套下来不便宜,而且本质是蓝牙/优联切换,延迟和稳定性看环境。

我的要求很简单:不花钱,局域网内,一套键鼠管两台机器。所以走了软件方案。

软件方案怎么选

这类工具里最有名的三个,其实是同一个血脉:

  • Barrier:早年最流行的开源方案,后来基本没人维护了。
  • Input Leap:社区接手的续命版,在老系统上比较省心。
  • Deskflow:Synergy(Barrier 的老祖宗)官方在 2024 年开源的核,现在更新最勤。

它们干的事一样:键鼠插在一台机器上,这台当“服务端”,键盘鼠标的每个动作通过局域网发给另一台“客户端”,客户端再模拟出来。你看到的就是一套键鼠控制两台电脑。

注意,它传的是输入事件,不是画面。两台机器各自接自己的显示器。

我的环境

Windows
Ubuntu
角色
Server
(物理键鼠在此)
Client
(接收键鼠)
版本
Windows 11
24.04.4 LTS
网络
WiFi
有线
Deskflow
1.27.0 MSI
1.27.0 Flatpak

使用步骤

Windows 端(Server)

  1. 先装 Visual C++ 运行库(vc_redist.x64.exe)

    • 不装会启动失败,这是最常见的第一个坑
  2. 下载 deskflow-1.27.0-win-x64.msi 并安装

    https://github.com/deskflow/deskflow/releases/tag/v1.27.0

  3. 连接键盘鼠标的电脑设置为服务端

  4. 首次启动,防火墙弹窗 → 允许

安装后软件自动注册了 Windows 服务,Windows 端会自动 "开机自启 "

ubuntu端(client)

  1. 下载deskflow,github地址: https://github.com/deskflow/deskflow/releases/tag/v1.27.0

    我的unbuntu端并没有使用.deb的方式安装,而是使用flatpak命令安装

    具体步骤如下:

    下载flatpak

    sudo apt install flatpak gnome-software-plugin-flatpak

    添加仓库地址

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

    安装deskflow

    flatpak install flathub org.deskflow.deskflow

    启动deskflow

    flatpak run org.deskflow.deskflow

    通过 Flatpak 安装的应用在会话重启前可能不会出现在桌面。装完注销重新登录,否则应用菜单里找不到 Deskflow,只能命令启动。

    原因:GNOME Shell 在登录时读一次 XDG_DATA_DIRS,之后不再刷新;而 /etc/profile.d/flatpak.sh 只在登录时执行。

  2. 下载后打开软件,设置为客户端

    图片中第二步输入的是服务端电脑的ip地址,我的服务端是windows,所以打开终端使用ipconfig命令获取ip地址。

    client端点击连接后记得到server端同意

最后一步:

还可以配置两台机器的位置,这决定了鼠标从主机器屏幕的上下左右哪个位置进入副机器的屏幕

有个很实用的细节:默认按 Scroll Lock 可以把键鼠“锁”在当前屏幕,再按一次解锁(按键可以改)。打游戏或者做演示的时候很有用,不然鼠标一滑就跑到另一台机器上去了。

注意点

  1. Ubuntu 如果是 Wayland 会话,先别急。注销,在登录界面点齿轮,选 “Ubuntu on Xorg” 再登录。Input Leap 和 Barrier 在 Wayland 下基本不工作;Deskflow 新版对 Wayland 有实验性支持,但坑多,第一次配建议先用 Xorg 把链路跑通。

  2. 剪贴板只同步文字。  复制一段文字过去没问题,图片、文件不行。要传文件,老老实实用 SMB、Syncthing 或者聊天软件的文件传输。别对它期待太多。

  3. 输入法各管各的。  在 Ubuntu 上打字用的是 Ubuntu 本地的输入法(我用 fcitx5),Windows 的输入法状态不会跟着过去。这其实是好事,但意味着你得在两台机器上分别习惯切换键。我把两边都设成了 Ctrl+Space。

我踩过的坑

1:apt 锁被 unattended-upgrades 长期占用

现象:

正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 277014(unattended-upgr)持有

诊断命令:

tail -3 /var/log/dpkg.logdf -h /ps -p 277014 -o pid,stat,%cpu,etimepgrep -a -P 277014tail -15 /var/log/unattended-upgrades/unattended-upgrades.log

这是因为apt中 400 多个包(含内核、glibc、systemd)的巨型更新在正常进行。

2:键盘布局警告

弹窗:

Missing Keyboard LayoutsThe following layouts from the other computer are not installed: zh

实测英文字母、数字、符号、中文都正常。

原理:Windows 把"微软拼音输入法"和 zh-CN 布局标识绑在一起报告;

Linux 中文用户通常用 us 布局 + ibus/fcitx 拼音,没有"中文键盘布局"。两边的布局概念不对等。

处理:勾选 "Don't show this again",忽略。

3:剪贴板单向

实测结果:

方向
结果
Windows → Ubuntu
可以
Ubuntu → Windows
不可用

原因:GNOME 46 + Wayland 的 portal 只到 V1。

解决方案:注销,在登录界面齿轮里选 "Ubuntu on Xorg"。

在 Xorg 下剪贴板走传统 X11 通路,双向完整。

相关学习资料