Posted by & filed under Experimental, Linux.

At Digital Pacific, where I work, I do all my work on three computers. It’s a nice life looking at three monitors all the time, however, it is not the coolest thing in the world when you have three keyboards in front of you.

When I moved here, I already knew about Synergy, it’s great software.

My setup is comprised of a Windows XP (32-bit) machine, Kubuntu [7.04] Intrepid (32-bit) machine and a Kubuntu [9.04] Jaunty (64-bit) machine. The machine that runs all my applications that I write is the new Kubuntu 9.04 machine. To allow my keyboard and mouse to be used over all three of these machines, I have the Windows XP machine run the Synergy server, and all the Linux machines run the client. The reason I have Windows XP run the server is because it’s usually the machine that’s off. That might sound strange, but I do alot of work from home, and it seems useless to have a server running that is not needed to be on the machine.

One thing that really used to annoy me with this setup however was the Windows machine would detect all keyboard repeats, but the Linux machines would not detect up, down, page up and page down repeated key presses. You could imagine as a programmer that this could get quite annoying while writing code.

This morning I got frustrated at the Linux machines and I decided it was time to go and compile my own version, with a few patches I found around the net to fix this issue.

Being the package Nazi that I am, I don’t really like to install anything, unless it’s installed with some sort of package management. This is how to rebuild Synergy, and get a perfect .deb that you can install 🙂

# wget 'http://internode.dl.sourceforge.net/sourceforge/synergy2/synergy-1.3.1.tar.gz'
# tar -xvf synergy-1.3.1.tar.gz
# wget http://ftp.de.debian.org/debian/pool/main/s/synergy/synergy_1.3.1-5.diff.gz
# gunzip synergy_1.3.1-5.diff.gz
# wget http://coderazzi.net/linux/synergy.patch/synergy-coderazzi.patch
# patch -P0 <../synergy-coderazzi.patch
# sudo apt-get install patch build-essential
# cd synergy-1.3.1/
# patch -p0 <../synergy-coderazzi.patch
# chmod +x debian/rules debian/control

Edit debian/rules and after the line that says:
CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
Add the following line:
find . -type f -name Makefile | xargs perl -pi -e "s/-Werror//g"

# sudo dpkg-buildpackage
# cd ../
# dpkg -i synergy_1.3.1-5*.deb

After doing this, and restarting the Synery clients, you will have perfect key responses between all the machines.

Thanks to http://coderazzi.net/linux/synergy.patch/index.htm for providing the great patch for this post.

Leave a Reply

Your email address will not be published. Required fields are marked *