Product: Synergy 1 (1.21.3 and above)
Operating system: Windows, macOS, and Linux
Who this is for
When Synergy 1.21 first starts, it copies your settings from the format 1.20 used into a new one. In Synergy 1.21.0, 1.21.1, and 1.21.2 that copy was incomplete: the screen layout, hotkeys, and other server settings were left out, and settings saved under the "All users" profile were not copied at all. Synergy 1.21.3 fixes the migration.
Follow these steps if you upgraded from 1.20 (or earlier) to 1.21.0, 1.21.1, or 1.21.2, and your settings still look wrong or incomplete in 1.21.3. The steps put your 1.20 settings back where 1.20 kept them and remove the 1.21 settings, so that 1.21.3 migrates everything again from the start.
Before you start:
- Any changes you made to your settings since upgrading to 1.21 will be lost, including a screen layout you rebuilt by hand. Your settings will be exactly as they were in 1.20.
- Your serial key is carried over from your 1.20 settings. If you entered a different key after upgrading, open
Synergy.extra.conf(in the same folder as the other files below) in a text editor and copy the value afterserialKey=, so you can enter it again if asked. - Do this on every computer where the settings are wrong. The screen layout lives on the computer acting as the server, so that one matters most.
Windows
- Install Synergy 1.21.3 or later. If Synergy 1.21.0, 1.21.1, or 1.21.2 is installed, uninstall it first from Settings, Apps, Installed apps, and uninstall any older Synergy listed there too.
- Quit Synergy: right-click the Synergy icon in the notification area and choose Quit.
- Open PowerShell (not as administrator) and make a safe copy of the backup that the migration took of your 1.20 settings:
Copy-Item "$env:APPDATA\Synergy\Synergy.conf.legacy.bak" "$env:USERPROFILE\Synergy-1.20-settings.bak"
If PowerShell reports that the file does not exist and you used the "All users" profile in 1.20, skip to step 6. Otherwise, stop here and contact our support team - Remove the 1.21 settings:
Remove-Item "$env:APPDATA\Synergy\Synergy.conf", "$env:APPDATA\Synergy\Synergy.extra.conf"
- Put your 1.20 settings back in the registry, where 1.20 kept them. Paste all of the following into the same PowerShell window and press Enter:
$backup = "$env:USERPROFILE\Synergy-1.20-settings.bak" $root = 'HKCU:\Software\Synergy\Synergy' $section = '' foreach ($line in Get-Content -LiteralPath $backup -Encoding UTF8) { if ($line -match '^\[(.+)\]$') { $section = if ($Matches[1] -eq 'General') { '' } else { $Matches[1] + '\' } continue } if ($line -notmatch '^([^=]+)=(.*)$') { continue } $key = [uri]::UnescapeDataString($section + $Matches[1]) $value = $Matches[2] if ($value -match '^"(.*)"$') { $value = $Matches[1] } $value = [regex]::Replace($value, '\\(.)', { param($m) switch -CaseSensitive ($m.Groups[1].Value) { 'n' { "`n" } 'r' { "`r" } 't' { "`t" } default { $m.Groups[1].Value } } }) $slash = $key.LastIndexOf('\') $path = if ($slash -ge 0) { "$root\" + $key.Substring(0, $slash) } else { $root } $name = $key.Substring($slash + 1) if (-not (Test-Path -LiteralPath $path)) { New-Item -Path $path -Force | Out-Null } New-ItemProperty -LiteralPath $path -Name $name -Value $value -PropertyType String -Force | Out-Null } Write-Host 'Restored the Synergy 1.20 settings to the registry.' - If you used the "All users" profile in 1.20, open PowerShell as administrator and remove the 1.21 settings for that profile:
Remove-Item "C:\ProgramData\Synergy\Synergy.conf" -ErrorAction SilentlyContinue
Then check that your 1.20 settings for that profile are still in place:C:\ProgramData\Synergy\Synergy.inishould exist and not be empty. If it is missing or empty, andC:\ProgramData\Synergy\Synergy.conf.legacy.bakexists, copy that file toSynergy.iniin the same folder. - Start Synergy. Continue with: Checking the result
macOS
- Install Synergy 1.21.3 or later.
- Quit Synergy: click the Synergy icon in the menu bar and choose Quit.
- Open Terminal and make a safe copy of the backup that the migration took of your 1.20 settings:
cp ~/Library/Synergy/Synergy.conf.legacy.bak ~/Synergy-1.20-settings.bak
If Terminal reports that the file does not exist and you used the "All users" profile in 1.20, skip to step 6. Otherwise, stop here and contact our support team - Remove the 1.21 settings, and anything left in the preferences 1.20 used:
rm ~/Library/Synergy/Synergy.conf ~/Library/Synergy/Synergy.extra.conf defaults delete com.symless.Synergy
It is fine ifdefaultsreports that the domain does not exist. - Put your 1.20 settings back in the preferences where 1.20 kept them. Paste all of the following into the same Terminal window and press Return:
osascript -l JavaScript <<'EOF' ObjC.import('Foundation'); const backup = $.NSHomeDirectory().js + '/Synergy-1.20-settings.bak'; const text = $.NSString.stringWithContentsOfFileEncodingError(backup, $.NSUTF8StringEncoding, null).js; const prefs = $.NSUserDefaults.alloc.initWithSuiteName('com.symless.Synergy'); const escapes = { n: '\n', r: '\r', t: '\t' }; let section = ''; for (const line of text.split(/\r?\n/)) { const header = line.match(/^\[(.+)\]$/); if (header) { section = header[1] === 'General' ? '' : header[1] + '\\'; continue; } const entry = line.match(/^([^=]+)=(.*)$/); if (!entry) continue; const key = decodeURIComponent(section + entry[1]).split('\\').join('.'); const quoted = entry[2].match(/^"(.*)"$/); const raw = quoted ? quoted[1] : entry[2]; const value = raw.replace(/\\(.)/g, (m, c) => escapes[c] || c); prefs.setObjectForKey($(value), key); } prefs.synchronize; 'Restored the Synergy 1.20 settings to com.symless.Synergy.'; EOF - If you used the "All users" profile in 1.20, remove the 1.21 settings for that profile:
sudo rm -f /Library/Synergy/Synergy.conf
Then check that your 1.20 settings for that profile are still in place:/Library/Preferences/Synergy/Synergy.inishould exist and not be empty. If it is missing or empty, and/Library/Synergy/Synergy.conf.legacy.bakexists, copy it back withsudo cp /Library/Synergy/Synergy.conf.legacy.bak /Library/Preferences/Synergy/Synergy.ini - Start Synergy. Continue with: Checking the result
Linux
On Linux, 1.20 and 1.21 keep their settings in the same file, so putting the 1.20 settings back only takes a copy.
- Install Synergy 1.21.3 or later.
- Quit Synergy.
- Make a safe copy of the backup that the migration took of your 1.20 settings:
cp ~/.config/Synergy/Synergy.conf.legacy.bak ~/Synergy-1.20-settings.bak
If the file does not exist and you used the "All users" profile in 1.20, skip to step 5. Otherwise, stop here and contact our support team - Replace the 1.21 settings with your 1.20 settings:
rm ~/.config/Synergy/Synergy.extra.conf cp ~/Synergy-1.20-settings.bak ~/.config/Synergy/Synergy.conf
- If you used the "All users" profile in 1.20, remove the 1.21 settings for that profile:
sudo rm -f /etc/Synergy/Synergy.conf
Then check that your 1.20 settings for that profile are still in place:/etc/xdg/Synergy/Synergy.inishould exist and not be empty. If it is missing or empty, and/etc/Synergy/Synergy.conf.legacy.bakexists, copy it back withsudo cp /etc/Synergy/Synergy.conf.legacy.bak /etc/xdg/Synergy/Synergy.ini - Start Synergy. Continue with: Checking the result
Checking the result
When Synergy starts, it migrates your 1.20 settings again and shows a "Settings migrated" notice in the status bar at the bottom of the window. Open Configure server and check that your screen layout, hotkeys, and server options are as they were in 1.20.
- If Synergy asks for your serial key, enter the one you noted before you started.
- If no "Settings migrated" notice appears and your settings are at their defaults, Synergy did not find your 1.20 settings. Check that the restore step printed its "Restored" message, then contact our support team, and attach
Synergy-1.20-settings.bakfrom your home folder.
Keep Synergy-1.20-settings.bak until you have confirmed everything is back. You can delete it after that.