Mac OS X + VNC + German Keyboard

So, i’ve spent an hour today figuring out what the hell is up with Mac OS X remote desktop functionality. It claims to be a integrated VNC server, funny thing is it doesn’t totally adhere to the VNC protocol. I ran into a massive clusterfuck with my german keyboard layout on my client machine (Windows 7), when connecting to my Mac via VNC. Here’s how you get things working:

  • Start up the remote desktop functionality on your Mac (System Preferences > Sharing > Screen sharing
  • Add the “US International – PC” input source if you haven’t done so yet (System Preferences > Keyboard > Input Sources) and make it the active one.
  • Fire up your VNC client on your Linux or Windows machine, enjoy having such wonderful characters like (, ), [, ], and even the hard to get a hold off @!

From some research on the net, it seems that the OS only allows to inject physical keycodes on Mac OS X, leading to this bullshit.

I spoke to soon. Mac OS X is like “you want to have semicolons? Hell no!”. What a silly thing this Mac OS X is…

Fuck it i’m gonna use an english keyboard layout

6 thoughts on “Mac OS X + VNC + German Keyboard

  1. Totally agree with you, MAC OS X VNC support is lacking in many ways! A couple of months ago, I had to code some stuff with XCode and I didn’t like the idea of having two keyboards and mice on my desk (Mac & PC). I tried to solve this with VNC, but had the same problems you are describing. In the end I used Synergy. I don’t know if this is of any help with your setup. If just want to control a Mac on your desk and use the windows keyboard it may be useful. I could provide you with a synergy configuration file which maps all relevant keys correctly.


  2. i actually considered using Synergy before just going with an english keyboard layout. I’d be greatful if you could provide me with the config file.

  3. Hi Mario,

    I have uploaded the config file to droplr here is the link:
    To be honest, there isn’t any rocket science in this config file. Anyone with a little time on their hands can figure this out.

    The PC is my host, the Mac is the client. I have switched the Ctrl-Key with the Mac-Key. So you can press Ctrl-C/Ctrl-V on the keyboard to use the clipboard on the Mac side.
    The rest is just mapping all the missing keys (brackets and stuff) to their Mac counterpart.

    keystroke(Control+Alt+q) = keyDown(Super+l,Mac)
    keystroke(Control+Alt+7) = keyDown(Super+ParenthesisL)
    keystroke(Control+Alt+8) = keyDown(Super+5)
    keystroke(Control+Alt+9) = keyDown(Super+6)
    keystroke(Control+Alt+0) = keyDown(Super+ParenthesisR)
    keystroke(Home) = keyDown(Control+Left)
    keystroke(Shift+Home) = keyDown(Shift+Control+Left)
    keystroke(End) = keyDown(Control+Right)
    keystroke(Shift+End) = keyDown(Shift+Control+Right)

    I think you get the idea. Please not that due to some strange bug in synergy, some of the remapped keys are not usable anymore on the PC side, while the systems are connected. But this is not that bad, you may pause the server on the PC side for a second, if you need to type something like brackets. In order to have the clipboards synchronized, you need to set correct permissions to the client script on the Mac side, but I can’t really remember right now.
    I hope this is of any use for you. Drop me a line if you get stuck.


  4. This is why Apple sucks so much – This is a basic functionionality issue.

    There should be really another name for “Developers” who are only using apple products and only creating Apple apps. Something like Everythingelsethanadeveloper or Oneeyeddeveloper. Sorry there is no way a real developer would forget keyboard functionality for a feature like a remote connection.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>