Solving issues Scaling Remote Desktop on High DPI screens (Surface Pro)

The high density (DPI or Dots Per Inch) of modern screens such as a Surface Pro can cause numerous issues when trying to use Remote Desktop Connection (RDC) to remotely connect to another machine. Add an external monitor to the mix and you’ll be pulling your hair out before long at all.

These are the typical issues you can expect to run into:

  • Can’t get the remote desktop to fill up the entire screen
  • Remote desktop is tiny and you can’t make it any bigger
  • Text and images in remote desktop are really small
  • Mouse cursor in remote desktop is very small or very large
  • Blurry text in remote desktop
  • Blurry images in remote desktop
  • Can’t move remote desktop between screens without issues (e.g. between Surface screen and external monitor)

windows-dpi-scaling-remote-desktop-cameron-dwyer-01-small-remote-desktop

Screenshot (click to enlarge): Remote Desktop Connection on Surface Pro 4, trying to maximize the remote desktop just pushes it to the top right corner of the Surface screen, the icons and text are so small you can hardly read them.

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-2-small-remote-desktop-full-screen

Screenshot (click to enlarge): Remote Desktop Connection on Surface Pro 4, if you try to put the remote desktop into full screen mode, you end up with the same tiny text and images just centred on the Surface screen with a black background around it.

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-03-blurry-text-large-fonts-small-cursor

Screenshot (click to enlarge): Remote Desktop Connection on Surface Pro 4 opened on an external monitor. Trying to show the Remote Desktop on an external monitor is often affected by; Blurry text/images/fonts (such as the Word ribbon), some really oversized text (such as the window title), tiny mouse cursor (or reverse, sometimes I get a massive cursor)

 

Almost all the symptoms above are due to differences in DPI and resolutions between:

  • The host machine
  • The remote machine session
  • The host screen and the external screen

I have transitioned across to using a Surface Pro 4 as my main work machine, I don’t do much development work directly on the Surface, rather I have a few virtual machines running on servers in the office and in Azure. As soon as I tried to RDC to these virtual machines I immediately started running into these problems.

The closest thing I have found to a silver bullet that addresses most of these issues in one hit is to stop using the Remote Desktop Connection client that comes built into Windows 10. Instead I now use a separate free product that Microsoft has available called Remote Desktop Connection Manager.

Remote Desktop Connection Manager has the added benefits of:

  • A navigation list of machines you regularly connect to make it super fast to open and switch between connections
  • Persistence of connection credentials
  • Lots more configuration options (compared to the standard RDC)

windows-dpi-scaling-remote-desktop-cameron-dwyer-04-desktop-connection-manager

Screenshot (click to enlarge): Remote Desktop Connection Manager layout

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-05-remote-desktop-scaled-correctly

Screenshot (click to enlarge): Connecting using Remote Desktop Connection Manager I now get the remote desktop completely filling up my Surface screen, and at a resolution and DPI that is useable. Text, images and cursor all appear crisp and as expected! Extending out to an external monitor is much more successful than with the standard RDC. Again in full screen mode, the remote desktop takes up the entire screen and scaling happens without leaving you with blurry text, images and cursor.

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-06-session-full-screen

Screenshot (click to enlarge): Remote Desktop Connection Manager full screen option is a bit hidden away under the Session menu

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-07-display-options

Screenshot (click to enlarge): Remote Desktop Connection Manager also provides a much richer set of configuration options regarding the display if it doesn’t just work for you immediately as well.

 

One important thing to note is that some scaling of the remote desktop occurs when the remote session is established. This only happens when you disconnect and reconnect. So if you have a session open on one of your screens (e.g. Surface screen) and then move that across to an external monitor it may not fill up the whole external screen when you try to go full screen. If you disconnect and reconnect while on the external monitor you will now be able to go full screen on the external monitor. Remote Desktop Connection Manager has a quick way of doing this (just right-click and select Reconnect server).

 

windows-dpi-scaling-remote-desktop-cameron-dwyer-08-reconnect-session

Screenshot: Reconnect server option

 

The handling of DPI and associated scaling behaviour is different based on the version of the operating system. I have been using Remote Desktop Connection Manager from my Windows 10 Surface Pro 4 connecting to a mix of Windows Server 2012 and Windows 10 virtual machines. You may not have as much success if you add other operating system versions into the mix.

While it’s not perfect (I still find problems now and then and taking screenshot of remote connections usually come out smaller or larger than you would expect), its a lot better than just using the standard remote desktop connection client built into Windows.

 

Further reading:

https://blogs.msdn.microsoft.com/rds/2013/12/16/resolution-and-scaling-level-updates-in-rdp-8-1/

https://blogs.msdn.microsoft.com/rds/2015/06/29/zoom-windows-10-remote-desktop-connections-to-older-versions-of-windows-to-improve-your-experience-on-a-hi-dpi-client-display/

12 thoughts on “Solving issues Scaling Remote Desktop on High DPI screens (Surface Pro)

Add yours

  1. I am connecting using HOBlink KWT so the above solution does not work. However, realize the font and icon scaling in Surface pro is 200% so I did the same for the remote PC and able to work on using surface pro

    Liked by 1 person

  2. well, yes, this solution works, but still, the screen is “blurry”. I am not able to chage font/icon scaling on RDP, how did you do that? If you do it per default on the machine itself, the icons would be too big on normal resolution, wouldn’t it?

    Like

  3. thanks for letting us know. What I found was Remote Desktop Manager (free), its not the tool from microsoft. This tool does RDP alright and is not blurry. still some bugs, OS and App related, PDF doesn’t scale, Windows Search is way too big, Chrome Save As is too small… so long way to go it seems, as everything that is old and not updated, won’t probably ever get a fix, especially, if you can’t enable high res comp. mode. I was kinda disappointed, as I didn’t expect so many troubles. I wonder that websites render nicely though, as images are usually not in high res.

    Liked by 1 person

  4. I also discovered Remote Desktop Connection Manager, and I’ve been using version 2.7 to connect to my office PC using my Surface Book. It has been working great, but my Surface recently updated to Windows 10 Creator, and I can still connect fine but the mouse pointer is now very tiny and difficult to see. Everything else looks fine and is at the normal size. Just the mouse pointer has become very small. Any ideas?

    Liked by 1 person

  5. Hi Cameron,
    I followed your steps. Very clear, thank you! RDCman rendered a beautiful screen. But the cursor or pointer is insanely small. I found a few forums to address even one marked as “solved” but none resolve the issue. Please help me obtain a normal size cursor to increase my productivity.

    Like

  6. Hey, I also discovered another very good remote desktop and access tool called as R-HUB remote supports ervers. It allows you to remotely access multiple computers at one time.

    Like

  7. Unfortunately, remote desktop manager screws up the mouse pointer size making them comically large, and there is no way to downsize the pointer sizes without having physical access to the machine to change the pointer sizes while logged in locally.

    Like

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Create a website or blog at WordPress.com

Up ↑