Synergy: more than keyboard sharing

Ethan's picture
Tags: 

I have recently started using synergy to control my Mac and PC using a single keyboard and mouse. Synergy is a pretty impressive piece of Open Source software: it’s impressive enough that it can use a standard LAN network to share input devices between computers. What I didn’t realize until setting it up was how much more it can do.

While Synergy is fairly easy to set up, being a geek-centric piece of open-source software it requires some editing of configuration files and the like (though on Windows machines a straightforward GUI is provided to facilitate this). Configuration files specify not just what machines are going to be controlled and how their monitors are laid out in physical space, but also allow for a plethora of configuration options. While many of these options are basically just advanced setup parameters, there’s one class of options that makes Synergy incredibly powerful:

Through Synergy’s configuration file one can map keystrokes entered while controlling any machine to (not necessarily identical) keystrokes on a specific machine!

To illustrate, here are some I’ve set up to facilitate debugging of pages in IE:

  • option+control+shift+r on my Mac → control+r on my PC: automatically reloading the browser if it is the frontmost window
  • option+control+shift+enter on my Mac → Enter on my PC: so when a dialog comes up I’m not expecting but don’t need to deal with I can press enter without hassle.
  • option+control+shift+tab on my Mac → alt+tab on my PC: switch focused app in my pc from my mac

Add to this shared clipboard (for text, at least) and traditional KVM keystrokes for switching between monitors and you have a first rate app!

My synergy.conf file:

  section: screens
    formation:
    eethannmb:  
  end

  section: links
    eethannmb:
        right = formation
    formation:
        left = eethannmb        
  end

  section: aliases
  end

  section: options
    keystroke(super+control+shift+r) = keystroke(control+r,formation)
    keystroke(super+control+shift+return) = keystroke(return,formation)
    keystroke(super+control+shift+tab) = keystroke(alt+tab,formation)
     keystroke(super+control+shift+left) = switchToScreen(eethannmb)
     keystroke(super+control+shift+right) = switchToScreen(formation)
  end

Reply

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockcode>
  • Lines and paragraphs break automatically.
  • You may post block code using <blockcode [type="language"]>...</blockcode> tags. You may also post inline code using <code [type="language"]>...</code> tags.

More information about formatting options

Captcha
Are you a robot? We usually like robots, but not in our comments.
Copy the characters (respecting upper/lower case) from the image.