当前位置: 首页 > Linux

Synergy-core编译使用教程

时间:2023-04-06 06:09:41 Linux

Synergy如果你平时同时拥有两台或多台电脑,那么它们之间如何协作,如何共享文件呢?当然,我知道Windows官方出品的鼠标都有“无界”功能。有许多提供文件共享的服务。今天要介绍的是Synergy,它可以让普通键盘鼠标跨屏操作,还可以复制粘贴文字、图片等,而且不受平台限制,只要两台台式电脑通过IP就可以互通.由于UnboundedMouse是微软出品,只支持Windows平台,安装包也是MSI文件格式。Synergy是一款跨平台鼠标、键盘、剪贴板共享软件,支持Windows、Mac、Linux主流桌面平台。也就是说,你可以用连接在Mac电脑上的键盘和鼠标来操作旁边的Windows电脑。官网:https://symless.com/synergy开源地址:https://github.com/symless/synergy-core下载GUI版程序只能在官网付费下载,无需登录进入AppStore,有一些需要注意的地方1.8.8之前的版本都是32位的程序,所以这次就折腾64位的开源版本。从MacOSCotalina开始,32位程序根本无法运行。如果你从官网下载了SynergyGUI版本,双击它就大功告成了。编译这里说说github上的开源核心版本,编译安装。MacOS编译安装依赖,编译软件,编译,安装:#InstallHomebrew##安装相关编译软件$brewinstallcmake$brewinstallqt$brewinstallopenssh$brewinstallgit##查看qt安装信息,以及目录等.需要使用/usr/local/Cellar/qt/5.15.0/Frameworks/$brewinfoqt##添加环境变量$exportCMAKE_PREFIX_PATH="/usr/local/Cellar/qt/5.15.0/Frameworks/"#下载源码并进入源码目录$gitclonehttps://github.com/symless/synergy-core.git$cdsynergy-core$mkdirbuild$cdbuild##准备编译参数$cmake-DCMAKE_OSX_SYSROOT=/应用程序/Xcode。app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk-DCMAKE_OSX_DEPLOYMENT_TARGET=10.15-DCMAKE_OSX_ARCHITECTURES=x86_64##编译makeWindowscompile$cdProjects\synergy$mkdirbuild$$callbui"Cd\Program文件(x86)\MicrosoftVisualStudio14.0\VC\vcvarsall.bat"$cmake-G"VisualStudio142015Win64"-DCMAKE_BUILD_TYPE=Debug..$msbuildsynergy-core.sln/p:Platform="x64"/p:Configuration=Debug/m$cd..$复制ext\openssl\windows\x64\bin\*build\Linuxcompile$cdProjects/synergy$mkdirbuild$cdbuild$cmake..$make编译成功,会生成3个可执行文件。编辑好的产品在:./synergy-core/build/bin/可执行文件synergy-core命令行程序:synergy-core,synergyc,synergys.SynergyCorev1.x对于1.x版本,客户端和服务器是两个程序,分别对应:synergyc和synergies。OSCommandWindowssynergyc[服务器IP]macOS./synergyc[服务器IP]Linux./synergyc[服务器IP]OSCommandWindowssynergys-c[配置文件路径]macOS./synergys-c[配置文件路径]Linux./synergys-c[路径toconfigfile]SynergyCorev2.xv2.x,server和client都是一个程序,通过不同的命令来确定他们的职责。OSCommandWindowssynergy-core--client[服务器IP]macOS./synergy-core--client[服务器IP]Linux./synergy-core--client[服务器IP]OSCommandWindowssynergy-core--server-c[配置文件路径]macOS./synergy-core--server-c[配置文件路径]Linux./synergy-core--server-c[配置文件路径]命令帮助传递此命令:$./synergyc--help$./synergys--help可以得到v1.xsynergy的帮助信息,但是v2.x不知道是不是忘了加上这个。$./synergy-core--help##不会显示帮助,所以我会按原样放在这里。synergy-core--clientUsage的选项:synergy-core--client[--yscroll][--daemon|--no-daemon][--name][--restart|--no-restart][--debug]连接到协同鼠标/键盘共享服务器。-d,--debug过滤掉优先级低于level的日志消息。级别可能是:FATAL、ERROR、WARNING、NOTE、INFO、DEBUG、DEBUG1、DEBUG2。-n,--name在配置中使用screen-name而不是主机名来标识此屏幕。-1,--no-restart不要尝试在失败时重启。*--restart如果失败则自动重启服务器。-l--log将日志消息写入文件。--no-tray禁用系统托盘图标。--enable-drag-drop启用文件拖放。-f,--no-daemon在for中运行eground.*--daemon作为守护进程运行。--yscroll定义垂直滚动增量,默认为120。-h,--help显示此帮助并退出。--version显示版本信息并退出。*标记为默认值。服务器地址的格式为:[][:]。主机名必须是服务器的地址或主机名。端口覆盖默认端口24800。原文来自synergy-core的选项--serverUsage:synergy-core--server[--address

][--config][--daemon|--no-daemon][--name][--restart|--no-restart][--debug]启动协同鼠标/键盘共享服务器。-a,--address
侦听给定地址上的客户端。-c,--config改用指定的配置文件。-d,--debug过滤掉日志消息优先级低于level。级别可能是:FATAL、ERROR、WARNING、NOTE、INFO、DEBUG、DEBUG1、DEBUG2。-n,--name在配置中使用screen-name而不是主机名来标识此屏幕。-1,--no-restart不要尝试在失败时重启。*--restart如果失败则自动重启服务器。-l--log将日志消息写入文件。--no-tray禁用系统托盘图标。--enable-drag-drop启用文件拖放。-f,--no-daemon在前台运行。*--daemon作为守护进程运行。-h,--help显示此帮助并退出。--version显示版本信息并退出。*标记默认值。--address的参数格式为:[][:]。主机名必须是接口的地址或主机名e在系统上。默认是监听所有接口。该端口覆盖默认端口24800。如果未提供配置文件路径名,则以下第一个加载成功设置配置:$HOME/.synergy.conf/etc/synergy.conf将不讨论配置图形用户界面。这是cli程序的配置。原文在这里SynergyTextConfig。我在这里简单提一下。然后你就可以按照我给的模板改一下就可以用了。如果需要特殊定制,可以查看官方wiki,或者留言问我。Synergy的配置文件基本格式:section:''name''''args''end配置类型有4种:screensaliaseslinksoptionsaliases定义了主机名和屏幕命名的关系。那么如何获取主机名呢?在macos环境下:$hostname##或者$echo$HOSTNAMEscreens定义了我们的屏幕,名称,以及在操作每个屏幕时是否响应一些特殊的按键。Windows、Linux、Mac都有自己的特殊键,比如win、command、metakeys等,如果不是跨平台的,不需要特殊处理。链接定义了每个屏幕的方向,这一点非常重要。{left|right|up|down}[]=name[]范围参数比较有意思。合理的配置可以达到如下效果。部分:链接moe:right=larryup(50,100)=curly(0,50)larry:left=moeup(0,50)=curly(50,100)curly:down(0,50)=moedown(50,100)=larry(0,50)结束实现:#+------------+#|卷曲|#||#+------------+#+---------++--------+#|萌||拉里|#||||#+---------++----------+即在卷屏上,鼠标向左滑动,会滑动到萌屏,滑动向右,它将滑动到larray屏幕。options其他选项,如定义心跳间隔、屏幕切换粘滞时间、配置示例等。让我们有一个大而全面的配置文件示例。启动一个Synergy-core服务器,配置文件是必须的!示例文本配置文件这个例子来自doc/synergy-basic.conf#samplesynergyconfigurationfile##comments以#字符开始,一直到#行结束。注释可以出现在语法允许的任何地方。#+----------++--------++--------+#|Mac迷你||笔记本||窗口|#||||||#+----------++--------++--------+section:screens#三台主机命名为:mac-mini,macbook,和windows#这些是主机的好听名字,以便于编写配置文件#下面的别名部分包含主机的“实际”名称(它们的主机名)mac-mini:macbook:windows:endsection:links#windows在macbook的右边#mac-mini在macbook的左边macbook:right(0,100)=windows#括号中的数字表示屏幕边缘被认为处于切换状态的百分比)left=mac-mini#shift=shift(shift、alt、super、meta可以映射到其他任何一个)#macbook在mac-mini的右边mac-mini:right=macbook#macbook在左边windowswindows:left=macbookendsection:aliases#windows的“真实”名称是John-Smiths-windows-3.local。#如果我们愿意,我们可以删除这个别名,而是在windows上面的任何地方使用John-Smiths-windows-3.local。#希望这应该很容易理解为什么使用别名更好macbook:Pauls-MBP.localmac-mini:jumei-deMac-xp-mini.localendsection:optionsswitchDelay=400#当鼠标滑到边缘时,停留如何切换屏幕需要多长时间clipboardSharing=true#共享剪贴板clipboardSharingSize=10000#剪贴板共享字节大小限制,单位:千字节endstart##startserver$./synergy-core--server--address172.20.50.25:24800--no-daemon--namemacbook--config./synergy.conf##启动客户端之一$./synergy-core--client--no-daemon--namemac-mini172.20。50.25:24801常见问题问题1:致命:发生错误:辅助设备不信任此进程,请在系统设置中允许它。这是因为你在运行命令行程序的时候调用了系统的敏感接口。如果报错,需要报Thiscommandlinesoftwaregrantspermission。也就是说,如果你使用iTerm运行Synergy-core,你就对iTerm进行授权,如果你使用系统终端运行,则对终端进行授权。我使用的Mac是在系统偏好设置>安全隐私>隐私中配置的。如果是第一次授权,一般会有弹窗,根据弹框点击即可。问题2:synergy-core[66198:16759205]pid(66198)/euid(501)在非主线程环境中调用TIS/TSM,错误:这是不允许的。请在主线程中调用TIS/TSM!!!如果您仍在运行SynergyGUI程序,只需将其关闭即可。总结一下,synergy-core这个程序还不错,虽然配置有点麻烦,但是鼠标键盘映射没问题,复制粘贴(图片可以跨屏传输)也正常。但是,我没有尝试在macOS和Windows上使用它。试试看回来参考https://github.com/symless/sy...https://my.oschina.net/k4nz/b...https://apple.macx.cn/thread-。..