Eclipse on a high DPI display (in Windows)

by Peter Jaric

My work laptop is a Dell XPS 15 running Windows 10 with a high resolution display (3840×2160). Since everything becomes so small when using standard 100% zoom I have enabled a custom scaling factor (it says 350% in the settings, but I believe I actually set it to 200%). This works fine for most apps, but not Eclipse (Luna), where all icons become very very tiny.

This is known and there is a bug report for it. According to a comment at the end of the bug report this is to be resolved in a later version of Eclipse soon, but until then, or if you’re stuck in an older version, here is a workaround. I am not exactly sure where I found it, maybe i the StackOverflow-question I referenced, but I’ve also added instructions to it for those occasions when it stops working. This helped me today!

Create a file called eclipse.exe.manifest in the same folder as the eclipse.exe binary, containing this:

 

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!-- If this stops working, you must create the PreferExternalManifest registry entry. To do this, follow these steps:

    Click Start, click Run, type regedit, and then click OK.
    Locate and then click the following registry subkey:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide
    On the Edit menu, point to New, and then click DWORD Value.
    Type PreferExternalManifest, and then press ENTER.
    Right-click PreferExternalManifest, and then click Modify.
    In the Edit DWORD Value dialog box, click Decimal under Base.
    In the Value data box, type 1, and then click OK.
    On the File menu, click Exit to close Registry Editor.

        http://www.danantonielli.com/adobe-app-scaling-on-high-dpi-displays-fix/
        https://support.microsoft.com/en-us/kb/912949
-->


<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">

    <description>eclipse</description>

    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"
                                                                 level="asInvoker"
                                                                 ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </requestedPrivileges>
        </security>
    </trustInfo>

    <asmv3:application>
        <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
            <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
        </asmv3:windowsSettings>
    </asmv3:application>
</assembly>