Since version 2.x there is GUI for synergy available and there is no hm.sh script in source.
I've chose to use 2.x since it uses openssl to secure connection.
Most linux distro has package available.
sudo dnf install synergy
git clone https://github.com/symless/synergy-core.git git checkout v2.0.0-stable brew update brew upgrade brew info qt export CMAKE_PREFIX_PATH="/usr/local/Cellar/qt/5.10.1/Frameworks/" export LD_LIBRARY_PATH=$(brew --prefix openssl)/lib export CPATH=$(brew --prefix openssl)/include export PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig mkdir build cmake -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_OSX_ARCHITECTURES=x86_64 make
Once building binary is done, Copy files to ~/bin/ so it can be used used within path.
openssl req -x509 -nodes -days 3650 -subj /CN=Synergy -newkey rsa:4096 -keyout ~/.synergy/SSL/Synergy.pem -out ~/.synergy/SSL/Synergy.pem openssl x509 -fingerprint -sha1 -noout -in ~/.synergy/SSL/Synergy.pem > ~/.synergy/SSL/Fingerprints/Local.txt sed -e "s/.*=//" -i ~/.synergy/SSL/Fingerprints/Local.txt cat ~/.synergy/SSL/Fingerprints/Local.txt # This is where you get server key hash
Copy server key hash to following file.
~/Library/Synergy/SSL/Fingerprints/TrustedServers.txt
In my case server is on linux and client is on mac.
# sample synergy configuration file # # comments begin with the # character and continue to the end of # line. comments may appear anywhere the syntax permits. # +-------+ +--------+ +---------+ # |Laptop | |Desktop1| |iMac | # | | | | | | # +-------+ +--------+ +---------+ section: screens # three hosts named: Laptop, Desktop1, and iMac # These are the nice names of the hosts to make it easy to write the config file # The aliases section below contain the "actual" names of the hosts (their hostnames) desk: mac: end section: links # iMac is to the right of Desktop1 # Laptop is to the left of Desktop1 desk: right = mac # Desktop1 is to the right of Laptop mac: left = desk end section: aliases # The "real" name of iMac is John-Smiths-iMac-3.local. If we wanted we could remove this alias and instead use John-Smiths-iMac-3.local everywhere iMac is above. Hopefully it should be easy to see why using an alias is nicer desk: desk mac: mac end
Now server can be using following command.
/usr/bin/synergy-core --server --name desk -c /tmp/Synergy.TJ6658 --address :24800 -c ~/.synergy.conf --enable-drag-drop --enable-crypto --daemon
One can also create the alias in bash profile
~/bin/synergy-core --client --enable-crypto -n mac desk
Opensource version of synergy does not support encryption any more.
In order to secure data transmitted over network i use ssh tunnel, they suggest the same on their website.
Best bet is to use autossh, so if you are roaming between location it will auto connect when you are on same network.
Installation
brew install autossh
Setup Tunnel
autossh -f -v -M 24800 -N -R 24800:localhost:22 user@hostname
Client
Set ServerIP = 'localhost'
That should do it.