Living a High-DPI desktop lifestyle can be painful
I've been using this Lenovo Yoga 2 Pro for the last few weeks, and lemme tell you, it's lovely. It's the perfect size, it weighs nothing, touch screen, fast SSD, it's thinner than the X1 Carbon Touch that is my primary machine, and it just feels right.
It also has about the nicest screen I've ever seen on a Windows Laptop.
Except. This thing runs at 3200x1800. That's FOUR of my 1600x900 ThinkPad X1 Carbon Touch screens.
To be clear, full screen apps (Windows Store apps) almost universally look great. The text is clear, there's nary a pixel in sight. The whole full-screen Windows Store ecosystem seems to work nicely with high-DPI displays. And that makes sense, as it appears they've put a LOT of thought into high-dpi with Windows 8.1. I've changed a few settings on my 1080p Surface 2 in order to take better advantage of High-DPI and run a more apps simultaneously, in fact.
Also, note the checkbox that lets you set different scaling levels for different displays, so you can keep your laptop at high-res and an external monitor at another for example.
It's the Desktop where I get into trouble. First, let's look at the display at "small fonts."
NOTE: This is NOT the Default setting. The default is smart about the size of your screen and DPI and always tries to get the fonts looking the right size. I've changed the default to 100% to illustrate the massive number of pixels here.
3200x1800 is SO high res, that when you're running it at Small Fonts, well, a picture is worth a million pixels, right? Go ahead, click it, I'll wait. And you will also, it's 3 megs.
Many, if not most apps work fine in the High-DPI desktop world. It's a little hard to get the point across in a blog post of screenshots because you, Dear Reader, are going to be reading this on a variety of displays. But I'll try.
Problems happen when applications either totally don't think about High-DPI displays, or more commonly, they kind of think about them.
You can say all this talk of High-DPI is a problem with Windows, but I think it's a problem with the app developers. The documentation is clear on High-DPI and developers need to test, include appropriate resources or don't claim to support high-dpi. I have a number of older Windows apps that look great on this display. They are simply scaled at 2x. Sure, they may be a little blurry (they have been scaled 2x) but they are all 100% useable.
NOTE: There's a very technical session on getting high-dpi to look good in Windows Desktop apps at BUILD. The Video is here.
Here's a few examples that have caused me pain in just the last week, as well as some Good Citizen apps that look great at High-DPI.
Examples of Poor High-DPI behavior
Let's start with Windows Live Writer, one of my favorite apps and the app I'm using to write this post. It almost looks great, presumably because it's a WPF application and WPF is pretty good about DPI things. However, note the pictures. They are exactly half the size of reality. Well, let me be more clear. They are exactly pixel-sized. They are the size they are, rather than scaled to 200%. This has caused me to upload either giant pics or too-small pics because WLW scales text at one size and images at another, within the same document!
Adobe everything. I am shocked at how bad Adobe stuff looks on a high-dpi display. Just flip a coin, chances are it's gonna be a mix of small and large. Here's Adobe Reader.
Here's the Flash installer.
Here's a great example - Dropbox.
Dropbox gets worse the deeper you get into the menus.
SQL Server Management Studio is a bad example.
Here's an easy fix, just add high-res arrow resources, or draw them with a vector.
Examples of Good High-DPI behavior
Visual Studio 2013 looks great. Fonts are well-sized, and while the icons aren't high-res (retina) they still look ok. All the Dialog boxes and menus work as they should.
Word 2013 and all of Office look great at High-DPI. They've got great icons, great fonts and generally are awesome.
Paint.NET 4.0 Alpha also looks great. There's some scaled icons, but the app is smart and there's pixel perfect editing.
GitHub for Windows looks awesome at High-DPI.
Do you have any examples of high-DPI frustration on the Desktop? Upload them to ImgUr.com and link to them in the comments!
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
As is playing any Flash video. Good luck clicking on any of the controls!
I'm using a Dell XPS 15 with the 3200x1800 display. I can't imagine some of this on a 13" screen. I almost bought the Yoga 2, and went with this beast of a machine instead.
Google Chrome also has a real problem with tab rendering at high DPI. It keeps blocking them to half of the width of the window. Really surprised to see Firefox get this one right.
Internet Explorer 11 fails in the opposite way - it renders TOO big on high DPI.
And like @Brian Peek pointed out, it makes the experience on HiDPI laptops pretty sucky and pointless.
I think providing consistent HiDPI support in Windows 8 was way more important than adding Metro.
I run a three screen setup at work and usually only one or two at home. When changing the number of screens I need to reboot in order for the DPI scaling to work properly :/
Also - the PowerShell prompt is horrible.
I just bought a Yoga 2 Pro and I love it too. Very nice ultrabook. I have the same problem with the screen which is fabulous but also very bad because of the high DPI support of Windows.
Finally, I use the 1600x900 resolution and 100% scale so all programs look fine.
http://blah.winsmarts.com/2014-1-The_coming_pain_of_High_DPI_in_Windows.aspx
That forces users to choose between an envelop sized window to work with, or a large view that literally takes seconds between keystrokes.
On Windows it seems to depend on the UI technology that is used by the application. WPF works quite fine out of the box, frameworks like QT and gtk+ don't work at all.
The scaling should happen on a lower layer in Windows. That way all applications would be treated equally. All you would've to do is providing high-dpi graphics.
To add I'm using the Ativ Book 9 Plus which has this same resolution. Sure it's not perfect. But it's damn close!
Usefull example for me as a programmer though.
It's not an easy problem to solve, at least not in the windows world. I agree with Sahil, Apple has solved this much easier: simply scale _everything_ with the same factor, works always. On windows, text is scaled, but there's no setting for the rest. This is scaled as the apps goes along (controls gets wider due to the text areas gets prescaled, so the images on them, if properly anchored, scale as well).
However that doesn't make it a problem which lies for 100% with the developers. Microsoft has abandoned not one but two desktop UI frameworks in .NET, both are not ideal with respect to scaling to high DPI. But what to do? Abandon a large pile of knowledge about winforms and move to wpf, which is dead already too? Or move to windows store apps, but then have to deal with a very limited framework and at the same time a UI system which doesn't fit all desktop apps. Make everything a webapp then? Not everything can nor should be a webapp.
Your post clearly shows Microsoft should get their act together with respect to a solid desktop UI framework and provide a solid healthy future, so issues like this are solved automatically like they should. At the same time it shows that you, a web dev, is out of touch with what desktop devs have to (!) work with, sorry.
You provide great work, but your blame on the developers really struck a nerve. I've spent over a week to get everything working on high dpi displays some time ago, most time working around winforms issues regarding font scaling. (group controls in group controls which didn't get scaled properly while their outer group control is etc.). Am I to blame? Or are the developers at your company to blame? Or the managers who brilliantly decided to get rid of the winforms and wpf teams because we were not going to need them anymore as everyone would develop windows store apps from now on perhaps?
Return the Lenovo, get a Retina MacBook Pro and move on.
Other than all the complaints about hi dpi problems: Of course there are problems as until recently (this is years in desktop development ;) there basically were no hi-dpi devices to test/develop on.
Even on OSX it took months/years to fix programs like Adobe but AFAIK even now not all programs work perfectly.
I do agree Microsoft should improve the situation as much as they can (easier development, option of different manual scale on different screens, fix at least their own stuff like the Windows Device Manager which works but looks blurred, etc.) but I think complaining only does not help. Actually nice to have this article which I hope gets attention not just by Windows haters ;)
Microsoft's design choices in how they rasterize fonts is horribly broken, and makes the horizontal length of any given rasterized text wildly inconsistent and impossible to predict. Short version: they start each glyph rounded to whole-pixel boundaries, regardless of the width of the preceding glyphs. This is so they can do overly-aggressive hinting for the standard Arial 10pt/96ppi, but causes the horizontal distances to jump around in strange ways at any other size.
Adobe/Apple/Freetype/etc don't have this probelm because they properly align glyps to a 1/10 pixel or 1/256 pixel grid and antialias whatever that result is. It produces consistent word/line length, but does contribute slightly to that "blury" effect some people see in OSX fonts.
I've had the Yoga 2 for a month and a half, and I have to give props to Lenovo. The hardware on this laptop is a wonderful experience. My experience with Windows 8.1 has been the exact opposite. The dpi issues make this whole OS look like a joke.
Blaming the app developers is missing the mark, as built-in applications like Remote Desktop have the worst problems.
I can see that's exactly your problem. If you scale one part (text), menus won't scale, pics won't also, etc. So I see now that the best approach is to scale it all, but in order to do that you need to have the double amount of resolution on graphics or you need vectorized system.
I think Windows is still far away on that approach, so I guess it's better to keep on the tradicional resolutions. Unless you have a huge monitor (and I think that's what the big resolutions are intended to on Windows).
Anyway, have you tried to set a smaller resolution, proportional to that one? If the graphics doesn't look crappy, maybe it's a better option for now.
The second hardest is SnagIt + scaled fonts. Screenshots look normal on your screen because everything is scaled up relative to everything else. But then you paste that screenshot into Outlook or Word and you notice that your little screen grabs are actually GIGANTIC.
IE (8?) just worked
Firefox was fine once the layout.css.devPixelsPerPx setting was changed
Chrome just couldn't hack it at all - it was quite common for various elements on a single web page to behave differently as the zoom level changed. Please see:
https://code.google.com/p/chromium/issues/detail?id=679
The HiDPI story for Windows has been broken for ages - I was battling the same problem five years ago in getting a bitmap in an MSI installer to look well on normal, small and large font size scaling as I would be today (hint: that's not actually possible unless you write your own UI, which you might want to do anyway but for different reasons).
Windows Forms has a model for adjusting, but it is not coherent and it causes more problems than it solves. WPF has all the chances in the world to be good at this, but at the point of taking blood, sweat and tears to make ordinary images not be blurry or inscrutably scaled. (Pit of success, anyone? I love WPF's propensity for scalable art, but more often than not, you start 10 meters in the hole and have to climb out of it.)
It's good that Microsoft has taken steps to expose those problems with Windows 8 and 8.1. Now it comes down to taking the measures to let the problems that are exposed become solvable. All non-Windows computing devices I own have Retina displays so I get why HiDPI is desireable. But I'm not seeing all that much support from Microsoft to actually make their own stacks more competent except the repetitive calls to go build Metro apps. Your list shows that it's not impossible - but it is definitely the result of a lot of hard work and determination and a bit too much working against the grain.
Good: VS 2013, Office, IE, Windows Store apps
Okay: SQL Mgmt Studio, Chrome
Bad: Remote Desktop, Live Writer
Continuous Tests (a.k.a "MightY Moose") is another offender, but I can't complain because it's still a great tool (as is R#) but I didn't pay for it. :)
This is great! Windows 7 doesn't have this feature, and I wish it did: On my setup with a high-resolution laptop PC connected to three external monitors, things look good on the external monitors, but tiny on the laptop's display.
I've ended up using the laptop's own high res display only for Gmail, and using Ctrl+Plus several times on that browser window to make it readable.
The issue I am having Scott is that many apps (like all Adobe apps) do not know how to behave in this hi-res environment. I am finding that I cannot use apps like Adobe Audition at all. I have not found a solution.
I am trying to get any Adobe app to work correctly. I guess until they update the apps I am stuck working on the older Dell laptop.
http://i.imgur.com/CSeILzo.jpg
I've also noticed a couple of issues seemingly with the scaling setting being maintained or picked up:
1. Sometimes, coming out of standby, my machine reverts to 100% scaling and I have to switch it to external display and back to force it to pick the scaling back up again.
2. Some apps don't seem to pick up the scaling setting at all (e.g. PowerShell highlighted by Kenneth) and in these cases I've found that if I right-click the executable I have an option to run with a particular graphics adapter and that doing this rather than just double clicking actually forces the scaling to happen. Not sure whether this is a standard Windows feature or something the graphics drivers that came with the Dell do.
Both of these seem to have pretty trivial workarounds so maybe Microsoft will be able to provide a patch via Windows Update.
Also, regarding Remote Desktop - Remote Desktop Connection Manager, although old, seems to handle the scaling a bit better.
A point should be aproximately 1/72 of an inch, PERIOD. There can be no other definition. The fact that there is another definition in software is simply WRONG. Any variation to great and we should reject the value of a point.
We have DPI settings in the OS, in part so that the OS can calculate how to display a font at certain points.
As soon as you display that PPT on a pluged in projector, that 20pt font in powerpoint is actually 1000pt when it is on the projector, or 10,000pt depending on the size of the projected display.
These really aren't easy problems to solve. I'm very glad someone is finally attempting to make some progress on this problem.
To solve the issue for some of the apps like powershell I wrap it inside ConEmu, which makes it scale very well. ALso worke for TotalCommander etc.
Try it out.
Of course you will have to tweak a little bit - using LXDE and infinality font patches seem to be the most important advices for geeky beginners, but if you are running a Linux system for some months or years you will start to see how much life-time you wasted with nursing windows annoyances.
This effect comes slowly, at the beginning you will have some tweak-time, but when you found your optimal settings you just keep them in your home folder and copy them to new installations, setting up work environments on a new system comes down to one simple copy process and takes nearly no time, extremely simple and powerful.
And believe me, it is incredible how deep one can individualize a Linux system, this level of tweakability is simply phantastic and no commercial OS offers this today.
After your initial tweaking experience then there will happen this: month after month will pass by, and you will just do not have to think about your system, you will just be using it. This is not possible with Windows, the brilliant software distribution of all modern Linux distros is just lightyears ahead of the primtive installation nightmares windows urges you to use.
I try to emphasize one really important thing for every creative person: Linux just helps you keeping your focus on your actual task and saves you unbelievable amounts of life-time!
As every year I spent Xmas with helping friends and family with their windows computers - it feels totally absurd if you have not used Windows for some months or years on a regular basis - the confrontation with totally idiotic technical problems is simply not-acceptable any more for a user who is comfortable with the luxury of a computer system that just works. This would be all laughable, but in fact it is a desaster for our society how many talented people loose massive amounts of time with "installing a new windows" or "fixing windows problems" - we have too many problems to solve on this planet, we can not allow having creative people burn their time with BS. Unfortunately OSX does not look much better here.
I do not believe that MS can ever catch up. It is more than just technology, it is the philosophy. Elegancy, simplicity and openness created a system and an infrastructure that is much more advanced than any commercial OS today.
Most Linux distros made very important improvements to the desktop experience over the last years, lots of small things add up to finally beeing easily usable by average user and a fun ride for every experienced tweaker who wants to OWN his system and not be owned. :)
Additionaly as a programmer there is of course no way around using Linux systems as your primary environment if you want to really master your programming challenges and not only be an intellectual chicken in a MS cage.
There is more to Free Sofware than just the technical advantage - the commitment of thousands of developers to freedom and efficiency created some kind of magic, that can only be understood when you are using it yourself.
Come over and take a look, I predict that 2014 will be the year of the Linux desktop. After a few months I bet you will only unwillingly boot into your Windows desktop because of some software or job that is Windows-only. If you once have come out of the cage, you will wonder how great the world can be!
Yes, I'm talking about YOU, adobe. I cannot even find a way to report this bug.
However MS should also do something to deal with situation. How about... release a C/C++ library like WPF?
Unfortunately, unlike on mobile platforms, desktop developers tend to think of high DPI as an edge case not worth worrying too much about -- if it's thought about at all.
Awareness really needs to be raised over making them look good at that scale, especially with the rise of 4k/8k displays on the horizon.
Seriously, thats not so hard to conceive and (at least naively) implement...
Why was that feature canceled after the first beta? That would have solved everything.
Sahil Malik: Macs use a scaled resolution approach which scales everything equally. It works beautifully, it's simple and elegant.
No, they don't. I just got a Macbook Air. My options for making the screen more readable are:
1) Run it at non-native resolution. i.e. Instead of 1440x900, use 1280x800. That's ugly, ugly, ugly. Windows has that non-option too.
2) Get a third-party utility like TinkerTool and fix 9 different system font sizes (title bar font, etc). Awkward, laborious, and not universal.
Windows solution of being able to set the DPI and having that DPI apply to everything is much better than any of the Mac options.
Take for instance that Creative Suite still breaks on case-sensitive filesystems(including the case-sensitive mode of HFS+)
I find my mac perfectly awesome to use without tinkertool. Can you elaborate, perhaps with screenshots on what exactly is the issue?
S
One annoying one is the Task Manager. In the details view, the default column widths are way too narrow.
I'll agree that VS 2013 generally does a good job, but even there, many of the default widths for columns (think TFS Source Control Explorer, Error List, etc), are too narrow when working at HiDPI.
Another annoyance are web images. While many websites have optimized for Retina displays using the -webkit approach of media queries, css, etc, most don't do the IE 11-supported way of using JS to switch out the images and keep the size. Seems like the IE team needs to at least understand the webkit approach to that as it's better than nothing.
Credit has to go to Remco, as NCrunch 2.2 works perfectly, and Resharper 8.1 seems fine too.
VS2010 is really bad (unlike VS2013), tortoise Hg struggles
Of course there is a solution to this, at least for anything open source, which is why I hope they accept the pull request I've sent for StyleCop.
Plus a zoom feature for RDP would be nice.
Priceless!
But the worst part is when you start to RDC other machines (Win 8.1 and Server 2012 R2) - it randomly hangs the target in high or strange mixed awful high/low DPI, and to change it - you HAVE to log out!? I really hope MS will hotfix this soon.
The micro HDMI output seems to have a max resolution of only 1920x1080 - so to use a big external monitor, use USB 3 dock - and make sure it is the latest DisplayLink chip (i just got a Fujitsu), or else it won't run e.g. 2560x1440 (don't go Lenovos models).
Related to DPI: I hope that MS some day will consider that some mice has very high DPI. When i connect my Logitech G700 mouse, i have to lower the mouse sensitivity so much that the touchpad becomes useless - only options is to lower the mouse DPI (auto sensitivity programs don't work).
And I don't get why the Yoga don't turn of the the keyboard back-light when the screen turns off, and why it doesn't disable the keyboard when cranked half way around - it has to be completely wrapped around; This can cause key press in stand mode. Lenovo have a Thinkpad version to - lower res., with pen, dedicated dock plug etc., but it's not orange and it doesn't do 3200x1800 for good and bad.
VS.NET 2013 perf. test building a solution was 9.5 seconds on the Yoga (8GB RAM, i7) vs. 7.2 seconds for my PC OC@ 4.7Mhz (Sandy). Thats impressive!
But yes, it IS a nice machine! SUPER display, almost as good as Mac air touchpad (but the Synaptics software is still crap), good battery time (hopefully MS will give us some more one day), orange color is cooool - i like the rubbery finish, and it fits in my mans-bag :)
It's just as much a tablet as it's a workstation - and that makes it a useful tablet.
I don't see these issues going away any time soon - for most devs it's just not ever going to get high enough on the backlog. I can see the conversation going something like "Should we add that new feature our users are clamoring for, or should we essentially rebuild the entire UI to make things look prettier for a handful of users?"
"We triaged this issue and at this time do not plan to address this in a future version of SQL Server. -Walter A Jokiel, Program Manager, SQL Server "
http://connect.microsoft.com/SQLServer/feedback/details/764009/ssms-does-not-display-properly-in-high-dpi
That's an extremely shortsighted view. I think I would have left off the "future version" bit. I suspect that DPI variety is only starting to become an issue, and with mobile devices and various tablet sizes taking off, this will end up being much higher concern than people expect.
We've already gone through our application and modified it for high dpi. I would rather have my users getting their job done and telling all their friends to buy our service than silently annoyed at us daily because we were too busy doing valuable features to make the ones we already gave them work.
I do have a few list controls with initial columns widths hardwired, so I'll need to change that. But I give me an 8/10. I expected far worse, as no effort had been put in either way.
As far as other applications go, chrome was quite poor - I had to really fiddle to get the tabs not being 0 width. Hyper-V is also disappointing - installing an OS, I say how small unscaled 640x480 was. I assumed that I just had not found the scaling setting for the window, but Ben Day above says such a setting does not exist. And there will be the same issue with RDP.
If applications from Microsoft itself don't work, what chance do the rest of us have?
https://www.dropbox.com/s/oog8qsg2gjnyrza/Screenshot%202014-01-17%2012.36.42.png
https://www.dropbox.com/s/mt8xqk04eo2dod8/Screenshot%202014-01-17%2012.37.02.png
The functionality of Live Writer is included into Word now.
One other annoying thing with the Yoga Pro 2 is lack of TPM module - this makes Bitlocker a hassle and I wonder why they called it "Pro" when this is probably not a machine targetted at business.
I also had alot of problems with the Lenovo USB3 Docking station not supporting Win 8.1 / Displaylink or even recognising the machine. There is a firmware patch on the Lenovo website which fixed those issues.
The machine itself is superb.
As Derek Fowler mentioned in the comments, Remote Desktop Connection Manager works much better than the standard Remote Desktop client on scaled high-DPI screens. I blogged about setting it up if anyone is interested in the step-by-step:
http://bit.ly/MmMAew
All this hype around high extreme DPI screens is silly, unless there are monitors that actually make it reasonable to drive all those pixels at native (100%) resolution and a reasonable size to match.
Nut I've seen Win 8.1 apply different DPI per monitor well enough, so it should be possible. Windows does not give me a clear enough way to tell it that one of the monitors is hidpi, and is unable to determine it automatically. Any suggestions on how to fix it?
My article with a guess about what this means for the long-term future of the desktop: A Look At The Future Of The Desktop.
To comment on the Linux guy above, unfortunately most Linux is not yet ready for Hi DPI/ HiDPI / High resolution http://www.reddit.com/r/linux/comments/1ltytm/
http://www.reddit.com/r/thinkpad/comments/1wm5vx/just_got_my_gen2_x1_carbon_as_developer_and_long/
I was just wondering why did you choose IdeaPad Yoga 2 Pro, and not ThinkPad Yoga? I saw a Lenovo hangout with you, so I was wondering, how these machines compare from the developer point of view.
Cheers
I had one situation where I had to switch back to 1920x1080 just to install an app because the Install Shield would not resize and wouldn't show the Next button. No scroll bars, no resize but the content had been scaled out of view.
The problem is due to Quad HD not being everywhere. We're bleeding edge adopters.
Apple managed to make it work great, Microsoft has not, and it is no one but Microsoft's fault.
Whatever technical reason apologists come up with, from a users perspective Microsoft is the one that blew it.
So fix it without resorting to fingerpointing because your paycheck depends on playing defense for a shitty technology stack.
Scott I didnt get the "per display"
How to choose the Display for scale Setting?
IE does render page content correctly, but when you lose a sixth of your screen to huge overhead, you're not much better off than non-power users naively running a pile of junkware toolbars.
Considering how Windows has to fall back to fuzzy scaling by default, that a non-legacy flagship browser gets it wrong, and the complexity of the high DPI white papers, it seems likely that the legacy of the Win32 API will make proper DPI support a huge challenge for desktop apps for a long time to come.
windows 7 problems
Thank you
Aalia lyon
Strange thing is, people were relying on the bad behaviour where Firefox ignored the system DPI, so enabling it lead to complaints that Firefox was suddenly "too large" (Because people were running their systems at 150% scale and expecting apps to ignore it). So you'll find more people complaining about Firefox on HiDPI systems, than people praising it for working right.
You could probably do an entire parallel post about touch support in apps, too. (Chrome touch works on Chromebooks, Android, and iOS), but has entirely too many issues on Windows touch screen devices.)
Usability-wise, though, I rank Eclipse right up there with trying to wear ski gloves while writing with a pencil.
I want to use wireless mouse as tracker for displaying of robots motion track (2-5 meters) on my PC screen (in Paintbrush ).
HOW TO SCALE THE MOUSE OUTPUT TO PC SCREEN IN WINDOWS 7
Yuri
Comments are closed.