11

I have a mac as a secondary machine at work. Currently I use synergy on my main machine to share its keyboard and mouse with the mac.

I created a launch agent for my user to launch synergy when I log in, and that's working. However, this means I still have to pull out the mac's keyboard and mouse in order to log in.

I tried making a user daemon so that it would launch on boot, but I get the following errors in the console:

LaunchSynergy[52] Tue Jul 14 12:41:44 testmacpro.local synergyc[52] <Warning>: 3891612: (CGSLookupServerRootPort) Untrusted apps are not allowed to connect to or launch Window Server before login. 
LaunchSynergy[52] Tue Jul 14 12:41:44 testmacpro.local synergyc[52] <Error>: kCGErrorRangeCheck : On-demand launch of the Window Server is allowed for root user only. 
LaunchSynergy[52] Tue Jul 14 12:41:44 testmacpro.local synergyc[52] <Error>: kCGErrorRangeCheck : Set a breakpoint at CGErrorBreakpoint() to catch errors as they are returned 
LaunchSynergy[52] _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. 

Is there a way to get this to work? Looks like the Mac's security doesn't want to allow anything to take control of the window while at the login screen. I can understand that, but I'd like a way to override it, as it would make my life a lot easier.

Herms
  • 9,992

8 Answers8

8

Have you tried the explanation here (scroll down to the bottom) about autostart on the Mac?

I’ve got it to work that way, and I can log on using the keyboard of my PC.

Giacomo1968
  • 58,727
fretje
  • 10,732
1

The synergyc and/or synergys files have to be owned by root. "On-demand launch of the Window Server is allowed for root user only", the message says.

chown root:wheel /wher/ever/synergy* and then Synergy will be regarded as root.

Also see http://ajaydesai.blogspot.com/2009/03/setting-up-synergy-client-mac-os-x-1056.html

arnt
  • 111
1

For anyone coming to this question because of OSX Lion/Mountain Lion + launchd/startup items/LoginHook issues, I have a solution that helped me.

SynergyKM on OSX *Lion is unreliable. Furthermore, I was never able to get my synergy client working via any of the ways outlined at http://synergy2.sourceforge.net/autostart.html. What I did was write a shell script and then converted that script into a Mac Application with Platypus.

Here are the exact steps I followed:

MacPorts Synergy

There are known issues with the latest synergy version's compatibility with OSX Lion so we get the compatible version (1.3) from MacPorts.

  1. Open Terminal
  2. If you don't have it already, install MacPorts
  3. Once MacPorts is installed, do a "sudo port install synergy".
  4. At the command line do a "which synergyc" to make sure it points to "/usr/bin/synergyc"
  5. From the command line execute a "synergyc --version" to ensure it's version 1.3

Shell Script

  1. Create a "bin" directory under your user directory
  2. Write your shell script
  3. Replace the synergy server address (my synergy server IP address is 192.168.0.30) with the IP address of your synergy server. (Using the IP address ensures the client can accurately find the server.)
  4. Save and exit
  5. Execute "chmod 755 synergy.sh"

Shell script code:


#!/bin/sh
SYNERGYC=/usr/bin/synergyc

if ! ps axco command | grep -q "^synergyc\$"
then
    $SYNERGYC -n $(hostname -s) -1 -f 192.168.0.30 
else
    echo "synergyc already running."
fi

Platypus

  1. Install Platypus
  2. Open
  3. App Name: "Synergy"
  4. Script Type: "Shell" @ /bin/sh
  5. Script Path: /Users/[your osx username]/bin/synergy.sh
  6. Output: Progress Bar
  7. Keep the other generated properties as-is
  8. Click the "Create" button
  9. Select where to output the Synergy.app

Tying It All Together

Now that you have a fully functional Mac application, do the following steps to finish your automatic synergy client setup.

  1. Open "System Preferences"
  2. Open "Users & Groups"
  3. Go to the user for which you want to add synergyc startup
  4. Click the "Login Items" button
  5. Click the "+" button to add the "Synergy.app" app you created with Platypus
  6. Logout and log back in to ensure synergcy starts up right away.
  7. You are DONE!
TWright
  • 131
1

This is no longer possible with the current version of Synergy (1.7.1) + OSX (10.10 Yosemite) Check this issue:

One workaround is to use auto-login (ew) for the user with the agent/daemon but then you can't lock your system by logging out. Interestingly enough, you can show the login window while still logged in and the keyboard works but not the mouse.

Giacomo1968
  • 58,727
0

I use the SynergyKM extension to the preferences and it works quite well.

0

This works for me: Synergy 1.14.6, Server: Linux Mint 21.1, MacOS Monterrey (12)

The solution is two parts: run as root at boot with a LaunchDaemon, and run at login for a user.

  1. Create a LaunchDaemon to get Synergy to run at boot. The ProgramArguments are
  • The path to the Synergy client app.
  • The IP address of the Synergy server.
% cat /Library/LaunchDaemons/com.symless.synergyc.plist

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.symless.SynergyDaemon</string> <key>ProgramArguments</key> <array> <string>/System/Volumes/Data/Applications/Synergy.app/Contents/MacOS/synergyc</string> <string>192.168.1.120</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>

Synergy doesn't stay running after logging in, so:

  1. Add a login item to start Synergy at login:
    "System Preferences" > "Users & Groups" > "Login Items" tab
0

Check out the Synergy+ tips and tricks page. We'll soon be bundling a GUI with the application that works on all platforms, meaning that soon you'll be able to do this without any complicated configuration.

Giacomo1968
  • 58,727
Nick Bolton
  • 3,660
0

Is there a unix executable of the synergy daemon itself? If so can you put it in /Library/Startupitems?

I can think of a lot of workarounds, none of which sound particularly appealing to me:

  • Automatically boot into an additional account, which launches the synergy tools, then use fast user switching to get to your account.
  • Enable VPN/screen sharing, use VPN to login, then switch to synergy
  • Put a KVM on the system
  • Sleep the mac (with password on wake) instead of shutting it down at the end of the day.
David Snyder
  • 1,064