Single Interface to Multiple Systems
This article is for those people who want to share input/output from the keyboard/mouse/monitor(s) among multiple systems.
There are two new tools I recently uncovered which I find quite useful. The first is full remote desktop sharing software. The second is input sharing, specifically using the keyboard/mouse among multiple computers with separate displays.
I was first exposed to remote GUI interfaces as a unix admin where >99% of the access to the Sun Solaris. Back then it was a bit of a pain to run the xWindows/x11 server, connect to a certain panel/display from an ssh terminal, etc. Later tight/real vnc and anywhere PC got popular. Infact I use tight vnc to xWindow into my xbox (gentoox : ) For windows users I’d recommend using one of those first two. Infact, if you are running a tight VNC server, you can use a web browser as your client. Not as fast, but works.
Now that I’m a mac guy, I found that Leopard has a vnc server built in. It’s called Screen Sharing. It’s really more like system sharing. I use Jolleys Fast VNC as the client on my Tiger box to get to my Leopard box running Screen Sharing. Once I upgrade my laptop to Leopard, I’ll be using the built in sharing program as both client and server between my machines. The screen scaling really makes it easy between different size displays. Here are more tweaks.
Ok, that last setup is most useful when you are actually remote (ie one computer home, the other in the office). This next tool, Synergy, is great when you have both systems together with different monitors and would prefer to just use one keyboard/monitor pair for both systems. It’s a good replacement for KVM’s. I have to give credit to my friend Linton who turned me onto it with his 3 monitor 3 system setup (windows/linux/OSX). Click the links, try em out. If you have a multi system setup, remote and/or local, they are must haves.
![]()
Update: apparently leopard has issues if you set synergy to run in the background on startup, I made it run in the foreground and with my friend Kedars help, send the errors to /dev/null and launch it on a separate thread. This should be put on the server. Here’s what my script looks like:
#!/bin/sh
prog=(/Applications/synergy-1.3.1/synergys -f –config /Applications/synergy-1.3.1/synergy.conf)
### Stop any currently running Synergy client
killall ${prog[0]##*/}
### Start the new client
exec “${prog[@]}” >/dev/null 2>&1 &
I have it startup automatically on my mac in:
/Library/LoginWindow/LoginHook.sh
make sure you give execute privileges (chmod 755),
# Create a login hook to call the script:
# defaults write com.apple.loginwindow LoginHook /Library/LoginWindow/LoginHook.sh
on my laptop/client I added this alias in my profile:
alias runSyn=’/Applications/synergy-1.3.1/synergyc publisher.office.aol.com’







Very helpful.. did all this and it works. Only thing is for me, the server was a linux machine and the client was a Mac OS X laptop. So the key modifiers don’t match there - if you do Command+C for example, it does not copy but writes a weird character on screen. Instead, the Alt acts as Command here. So Alt+C does what Command+C should do.
This is what you do to your synergy.conf to fix this:
section: screens
mac-laptop:
meta = alt
super = alt
alt = meta
linux-box:
end
Basically, you remap the modifier keys. So ’super’ (meaning the Command key) is made to act as ‘alt’. The swap is similar to basic programming swap between a and b as follows:
temp = a
a = b
b = temp
But here it is different. It might appear as if it is not required. So you could just do:
super = alt
But this completely reassigns the alt functionality to super and so there is no alt remaining.. which is not what we want. Hence the stupid swap.
Hope this helps.