I recently became the proud owner of a Lenovo Yoga X1. This replaced my generation Lenovo X1 Carbon, which is only being retired because of some wonky video connections on the mini-DP port. Fine box otherwise even after three years.
One of the new features of the Yoga X1 – and there have been a bunch I didn’t even know about, like the Wacom-based pen! – is the extremely high resolution display at 2560×1440. While I love the concept of having so many lines of resolution, the laptop still have a 14″-or so screen, which means you almost have to start messing around with the font size, aka DPI. Being able to change the DPI value has been in Windows for a while, like I think Windows 95 or maybe even Windows 3.1. For decades I’ve left it alone. You see, for DPI to be useful, applications have to support it. In more modern applications – think .NET 2.0 and newer – this Just Works but for older apps it’s one of those things developers were supposed to do but almost never bothered with. Like bidi text or help systems.
With modern boxes with uber-big resolutions, keeping the DPI at 100% is nearly impossible. I’ve run 1920×1080 on a 15″ display with DPI set to 100% but trying to do 2560×1440 on a 14″ display isn’t going to work. The worst part of this is how the DPI changes have been impacting my Remote Desktop Connections.
I’m currently running between 125% and 150% now. When I first installed Windows, it started at 200% which made the fonts bigger than my last X1. Looked great because of the pixel density but I want more read more than three lines at a time in email. 150%, my views into other machine desktops running at 1080 made me have to take the ThinkPen out to tap the itty, bitty icons. Weak.
Next step was searching the innertubes. Most of the people online recommending using Remote Desktop Connection Manager 2.2. I took exception to this for two reasons: one is that RDCMan bundles all of your connections into one MDI styled application. That’s fine but not really what I want, since I’ve gotten used to using SDI windows everywhere. Second reason is that the app has rev’d to 2.7 and the DPI aware setting is only available through a compatibility setting. Ick.
I eventually found this post from Branko Vucinec which writes up a pretty elegant solution. Since the RDC client is DPI scaling aware, it just needs to be turned on. He does this by dropping a manifest file next to the mstsc.exe in system32 and flipping a value in the Registry. After that, the DPI setting of your local client is passed onto your remote session. Given that many new bits of hardware are racketing up their resolution, this is a very handy bit of tech to be aware of.