Mac与Windows混合开发体验优化
后面的工作中,可能要经常使用Windows开发,而过去一段时间,主要使用iMac开发,个人还是更习惯用iMac作为主力开发设备:
- 屏幕大且清晰
- 键盘组合更科学,Windows的Win键比较影响,Mac的Command+Control更习惯
- Mac的Terminal更好用
一些想法:
- Mac通过VSCode远程开发在Windows开发,Windows只是编译+调试
- Windows和Mac最好共用键鼠
对于第一个问题,一开始想着Windows和Mac都在内网,但发现ssh 内网ip是无效的。 如果用网络直连,肯定是可以的,但Mac为了网速,已经占用了网线连接。可能要买个1分2的转换器?觉得太麻烦…… 今天又研究了下,发现Mac有个Thunderblot Brige功能,而自己的HP Z8 Studio也是支持的,而且发电脑时就带了根10Gbps的线,于是用这根线连接了iMac和Windows。
- 关于ip:iMac是DHCP分配IP,看起来OK,Windows要手动开启,入口还有点隐晦(也可能是我好久不用),但这个其实不关键,手动/自动都可能,只要IP在合法区段
- 结果发现Mac无法ping通Windows,但Windows可能Ping通Mac,容易猜到是防火墙的原因,如下图Part2,开启后就可能Ping通了
- 但按照网上的教程,无论怎么配置ssh都会超时,于是直接让防火墙不保护这个连接了(反正是私有网络,而且后面还有其他功能要用,干脆不折腾了)
- 另外就是在Windows开启sshd服务,网上教程比较多,就不赘述了
- ssh能登录成功,VSCode远程开发就比较好解决了,至此,第一个想法算是落地了
对于第2个想法,简单做法是买一个KVM切换器,研究后发现有些软件也能实现类似的能力,满足我的基本诉求。
最终选用了debauchee/barrier: Open-source KVM software ,GUI比较简单,找到Settings页面和日志显示对于排查问题非常重要。
主要有两个问题,一是从日志看,有如下错误:
[2024-08-06T16:21:20] INFO: starting server
[2024-08-06T16:21:20] INFO: config file: /private/var/folders/05/ysg80n5d4w1c1ht33yzktt480000gn/T/Barrier.ffXjlB
[2024-08-06T16:21:20] INFO: log level: INFO
[2024-08-06T16:21:20] INFO: drag and drop enabled
started server (IPv4/IPv6), waiting for clients
[2024-08-06T16:21:20] INFO: OpenSSL 3.0.0 7 sep 2021
[2024-08-06T16:21:20] ERROR: ssl certificate doesn't exist: /Users/vimerzhao/Library/Application Support/barrier/SSL/Barrier.pem
[2024-08-06T16:21:35] INFO: OpenSSL 3.0.0 7 sep 2021
[2024-08-06T16:21:35] ERROR: ssl certificate doesn't exist: /Users/vimerzhao/Library/Application Support/barrier/SSL/Barrier.pem
可以参考这个Barrier.pem not generated on MacOS install for v2.4.0 · Issue #1609 · debauchee/barrier解决:
cd "/Users/USERNAME/Library/Application Support/barrier/SSL"
openssl req -new -x509 -sha256 -days 999 -nodes -out Barrier.pem -keyout Barrier.pem
我更倾向于直接关闭SSL,第2个问题是Windows作用Client,Mac是不会主动发现并发起连接的,关键是手动添加:在Server(iMac)的配置(不是Setting)中以屏幕名称为唯一ID添加Windows(Client)。
如此之后,iMac的键鼠便可以丝滑地共享给Windows了,但滚动和快捷键好像差点,我理解和物理KVM的差距:
- 功能完备性(复杂组合键)、不支持屏幕
但也有优势:
- 不用按物理按键切换(之前看别人的需要),能直接用屏幕边缘衔接(这样丝滑很多,其实非常重要)
- 不需要额外花钱,更有技术成就感
使用记录:
- Mac-Server + Windows-Client时,Windows的滚动失效,需在Mac的
鼠标->滚动速度
调低阈值,在Client滚动就好了,再把滚动速度调回来也不影响…..参考macOS scrolling on client · Issue #502 · debauchee/barrier