经常会遇到这样的场景:手机上看到某位大佬发了一段醍醐灌顶的话,马上想记录到自己的笔记系统里去。但电脑上并没有登录微信,所以还得先登录电脑端微信,再自动同步消息,找到那段话,复制,记录……
如果我们用的是苹果全家桶,情况稍好一点:iphone 上复制之后,在 mac 端直接粘贴就行了。但“接力”功能有时也会失灵,不太可靠。
而如果手机用的是 iphone,电脑用的是 win,那日子就会更难过一点。如果恰好又要用 Linux 桌面版玩一些机器学习的项目,简直就太麻烦了,目前好像也没有太多的解决办法……
欧神开源的这个工具 midgard[1] 正是解决剪贴板多端同步的问题,包括 mac,win,Linux,iphone。
剪贴版自动在 mac 和 win,桌面板 Linux 间同步,iphone 上用捷径获取、上传剪贴板。
多端同步
除了剪贴板同步,midgard 还有另外 2 个超级好用的功能:
- 图床
- 代码片段生成好看的图片
先说图床,在 mac 端的使用流程是这样的:截图;按下快捷键 ctrl alt s
。图片被上传到服务器,并且图片会自动备份到你的 github 上。然后这张截图的链接就静静地躺在本地 mac 的剪贴板上,这时只需要 ctrl v
,就可以将图片链接贴到文章里,非常优雅。
再说第二个功能。之前 Go 夜读知识星球里有一个读代码的打卡活动,欧神每次都是在地铁上用手机看代码,完成打卡。需要一个工具能将 iphone 剪贴板上的代码片段转成好看的图片,再发表在星球上:
carbon
它就是 code2img[2],现在 code2img 也集成到 midgard 里来了。
介绍完了功能之后,再来简单看一下原理。
架构图
在 mac 端部署一个后台常驻进程,设置成开机启动。它通过 websocket 和 server 端保持同步,同时它会捕获本地系统快捷键和剪贴板的变化。每当本地剪贴板发生变化时它会将内容同步到 server,server 再将内容广播到其他端;当捕获到 ctrl alt s
快捷键后,会调用 allocate
接口将图片上传到 server 的 ./data
目录下,server 返回图片链接,并写入本地剪贴板。
最后,欢迎大家亲自试试,项目里有详细的安装文档和使用文档,中英文都有。另外,欧神的代码写得很好,值得多学习,有问题本文留言。
参考资料
[1]
midgard: https://github.com/changkun/midgard
[2]
code2img: https://github.com/golang-design/code2img