Synergy is a software application for sharing a keyboard and mouse between multiple computers. It is used in situations where several PCs are used together, with a monitor connected to each, but are to be controlled by one user. The user needs only one keyboard and mouse on the desk — similar to a KVM switch without the video.

Original author(s)Chris Schoeneman
Developer(s)Symless
Initial release13 May 2001; 23 years ago (2001-05-13)[1]
Stable release
1.15.1[2] Edit this on Wikidata / 30 August 2024; 2 months ago (30 August 2024)
Repository
Written inC++
Operating systemCross-platform
LicenseProprietary and GPLv2[3]
Websitesymless.com/synergy

Partly open source and partly closed source, the open source components are released under the terms of the GNU General Public License, which is free software. The first version of Synergy was created on May 13, 2001, by Chris Schoeneman and worked with the X Window System only. Synergy now supports Windows, macOS, Linux, and other Unix-like operating systems.

Design

edit

Once the program is installed, users can move the mouse "off" the side of their desktop on one computer, and the mouse pointer will appear on the desktop of another computer. Key presses will be delivered to whichever computer the mouse-pointer is located in. This makes it possible to control several machines as easily as if they were a single multi-monitor computer. The clipboard and even screensavers can be synchronized.

The program is implemented as a server which defines which screen-edges lead to which machines, and one or more clients, which connect to the server to offer the use of their desktops. The keyboard and mouse are connected to the server machine.

As of version 2.0 (2017) keystrokes, mouse movements and clipboard contents are sent via an encrypted SSL network connection. This previously required the purchase of the Pro edition in version 1. In July 2013 the Defuse Security Group reported[4] the proprietary encryption used in Synergy 1.6 to be insecure and released an exploit which could be used to passively decrypt the commands sent to the Synergy 1.6 clients.[5] This was solved by using SSL in 1.7.

TCP/IP communications (default port 24800[6]) are used to send mouse, keyboard and clipboard events between computers in Synergy 1.

History

edit

The first incarnation of Synergy was CosmoSynergy, created by Richard Lee and Adam Feder then at Cosmo Software, Inc., a subsidiary of SGI (née Silicon Graphics, Inc.), at the end of 1996. They wrote it, and Chris Schoeneman contributed, to solve a problem: most of the engineers in Cosmo Software had both an Irix and a Windows box on their desks and switchboxes were expensive and annoying. CosmoSynergy was a great success but Cosmo Software declined to productize it and the company was later closed. Synergy is a from-scratch reimplementation of CosmoSynergy. It provides most of the features of the original and adds a few improvements.

Synergy+ was created in 2009 as a maintenance fork for the purpose of fixing bugs inherited from the original version. The original version of Synergy had not been updated for a notable length of time (as of 6 June 2010, the latest release was 2 April 2006).[7] There was never official confirmation that the original Synergy project had been abandoned; however, there was public discussion providing speculation.[8] In said discussion, Chris Schoeneman (the creator of Synergy)[9] stated that instead of supporting a 1.3.x team, he intends on releasing version 2.0 of Synergy, and publicly announced on 27 Aug 2008 that he has been making progress on this version.[10]

See also

edit

References

edit
  1. ^ "First committed version of main.cpp". Synergy source code repository. Archived from the original on 2012-07-18. Retrieved 2009-06-11.
  2. ^ "Release 1.15.1". 30 August 2024. Retrieved 26 September 2024.
  3. ^ "synergy/LICENSE". GitHub. Retrieved 2017-06-10.
  4. ^ "Synergy: Integer Overflow, Key Reuse, IV Reuse". DefuseSec. Retrieved 2016-05-04.
  5. ^ "Cracking Synergy's Bad Cryptography". DefuseSec. Retrieved 2016-05-04.
  6. ^ "Port 24800". WhatPortIs. Retrieved 2017-11-08.
  7. ^ "Original Synergy downloads page". SourceForge. Archived from the original on 2006-04-07. Retrieved 2009-06-11.
  8. ^ "Dead project". synergy: Open Discussion. SourceForge. Archived from the original on 2009-02-18. Retrieved 2009-06-11.
  9. ^ "Synergy authors". Synergy. Archived from the original on 2014-11-08. Retrieved 2009-06-11.
  10. ^ "Synergy 2.x". Chris Schoeneman. Archived from the original on 2008-12-25. Retrieved 2009-06-11.
edit