两台以上的电脑共用一套键盘鼠标(windows+Ubuntu)

两台以上的电脑共用一套键盘鼠标(windows+Ubuntu)

两台以上的电脑共用一套键盘鼠标(windows+Ubuntu)

让两台或多台 Windows 电脑共用一套键盘鼠标是一个非常实用且流行的需求。这不仅能节省桌面空间,还能极大提升在多设备间切换的工作效率。

Synergy 为例来详细讲解如何在 Windows 和 Ubuntu 之间共享一套键盘鼠标。另外还有:Barrier(开源免费,跨平台之王)Barrier 是 Synergy 核心的开源分支,完美支持 Windows、Linux(包括 Ubuntu)、macOS。但是我没用过,一直用的是Synergy。有兴趣的小伙伴可以自行了解Barrier。

Synergy 方案详解

一、Synergy 核心概念

  1. 服务器 (Server):连接着物理键盘鼠标的电脑。
  2. 客户端 (Client):接受服务器控制的电脑。
  3. 工作原理:通过局域网 TCP/IP 连接,在服务器端创建一个“虚拟桌面”,将客户端的屏幕作为扩展显示器。

二、软件获取与安装

A. Windows 安装

  1. 访问 Synergy 官网
  2. 下载 Windows 版本安装包
  3. 或者在夸克网盘下载,这里我分享出链接
    链接:https://pan.quark.cn/s/ca366ffe00df
    提取码:tT8p
  4. 运行安装程序,按向导完成安装
  5. 重要:安装时确保勾选“安装系统服务”以便开机自启动

B. Ubuntu 安装

方法:使用官方仓库(推荐)

ubuntu20.04安装synergy。要下载1.8.8版本的synergy。

wget http://archive.ubuntu.com/ubuntu/pool/universe/s/synergy/synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb sudo dpkg -i synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb 

中间可能提示缺少依赖,需要安装下面对应的依赖

sudo add-apt-repository ppa:rock-core/qt4 sudoapt-get update sudoapt-getinstall libcanberra-gtk-module sudo dpkg -i synergy_1.8.8-stable+dfsg.1-1build1_amd64.deb sudoapt-get -f install

成功安装后,终端输入下面命令即可运行synergy

synergy 

三、详细配置步骤

场景设定

  • 客户端:Windows 电脑(键盘鼠标直接连接在此)
  • 服务器端:Ubuntu 电脑
  • 物理布局:Ubuntu 电脑在 Windows 电脑的右侧

步骤0:安装Bonjour
这里需要提前安装好Bonjour因为windows中要运行synergy的话需要Bonjour环境。不安装的话,会一直提示你安装。这里我给出分享链接,下载后安装即可
链接:https://pan.quark.cn/s/ecc7335f7b37
提取码:HQde

步骤1:Windows 客户端配置

在这里插入图片描述


1、勾选client
2、服务器ip填ubuntu的ip地址
3、使用ifconfig命令可查看ubuntu的ip地址

在这里插入图片描述


4、勾选上auto config
5、点击应用,此时点击可能不会成功,因为还没有配置好Ubuntu

步骤2:Ubuntu 服务器配置

  1. 配置文件:在终端输入
gedit ~/.config/Synergy/Synergy.conf 

可以得到下面类似的配置文件

[General] screenName=ai port=24800 interface= logLevel=3 logToFile=false logFilename=/var/log/synergy.log wizardLastRun=7 language=zh-CN startedBefore=true autoConfig=true elevateMode=false elevateModeEnum=0 autoConfigPrompted=true edition=3 cryptoEnabled=false autoHide=true serialKey= lastVersion=1.8.8 lastExpiringWarningTime=0 activationHasRun=false groupServerChecked=true useExternalConfig=false configFile=/home/wxa/synergy.conf useInternalConfig=true groupClientChecked=false serverHostname= [internalConfig] numColumns=5 numRows=3 hasHeartbeat=false heartbeat=5000 relativeMouseMoves=false screenSaverSync=true win32KeepForeground=false hasSwitchDelay=false switchDelay=250 hasSwitchDoubleTap=false switchDoubleTap=250 switchCornerSize=0 ignoreAutoConfigClient=false enableDragAndDrop=true switchCornerArray\1\switchCorner=false switchCornerArray\2\switchCorner=false switchCornerArray\3\switchCorner=false switchCornerArray\4\switchCorner=false switchCornerArray\size=4 screens\1\name= screens\2\name= screens\3\name= screens\4\name= screens\5\name= screens\6\name= screens\7\name=LAPTOP-SM4KU0JU screens\8\name=ai screens\9\name= screens\10\name= screens\11\name= screens\12\name= screens\13\name= screens\14\name= screens\15\name= screens\size=15 hotkeys\size=0 screens\7\switchCornerSize=0 screens\7\aliasArray\size=0 screens\7\modifierArray\1\modifier=0 screens\7\modifierArray\2\modifier=1 screens\7\modifierArray\3\modifier=2 screens\7\modifierArray\4\modifier=3 screens\7\modifierArray\5\modifier=4 screens\7\modifierArray\6\modifier=5 screens\7\modifierArray\size=6 screens\7\switchCornerArray\1\switchCorner=false screens\7\switchCornerArray\2\switchCorner=false screens\7\switchCornerArray\3\switchCorner=false screens\7\switchCornerArray\4\switchCorner=false screens\7\switchCornerArray\size=4 screens\7\fixArray\1\fix=false screens\7\fixArray\2\fix=false screens\7\fixArray\3\fix=false screens\7\fixArray\4\fix=false screens\7\fixArray\size=4 screens\8\switchCornerSize=0 screens\8\aliasArray\size=0 screens\8\modifierArray\1\modifier=0 screens\8\modifierArray\2\modifier=1 screens\8\modifierArray\3\modifier=2 screens\8\modifierArray\4\modifier=3 screens\8\modifierArray\5\modifier=4 screens\8\modifierArray\6\modifier=5 screens\8\modifierArray\size=6 screens\8\switchCornerArray\1\switchCorner=false screens\8\switchCornerArray\2\switchCorner=false screens\8\switchCornerArray\3\switchCorner=false screens\8\switchCornerArray\4\switchCorner=false screens\8\switchCornerArray\size=4 screens\8\fixArray\1\fix=false screens\8\fixArray\2\fix=false screens\8\fixArray\3\fix=false screens\8\fixArray\4\fix=false screens\8\fixArray\size=4 

注意screenName=ai:这里的ai是你自己电脑的名字
cryptoEnabled=false:这个选项需要设置成false
screens\7\name=LAPTOP-SM4KU0JU这个选项改成你自己的名字
将上述配置文件修改并保存。有可能配置未生效,最简单的方法就是重启下自己的电脑。

  1. 启动 Synergy
# 命令行启动(无GUI) synergyc --name ubuntu-pc <Windows_IP地址># 或使用 GUI 启动 synergy 

.


四、高级功能与优化

1. 共享剪贴板

  • 默认启用,但有时需要手动配置
  • 文本同步:通常直接工作
  • 文件同步:需要两端都启用文件传输功能

2. 快捷键配置
Synergy 提供丰富的快捷键控制:

快捷键功能
Ctrl + Alt + Shift + ]切换屏幕(顺时针)
Ctrl + Alt + Shift + [切换屏幕(逆时针)
Ctrl + Alt + Shift + L锁定到当前屏幕
Ctrl + Alt + Shift + P暂停/恢复 Synergy

自定义快捷键

  • 在服务器配置中点击 “Hotkeys”
  • 添加新的快捷键组合和对应动作

3. 自动启动配置

Windows 开机启动

  1. 在 Synergy 中:Settings → Actions
  2. 勾选 “Start Synergy when the computer starts”
  3. 选择 “Log in and start”

Ubuntu 开机启动(systemd 服务方式):

# 创建服务文件sudonano /etc/systemd/system/synergyc.service 

启用服务:

sudo systemctl daemon-reload sudo systemctl enable synergyc sudo systemctl start synergyc 

4. 配置文件位置

# Ubuntu 配置文件 ~/.synergy.conf # 或 ~/.config/Synergy/synergy.conf # Windows 配置文件 C:\Users\<用户名>\AppData\Local\Synergy\synergy.conf 

五、故障排除

问题1:无法连接

# 1. 检查 Synergy 服务是否运行sudo systemctl status synergyc # Ubuntu# 或在 Windows 服务中查看 Synergy# 2. 检查端口是否监听# Ubuntu 上检查sudonetstat -tlnp |grep24800# Windows 上检查netstat -an |find"24800"# 3. 查看日志# Ubuntu 日志tail -f /var/log/syslog |grep synergy # Windows 日志# 查看 Synergy 的日志窗口或系统事件查看器

问题2:鼠标卡顿或延迟

  1. 检查网络延迟ping <对方IP> -t
  2. 降低加密强度:暂时关闭 SSL 测试
  3. 调整刷新率:在高级设置中降低屏幕刷新间隔
  4. 使用有线网络:Wi-Fi 可能不稳定

问题3:剪贴板不同步

  1. 确保两端都启用了剪贴板共享
  2. 重启 Synergy 服务
  3. 检查防火墙是否阻止了额外端口
  4. 尝试同步纯文本(排除格式问题)

问题4:屏幕边缘切换不灵敏

  1. 重新校准屏幕位置(在服务器配置中微调)
  2. 增加“屏幕边缘切换延迟”
  3. 确保屏幕分辨率比例正确

总结建议

备选方案
如果 Synergy 遇到问题,可以尝试:

  • Barrier(免费开源替代品,配置类似)
  • Input Director(仅Windows,但如果Ubuntu运行Windows虚拟机可用)

Read more

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

【OpenClaw从入门到精通】第10篇:OpenClaw生产环境部署全攻略:性能优化+安全加固+监控运维(2026实测版)

摘要:本文聚焦OpenClaw从测试环境走向生产环境的核心痛点,围绕“性能优化、安全加固、监控运维”三大维度展开实操讲解。先明确生产环境硬件/系统选型标准,再通过硬件层资源管控、模型调度策略、缓存优化等手段提升响应速度(实测响应效率提升50%+);接着从网络、权限、数据三层构建安全防护体系,集成火山引擎安全方案拦截高危操作;最后落地TenacitOS可视化监控与Prometheus告警体系,配套完整故障排查清单和虚拟实战案例。全文所有配置、代码均经实测验证,兼顾新手入门实操性和进阶读者的生产级部署需求,帮助开发者真正实现OpenClaw从“能用”到“放心用”的跨越。 优质专栏欢迎订阅! 【DeepSeek深度应用】【Python高阶开发:AI自动化与数据工程实战】【YOLOv11工业级实战】 【机器视觉:C# + HALCON】【大模型微调实战:平民级微调技术全解】 【人工智能之深度学习】【AI 赋能:Python 人工智能应用实战】【数字孪生与仿真技术实战指南】 【AI工程化落地与YOLOv8/v9实战】【C#工业上位机高级应用:高并发通信+性能优化】 【Java生产级避坑指南:

By Ne0inhk
ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

ARM Linux 驱动开发篇--- Linux 并发与竞争实验(互斥体实现 LED 设备互斥访问)--- Ubuntu20.04互斥体实验

🎬 渡水无言:个人主页渡水无言 ❄专栏传送门: 《linux专栏》《嵌入式linux驱动开发》《linux系统移植专栏》 ❄专栏传送门: 《freertos专栏》《STM32 HAL库专栏》 ⭐️流水不争先,争的是滔滔不绝  📚博主简介:第二十届中国研究生电子设计竞赛全国二等奖 |国家奖学金 | 省级三好学生 | 省级优秀毕业生获得者 | ZEEKLOG新星杯TOP18 | 半导纵横专栏博主 | 211在读研究生 在这里主要分享自己学习的linux嵌入式领域知识;有分享错误或者不足的地方欢迎大佬指导,也欢迎各位大佬互相三连 目录 前言  一、实验基础说明 1.1、互斥体简介 1.2 本次实验设计思路 二、硬件原理分析(看过之前博客的可以忽略) 三、实验程序编写 3.1 互斥体 LED 驱动代码(mutex.c) 3.2.1、设备结构体定义(28-39

By Ne0inhk
Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

Flutter for OpenHarmony:swagger_dart_code_generator 接口代码自动化生成的救星(OpenAPI/Swagger) 深度解析与鸿蒙适配指南

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 后端工程师扔给你一个 Swagger (OpenAPI) 文档地址,你会怎么做? 1. 对着文档,手写 Dart Model 类(容易写错字段类型)。 2. 手写 Retrofit/Dio 的 API 接口定义(容易拼错 URL)。 3. 当后端修改了字段名,你对着报错修半天。 这是重复劳动的地狱。 swagger_dart_code_generator 可以将 Swagger (JSON/YAML) 文件直接转换为高质量的 Dart 代码,包括: * Model 类:支持 json_serializable,带 fromJson/

By Ne0inhk
Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

Linux 开发别再卡壳!makefile/git/gdb 全流程实操 + 作业解析,新手看完直接用----《Hello Linux!》(5)

文章目录 * 前言 * make/makefile * 文件的三个时间 * Linux第一个小程序-进度条 * 回车和换行 * 缓冲区 * 程序的代码展示 * git指令 * 关于gitee * Linux调试器-gdb使用 * 作业部分 前言 做 Linux 开发时,你是不是也遇到过这些 “卡脖子” 时刻?写 makefile 时,明明语法没错却报错,最后发现是依赖方法行没加 Tab;想提交代码到 gitee,记不清 git add/commit/push 的 “三板斧”,还得反复搜教程;用 gdb 调试程序,输了命令没反应,才想起编译时没加-g生成 debug 版本;甚至连写个进度条,都搞不懂\r和\n的区别,导致进度条乱跳…… 其实这些问题,

By Ne0inhk