I've got two systems I use across Synergy. On the main one I have a normal keyboard that I swap caps lock and ctrl for. So I do:

xmodmap -e 'keycode 66 = Control_L'
xmodmap -e 'clear lock'
xmodmap -e 'add Control = Control_L'

Where keycode 66 is my caps lock key.

The trouble is that I can't get this key to act as a control key on the other machine I connect to with synergy.

The strange thing is that if I plug a keyboard into the machine, and run xev, the control key there is keycode 37. When I then hit my modified control key (keycode 66 on the master) it's registering as keycode 37 on the remote machine. So according to xev, it should be picking it up as a control keypress.

Anyone have any hints on if Synergy is doing something overly helpful for me?

  • 1
    Do you run into the same problem if you use Xkb to swap control/capslock? You should be able to do this through the keyboard control panel application, or with setxkbmap. xmodmap has been known to screw things up for xkb aware applications. Commented Nov 17, 2011 at 1:16
  • Oh awesome, thanks so much. Doing the action via setxkbmap -option ctrl:swapcaps was magical and works.
    – Rick
    Commented Nov 17, 2011 at 23:58

1 Answer 1


So it seems synergy and xmodmap don't play nice. However, I could accomplish the same goal by using

setxkbmap -option ctrl:swapcaps

Which is now making my control key work across both machines.

  • Thanks to James for the comment that provided the solution.
    – Rick
    Commented Nov 18, 2011 at 0:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .