看到網路上有人在討論如何用一套鍵盤滑鼠來控制一台 Mac 和一台 Windows,我自己目前的做法是透過硬體 KVM,而且為了支援 Ducky Shine 3 的鍵盤,還得有 DDM 支援才行,但總覺得在兩台電腦之間的切換不夠流暢(大概要等兩秒才能完全切換),所以想試試軟體 KVM 能不能有更無縫的體驗。
Survey 出來的方案有:
Synergy 雖然是 open source 的 project (目前版本號為 1.7.0),但它目前沒有免費提供安裝包,要 donate 10 USD 才可以下載,而 Share Mouse 雖然可以免費使用,但如果有超過兩台螢幕(定義為 Power User),則要購買授權。因此最後的選擇是自己編譯 Synergy 來試用。
目前 Synergy 的 source 擺在 GutHub 上,可以把整個 repo 打包,用 Zip 檔下載回來,或是用 git clone
的方式來取得。官方有一份 Wiki 文件解釋如何編譯,但只照著文件做可能還是會遇到一些小問題,以下依照 Mac 和 Windows 平台來做步驟說明。
Mac
環境:Mac OS X 10.10.1, 已先安裝 Homebrew, Xcode, 及 Command Line Tools.
安裝 CMake 及 Qt
brew install cmake
brew install qt
目前 code 只支援到 Mavericks (OS X 10.9),另外 Qt 的路徑也需要修改,有一位韓國人已經先改好了,以下是 patch 檔:
修改 ext/toolchain/commands1.py
Configuration & Build
產生設定檔之前,可以先用 ./hm.sh genlist
來看看支援哪些編譯器:
1: Unix Makefiles
2: Xcode
3: Eclipse CDT4 - Unix Makefiles
我是用 1: Unix Makefiles
來 build, 另外兩個沒試過。
./hm.sh conf -g1 --mac-sdk 10.10 --mac-identity test
./hm.sh build
產生安裝檔
其實 Mac 版的 compile 好之後,就可以直接拿 bin/Synergy/Synergy.app
來用,倒不一定要透過 .dmg 的安裝包來安裝,不過包成 .dmg 檔還是比較賞心悅目些。
./hm.sh package mac
安裝包會在 bin/synergy-1.7.0-MacOSX1010-x86_64.dmg
Win XP
環境:Windows XP 32-bit, 沒有預先安裝好什麼特別的 compiler
安裝 Compiler
從 hm genlist
中可以看出
1: Visual Studio 10
2: Visual Studio 10 Win64
3: Visual Studio 9 2008
4: Visual Studio 9 2008 Win64
5: Visual Studio 8 2005
6: Visual Studio 8 2005 Win64
如果不做任何修改,系統只支援 VC8/9/10, 如果考慮免費的方案,可以選用
不過用 2008 會遇到沒有 stdint.h
的錯誤(VS 2010 以後版本有提供),另外在製作安裝包時也會遇到錯誤,所以請使用 2010,另外,經過 patch 也可以讓 VS2012 和 VS2013 編譯(但該 patch 並沒有修改到 Merge Module,會導致在製作安裝包時錯誤)。
Patch for VS2012/2013
另外編譯時會遇到找不到 dns_sd.h
的問題,可以到 apple 提供的 mDNSResponder 裡去拿出來,把 mDNSShared/dns_sd.h
放到 src/gui/src
裡。(參考)
安裝 CMake, Python, Qt, WiX Toolset
- CMake
- Python (要用 Python 2.x 版)
- Qt SDK 2010.02 (預設用這個版本,似乎有點老舊。XD)
- Wix Toolset
Python installer 可以自動加入 PATH 環境變數(安裝時勾選此選項),但 Qt 要手動加入 C:\Qt\2010.02\qt\bin;C:\Qt\2010.02\mingw\bin
路徑。
製作安裝包會用到 WiX Toolset,但其預設的 Merge Module 是 VC10 (Visual Studio 2010),但免費版的 Visual C++ Express 2010 並沒有提供 Merge Module,這個部分可以拜請 google 大神,或是可以考慮用上述 patch 再用 VS 2013 (有提供 Merge Module)來編譯和製作安裝包。但該 patch 並沒有修改到 WiX Toolset 的設定檔,所以需要再修改 src\setup\win32\Include.wxi
:
編譯及製作安裝包
用 hm genlist
先找看看想用的 compiler 是哪個, 再給參數:
hm conf -g1
hm build
hm package win
測試心得
我的環境是 Windows XP 當 server, 另一台 MacBook Pro 當作 client,成功連線後的確可以讓鍵盤和滑鼠做無縫的切換,但還是有一些小細節不如預期:
- 沒辦法完整模擬滑鼠按鍵,在 client 端,除了左中右鍵以及滾輪外,其餘按鍵皆無法使用,這樣一些自訂功能就被辦法使用了。
- 在 Mac client 端滑鼠滾輪方向會顛倒,無法採用 Mac 特有的自然捲動方式。
- 沒辦法微調螢幕的相對位置。設定不同電腦間的相對位置是以 3×5 方格來排列的,所以沒辦法像外接螢幕那樣微調到滑鼠切換螢幕時,依舊平順滑過。
- 當 client 也有多螢幕的時候,會用最邊界的螢幕當作相連之處,而無法與 server 的螢幕形成一個上下左右二度空間的相關性。
- 在 Mac client 上,使用上下鍵做注音輸入的選字會有問題。
- 不知是不是我處的無線網路環境有問題,有時連線會斷斷續續?另外也有一些些輕微的 lag 現象。這個現象暫時持保留態度。
或許應該再試用個幾次才有辦法決定續不續用,以這類 Network KVM 相連,雖然遇到上述問題,但可以把我目前三螢幕的工作環境,再延伸到四螢幕(查資料、打報告、看片、看片)(如果配上 Duet Display 就成了五螢幕了,不過說不定也是因為這樣才不穩的?)。畢竟我已經有硬體的 KVM,在硬體 KVM 的環境下,不只鍵盤滑鼠可以共用,連螢幕也可以共用,要是軟體穩定度真的不夠,再換回硬體的方式也 ok。所以這兩天的嘗試,等於賺了 10 USD 的試用費。XD
林夕
2015/03/16你好,能否提供下已经编译好的版本.不胜感激 email : [email protected]
tsaiid
2015/03/16Sorry, 如果我提供了編譯好的版本,這樣就對 Synerge team 有點不好意思了,建議到他們官網提供贊助併下載
leochao
2015/05/15請問一下,在win中的patch要怎麼使用?