Microsoft Remote Desktop Mac Keyboard Mapping

Posted on by

. Starting with Windows 10 Fall Creators Update (1709), look for Remote Desktop under System in the Settings app instead of using the Remote Desktop Assistant. Microsoft Remote Desktop assistant allows you to configure your PC for remote access. In order to get started with Microsoft Remote Desktop, visit the Mac App Store. Click the blue “App Store” icon in your dock. Once the app opens, you will see a search bar at the top right corner of the screen. Search with the keywords “Microsoft Remote Desktop” or “remote desktop Mac” to search and download the app for free. I had the same problem using microsoft remote desktop on a mac with OSX Yosemite. My symbol keys did not work correctly, for example the became Mac that was running the RD client, and under keyboard I noticed that my input source was set to Canadian English.

  1. Microsoft Remote Desktop Mac Keyboard Mapping Software
  2. Microsoft Remote Desktop Mac Keyboard Mapping Keyboard

For over a year now, Microsoft provides a free application called Microsoft Remote Desktop to access a computer (usually running Windows) through RDP from a Mac or iOS or Android device. This version should replace another free application provided by Microsoft: Remote Desktop Connection Client for Mac. If I remember well, the latter had taken his time to fully manage Mac keyboards in a foreign language. It looks the same for this new App: this problem does not seem a priority. Indeed, for now this app assumes you are using a PC keyboard on your Mac.

As Microsoft Remote Deskto is a promising product (in particular, it supports RemoteApp from a Mac, xfreerdp being a little disappointing on this point), I thought it deserved a little search. I finally found two different methods to overcome the problem, one looking more usable than the other.

About keyboard management by operating systems

Remote

Schematically, we can say that a keyboard is managed by the operating system (OS) at 2 levels. A level we could call “hard” and another “soft”. At the “hard” one, electrical signal corresponding to the movements of the keys on the keyboard are sent to the OS, it calls the keyboard driver that interprets these signals and translated them into push key or release key events. Those will be used downstream by the OS. For example, if you push the first key next to the tabulation one, the “hard” part will say the OS: the key “0x0” was pressed. Here come the “soft” level that defines what should be done with this information: the concept of keyboard layout come into action. One can decide, if the keyboard is QWERTY that key “0x0” displays an “A” and if the keyboard is QWERTY, it displays a “Q”.

On the Mac, there is an open-source tool for working at the “hard” level: Karabiner and another to work at the “soft” one: Ukelele. The second is slightly simpler approach, so I started there, especially because I had already used it for VNC connections to Windows computers from a Mac. Unfortunately, soon I came to the conclusion that Microsoft Remote Desktop is working at the “hard” level and therefore it was useless to try to redefine a new layout on the client-side.

With this conclusion, there are only two ways:

  • Working at the “hard” level with Karabiner on the client
  • Working at the “soft” level on the RDP server

An easy workaround if you are connecting to Windows Server 2012 or Windows 8

On Windows 2012, it appears that the management of keyboard layouts has been greatly improved. Also, if you define a keyboard layout for your Mac client, you can:

  • Propose this layout from the login screen that allows your users to type passwords despite key mismatches between Mac and PC keyboard (the user must be active and trained to do this)
  • Request that all previously open applications change to the new keyboard layout if ever you were using an other one before

Now, I do not have computers running Windows Server 2012, so I can’t confirm that. That’s my readings, but if it’s indeed the case, you just have to define (or find on the Internet) a layout for your Mac keyboard and just ask to change to this keyboard layout when you connect from your Mac. If you can’t find one of those layouts, you can define one with the intuitive tool to create a layout (at the “soft” level) under Windows: Microsoft Keyboard Layout Creator (MSKLC).

The solution for connections to Windows 2008 R2 or Windows 2007: Karabiner on the client

Karabiner is an open-source solution used to be called KeyRemap4MacBook and which gradually replaced DoubleCommand. This application is no longer maintained. Historically, it was use to switch the Cmd and Ctrl keys on your Mac keyboard (often useful while going to Mac from the PC world). Karabiner seems a very good and very configurable tool, but not particularly user-friendly. It is easy to use, but the creation of a specific mapping remains difficult. Moreover, in our case it’s enough to drive you up the wall.

The remapping is done in 2 steps:

  • First, I identify the key that is typed on the keyboard (quite easy with the tool provided by Karabiner: EventViewer)
  • Then, I define the key that should be pressed instead. There, it gets complicated: we must assume that if you were using a PC keyboard on your Mac, it would work. So you need a picture of a French PC keyboard and that of a US keyboard.
    • Example for the “=” key on Mac French keyboard that corresponds to the “! ” on PC. I want an “=”: Imagine that I have a PC keyboard, to have a “=”, one must press the key to the left of the backspace key. On a standard Mac keyboard (i.e. American) this key is the same and is called EQUAL key.
    • Example for the “§” key on the French Mac keyboard that corresponds to the “-” key on PC. I want a “§”: Imagine that I have a PC keyboard, to have a “§”, one must press the key to the left of the right shift key. On a standard Mac keyboard (i.e. American) this key is called SLASH key.

Microsoft Remote Desktop Mac Keyboard Mapping Software

Finally, we can tell karabiner to apply this remapping for a particular application: Microsoft Remote Desktop. Download hydro thunder for android.

Microsoft Remote Desktop Mac Keyboard Mapping Keyboard

This leads to this private.xml file:

Another solution to connect to Windows 2008 R2 or Windows 2007 but on the server-side

In fact, we will fill the gaps in these versions of Windows versus Windows 8 or Server 2012, i.e.:

  • allow the choice of a compatible keyboard layout from the Windows login screen
  • automatically update the keyboard layout on connection using the task scheduler, Cassia and kbswitch2

Make available new keyboard layouts on the login screen of Windows 7 or Windows 2008 R2

On Windows, the login screen is started by a service that runs with Local System ID (UID S-1-5-18). If you want other languages ​​or keyboard layouts available at login, simply assign them to Local System. Unfortunately, I don’t know any graphical way to achieve this. The only one I know is to go through the registry by copying all or part of the key “Keyboard Layout” of an account that has been configured with languages ​​and keyboard layouts you whish. Little howto:

  1. Connect with your credentials and set the languages ​​and keyboard layouts as you would like them to be available on the login screen.
  2. Open the registry and export the key “Keyboard Layout” of HKEY_CURRENT_USER.
  3. Replace in the file the string “HKEY_CURRENT_USER” by “HKEY_USERSS-1-5-18”.
  4. Double-click on the file with the appropriate privileges to add the new key to Local System.

Run a script at session startup or when reconnecting to an already open session

Run a script on login is really easy, but executing one on reconnection to an already open session is far less documented. A way that works is to go through the task scheduler which allows the execution of a script when reconnecting. As it also allows a script execution on a new session, it’s really the right tool to use.

Create a script that identifies the RDP client application and selects accordingly the right keyboard layout

Our script is based on two tools:

  • Cassia, a library that aggregates various information about the RDP connection. It comes with a SessionInfo.exe that do the job if you use the latest version of the library which binaries are not distributed at present. So just recompile from source with .Net 3.5.
  • kbswitch2 a small open source application that switches all previously open applications to a given keyboard layout and launch every new application to that new chosen layout. In other words, it does what Windows 8 or Windows Server 2012 do that lacks on Windows 7 or Windows 2008 R2.

The script is easy:

Of course the layout “French – Custom” is this French Mac keyboard for Windows.

The following page(s) contain instructions on using Remote Desktop to connect to Faculty & Staff Windows computers on the UMKC campus (from off-campus). Your campus computer must be powered on to receive connections.


Don't know your computer name or don't know if your account has the correct permissions? Find out here. If you need assistance, please contact the IS Technology Support Center or your IT Liaison.

Please note: Before you attempt to connect to UMKC resources remotely, please make sure your operating system (Apple OS X) has all applicable security updates installed.
Microsoft remote desktop mac keyboard mapping keyboard
To connect to your campus Windows PC from a Mac you will need to use the Microsoft Remote Desktop application for Mac version 10.3.8 (or higher). If you are using a university-owned Mac, you may already have this app installed. Please contact the Technology Support Center or your IT Liaison if you have questions about using this software on a university-owned Mac.
SupportedDefault IconClient Name
Microsoft RDP v10
Link to Download
Microsoft RDP v8
Apple RDC

Mac OS X Remote Desktop Connection Instructions

  1. Open the Microsoft Remote Desktop application
  2. Click the '+' icon
  3. Select PC
  4. For PC Name, enter the name of the remote computer to connect to. Or check How to find my computer name
  5. For User Account, click the dropdown to change the setting
  6. Click Add User Account
  7. For User Name, type UMKCusername@umsystem.edu in DomainUsername
  8. For Password, type your UMKC Username Password. Note: you will need to update your Remote Desktop settings every time you change your UMKC Username password.
  9. Click Save
  10. For Friendly Name, enter the PC name
  11. Click on no gateway to change the setting
  12. Select Add Gateway from the dropdown
  13. For Server Name, enter tsg.umkc.edu
  14. For User Account, click Use PC User account
  15. Select your UMKC username from the list
  16. Click Add
  17. Click Add again
  18. To initiate the connection, double click on your PC Name tile
  19. Click Show Certificate
  20. Click Always Trust to prevent seeing this warning again for the PC specified
  21. Click Continue
If you have not recently connected to this computer there will be a delay as your profile is created. This is normal.
You are now connected!