This question comes in from a reader who found my post about using the Surface Book as a programmer. I thought it might make a blog-worthy followup. This was Eric's question:

I am having trouble running Eclipse IDE on my Surface Book.

Eclipse works, except that the "console" that my program calls for is teeny tiny. Like an inch and a half squared on my 3000 x 2000 screen. Fonts in the console also are minuscule -- I cannot even read them easily with a magnifying glass . Tried everything (adjusting font sizes in eclipse, running compatibility tests in windows) to no avail.

Any ideas on how I can resolve this? Thanks in advance.

This is one of the biggest problems with the Surface Book. Eclipse--and a lot of other programs--are not high DPI Aware. It sucks, but it is getting better. The solution probably lies here.

That post is for Photoshop and other Adobe tools, but it works for just about everything. First, you do a registry edit to tell Windows to look for an external manifest file.

Then you create the manifest file in the install directory of your file. Name the file the executable with a .manifest' at the end. So, for Eclipse the execution program is ecliipse.exe and the manifest file will be eclipse.exe.manifest.

This is the manifest text:

view plain print about
1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2
3<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
4
5<dependency>
6 <dependentAssembly>
7 <assemblyIdentity
8 type="win32"
9 name="Microsoft.Windows.Common-Controls"
10 version="6.0.0.0" processorArchitecture="*"
11 publicKeyToken="6595b64144ccf1df"
12 language="*">

13 </assemblyIdentity>
14 </dependentAssembly>
15</dependency>
16
17<dependency>
18 <dependentAssembly>
19 <assemblyIdentity
20 type="win32"
21 name="Microsoft.VC90.CRT"
22 version="9.0.21022.8"
23 processorArchitecture="amd64"
24 publicKeyToken="1fc8b3b9a1e18e3b">

25 </assemblyIdentity>
26 </dependentAssembly>
27</dependency>
28
29<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
30 <security>
31 <requestedPrivileges>
32 <requestedExecutionLevel
33 level="asInvoker"
34 uiAccess="false"/>

35 </requestedPrivileges>
36 </security>
37</trustInfo>
38
39<asmv3:application>
40 <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
41 <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
42 </asmv3:windowsSettings>
43</asmv3:application>
44
45</assembly>

Reload eclipse and things should be better. I recently uninstalled Eclipse since I'm not on any client projects using it. I prefer IntelliJ when I can. Major windows updates will probably reset the registry setting. Just this morning, my creators update borked it.

About half of the programs on my machine use this 'manifest' trick to make the programs usable. I even created manifest files for javaw.exe and java.exe from my Java install.

And as a corollary, if you're using a lot of Remote Desktop Connections, use Terminals. It has settings to prevent the remote desktop from skewing way too small due to the same high DPI issues.