synergy最佳解决方案——barrier
synergy最佳解决方案——barrier
不知道大家有没有一套键盘鼠标控制多台电脑的需求,主流的硬件或说软件有大神整理如下:

软件方案:
- Windows 之间:Mouse Without Borders
- Windows 和 macOS 之间:ShareMouse
- Linux:Synergy 或者它的免费版本 Barrier
硬件方案:
对拷线:JUC500、Smart KM Link 等
KVM 切换器:Aten
USB 切换器
Logitech Flow
我的需求到倒还好,一台win11主力机,一台ubuntu desktop,文件需求已经解决了,采用常见的 NFS 方案,当输入需求有 kvm , 但我觉得有点麻烦,需要按键才能切换,用了好几天的 synergy,出现本来还正常的用着,莫名其妙除了好多问题,刚开始用 win做 server,用了几天报错“……无效句柄”
只好放弃选择 ubuntu作为server,正常用了半天,win 这又出问题来了,一直 连接失败,反复尝试反复失败,试过重装试过大佬总结的各种解决方案,最终选择放弃(当然用的 synergy 是网友编译的版本【盗版】)
实在 没办法,选择试一下另一条路线:barrier
众所周知 synergy 是开源软件,但官编的正版是需要付费的,而 barrier 是 synergy fork出的另一个版本,有热心网友便以维护,分支上开放了 win 和 mac 的下载,可以直接使用,而linux版本需要知己动手编译一下。
win 下载安装就不多说,附上 github 地址:
主流的 linux 官方源应该有编译好的版本,如果没有需要自己变异,则具体操如下:
先下载解压源码包(建议先github网页中的Release里找到最新的版本),执行cmake:
$ wget https://github.com/debauchee/barrier/releases/download/v2.3.3/barrier-2.3.3-release.tar.gz
$ tar -xzvf barrier-2.3.3-release.tar.gz
$ cd barrier-2.3.3-release
$ mkdir build && cd build
$ cmake ..
执行cmake后,可能遇到的问题:
报错Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR),解决方法是安装libcurl4-openssl-dev
报错No package 'avahi-compat-libdns_sd' found,解决方法是安装libavahi-compat-libdnssd-dev
报错Missing library: Xtst,解决方法是安装libxtst-dev
报错By not providing "FindQt5.cmake" in CMAKE_MODULE_PATH解决方法是安装qt5-default
一切顺利的话,输出会是这样的:
...
-- Full Barrier version string is '2.3.3-release-release'
-- Configuring directory /home/mpc/barrier/barrier-2.3.3-release/build/rpm
-- Configuring file barrier.spec
-- Configuring done
-- Generating done
-- Build files have been written to: /home/name/barrier/barrier-2.3.3-release/build
这就表示cmake执行成功了,根据当前环境生成了可用的Makefile,接下来执行编译:
$ make -j3
编译可能会失败ake可能遇到的问题:
报错fatal error: openssl/ssl.h: No such file or directory,解决方法是安装libssl-dev
编译成功后,执行安装,就可以算打完收工了:
$ sudo make install
启动后大致界面如下:
- win端:

ubuntu 端:
大同小异
整完收工 !
synergy最佳解决方案——barrier的更多相关文章
- 精通Web Analytics 2.0 (12) 第十章:针对潜在的网站分析陷阱的最佳解决方案
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十章:针对潜在的网站分析陷阱的最佳解决方案 是时候去处理网站分析中最棘手的一些问题了,然后获得属于你的黑带,这是成为分析忍者的 ...
- Maven WEB 项目使用ProGuard进行混淆,最佳解决方案
Maven WEB 项目使用ProGuard进行混淆,最佳解决方案 近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保 ...
- radio中最佳解决方案
radio中最佳解决方案 1.html中 <td> <input id="status" name="status" type="r ...
- php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理
php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理 Joe PHP 2012-01-18 定时任务对于php来说一直都是很多朋友的一个难题,但却很多地方都遇到了.比如说:游戏 ...
- javascript 解决默认取整的坑(目前已知的最佳解决方案)
javascript 解决默认取整的坑(目前已知的最佳解决方案) 复现该问题 js在数字操作时总会取更高精度的结果,例如1234/10结果就是123.4,但是在c或者java中整数除以10的结果还是整 ...
- PHP Ajax 跨域问题最佳解决方案 【摘自菜鸟教程】
PHP Ajax 跨域问题最佳解决方案 分类 编程技术 http://www.runoob.com/w3cnote/php-ajax-cross-border.html 本文通过设置Access-Co ...
- mac安装conda后,终端的用户名前面有一个(base),最佳解决方案
mac安装了conda后,前面会有一个(base),很烦人,终于找到最佳解决方案了: $ conda config --set auto_activate_base false 原因: 安装conda ...
- Android 旋转屏幕--处理Activity与AsyncTask的最佳解决方案
一.概述 运行时变更就是设备在运行时发生变化(例如屏幕旋转.键盘可用性及语言).发生这些变化,Android会重启Activity,这时就需要保存activity的状态及与activity相关的任务, ...
- 生产环境中,数据库升级维护的最佳解决方案flyway
官网:https://flywaydb.org/ 转载:http://casheen.iteye.com/blog/1749916 1. 引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的 ...
随机推荐
- libevent源码学习(1):日志及错误处理
目录 错误处理函数 函数声明 __attribute__指令 函数定义 可变参数宏 _warn_helper函数 日志处理 event_log日志处理入口 日志处理回调函数指针log_fn 设置日志处 ...
- SpringBoot整合quartz框架启动定时任务报错:the given trigger will never fire.
org.quartz.SchedulerException: Based on configured schedule, the given trigger 'DEFAULT.cron_b1a91e1 ...
- Linux(centos) 设置MySQL数据库不区分大小写
1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点下,加入一行: lower_case_table_names=1 2.重启数据库服务 service mysqld restar ...
- 【LeetCode】725. Split Linked List in Parts 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- RASP Runtime Application Self-protection 运行时应用自我保护 介绍及优缺点
RASP 介绍 Runtime Application Self-protection 运行时应用自我保护 [图源:绿盟科技] 概念 Gartner (著名信息技术研究和分析厂商) 在2014年提出了 ...
- SMOOTHING (LOWPASS) SPATIAL FILTERS
目录 FILTERS Box Filter Kernels Lowpass Gaussian Filter Kernels Order-Statistic (Nonlinear) Filters Go ...
- matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions
目录 对Gridspec的一些精细的调整 利用SubplotSpec fig.add_grdispec; gs.subgridspec 一个利用Subplotspec的复杂例子 函数链接 matplo ...
- [数据结构]链表LinkList
目录 1.3 链表 1.3.1 头插法建立单链表 1.3.2 限制链表长度建立单链表 1.3.3 尾插法建立单链表 1.3.4 按序号查找单链表 1.3.5 按值查找单链表 1.3.6 链表的插入 1 ...
- 关于 base64 编码
一.什么是Base64编码 Base64是一种用64个字符来表示任意二进制数据的方法.它是一种编码方式,而非加密方式.它通过将二进制数据转变为64个"可打印字符",完成了数据在HT ...
- HTML网页设计基础笔记 • 【第5章 常用的样式属性】
全部章节 >>>> 本章目录 5.1 字体及文本属性 5.1.1 字体属性 5.1.2 文本属性 5.2 边距和填充 5.2.1 边距 5.2.2 填充 5.3 边框属性 ...