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 地址:

Barrier

主流的 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的更多相关文章

  1. 精通Web Analytics 2.0 (12) 第十章:针对潜在的网站分析陷阱的最佳解决方案

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第十章:针对潜在的网站分析陷阱的最佳解决方案 是时候去处理网站分析中最棘手的一些问题了,然后获得属于你的黑带,这是成为分析忍者的 ...

  2. Maven WEB 项目使用ProGuard进行混淆,最佳解决方案

    Maven WEB 项目使用ProGuard进行混淆,最佳解决方案 近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保 ...

  3. radio中最佳解决方案

    radio中最佳解决方案 1.html中 <td> <input id="status" name="status" type="r ...

  4. php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理

    php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理 Joe PHP 2012-01-18 定时任务对于php来说一直都是很多朋友的一个难题,但却很多地方都遇到了.比如说:游戏 ...

  5. javascript 解决默认取整的坑(目前已知的最佳解决方案)

    javascript 解决默认取整的坑(目前已知的最佳解决方案) 复现该问题 js在数字操作时总会取更高精度的结果,例如1234/10结果就是123.4,但是在c或者java中整数除以10的结果还是整 ...

  6. PHP Ajax 跨域问题最佳解决方案 【摘自菜鸟教程】

    PHP Ajax 跨域问题最佳解决方案 分类 编程技术 http://www.runoob.com/w3cnote/php-ajax-cross-border.html 本文通过设置Access-Co ...

  7. mac安装conda后,终端的用户名前面有一个(base),最佳解决方案

    mac安装了conda后,前面会有一个(base),很烦人,终于找到最佳解决方案了: $ conda config --set auto_activate_base false 原因: 安装conda ...

  8. Android 旋转屏幕--处理Activity与AsyncTask的最佳解决方案

    一.概述 运行时变更就是设备在运行时发生变化(例如屏幕旋转.键盘可用性及语言).发生这些变化,Android会重启Activity,这时就需要保存activity的状态及与activity相关的任务, ...

  9. 生产环境中,数据库升级维护的最佳解决方案flyway

    官网:https://flywaydb.org/ 转载:http://casheen.iteye.com/blog/1749916 1.  引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的 ...

随机推荐

  1. libevent源码学习(1):日志及错误处理

    目录 错误处理函数 函数声明 __attribute__指令 函数定义 可变参数宏 _warn_helper函数 日志处理 event_log日志处理入口 日志处理回调函数指针log_fn 设置日志处 ...

  2. SpringBoot整合quartz框架启动定时任务报错:the given trigger will never fire.

    org.quartz.SchedulerException: Based on configured schedule, the given trigger 'DEFAULT.cron_b1a91e1 ...

  3. Linux(centos) 设置MySQL数据库不区分大小写

    1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点下,加入一行: lower_case_table_names=1 2.重启数据库服务 service mysqld restar ...

  4. 【LeetCode】725. Split Linked List in Parts 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  5. RASP Runtime Application Self-protection 运行时应用自我保护 介绍及优缺点

    RASP 介绍 Runtime Application Self-protection 运行时应用自我保护 [图源:绿盟科技] 概念 Gartner (著名信息技术研究和分析厂商) 在2014年提出了 ...

  6. SMOOTHING (LOWPASS) SPATIAL FILTERS

    目录 FILTERS Box Filter Kernels Lowpass Gaussian Filter Kernels Order-Statistic (Nonlinear) Filters Go ...

  7. matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions

    目录 对Gridspec的一些精细的调整 利用SubplotSpec fig.add_grdispec; gs.subgridspec 一个利用Subplotspec的复杂例子 函数链接 matplo ...

  8. [数据结构]链表LinkList

    目录 1.3 链表 1.3.1 头插法建立单链表 1.3.2 限制链表长度建立单链表 1.3.3 尾插法建立单链表 1.3.4 按序号查找单链表 1.3.5 按值查找单链表 1.3.6 链表的插入 1 ...

  9. 关于 base64 编码

    一.什么是Base64编码 Base64是一种用64个字符来表示任意二进制数据的方法.它是一种编码方式,而非加密方式.它通过将二进制数据转变为64个"可打印字符",完成了数据在HT ...

  10. HTML网页设计基础笔记 • 【第5章 常用的样式属性】

    全部章节   >>>> 本章目录 5.1 字体及文本属性 5.1.1 字体属性 5.1.2 文本属性 5.2 边距和填充 5.2.1 边距 5.2.2 填充 5.3 边框属性 ...