trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: December 2017

Re: [trinity-devel] TDE on dense small screens

From: Vincent Reher <tde@...>
Date: Mon, 11 Dec 2017 11:54:02 -0800
On Saturday 09 December 2017, Felix Miata wrote:
> [I am not a developer.]
> 
> Vincent Reher composed on 2017-12-09 19:21 (UTC-0800):
> 
> > I recently purchased a Dell XPS15 laptop for my daughter and before I turn it
> > over to her, I am experimenting to see what must be done to make it usable
> > under Linux/TDE for those with no better than normal eyesight.  Per EDID, the
> > laptop's native screen resolution is 3840 x 2160 and its physical screen
> > dimensions are 346 x 194mm (~15.6" diagonal).  My objective is to run the
> > laptop at native resolution both inside and outside of X (no re-scaling).
> 
> > Using the EDID metrics, it is pretty easy to determine during boot an optimum
> > terminal font (ter-i32b.psf) and X font scaling (Xft.dpi=240).  After that,
> > using the TDE control panel to increase panel and icon sizes produces a nice
> > looking desktop environment … almost.                                   
> 
> 15.6" nominal is physically 282.42 DPI @3840x2160 resolution:
> http://fm.no-ip.com/PC/displays.html
> 
> 3840x2160 is considered "quad density", aka 4K resolution.
> 
> For a little perspective, consider what increased density means drawing icons or
> text characters compared to lower resolutions.
> 
> 15.6" nominal is 141.21 DPI @1920x1080 resolution (the HDTV standard).
> The reference DPI, on which web standards are based, and from which most
> software developers worked until production display densities started to
> considerably exceed the standard reference, is 96. A screen that actually is 96
> DPI @1920x1080 would be almost 23".
> 
> At the reference, a 16px by 16px icon is comprised at most of 16^2 or 256
> pixels, and measures 4.417mm square. Going down to a 15.6" screen at that same
> resolution shrinks those same pixels into a 141 DPI 3.003mm square space.
> Raising the resolution to *nominal* quad (3840x2160) squeezes those 256px into
> 242 DPI 1.502mm square space.
> 
> The converse is that in order to get an icon that was 4.417mm square on a true
> 96 DPI screen to stay that size on a 15.6" screen @1920x1080 would require
> utilizing approximately 554 pixels. On a quad screen, 3840x2160, that jumps to 2216.
> 
> Computers can be programmed to scale up objects so as to improve their physical
> size, but with images that comprise the standard 96 DPI icons, their appearance
> cannot be improved to take advantage of higher available pixel density. Higher
> density screens need to have different, and much larger, icons.
> 
> > The remaining issue concerns TDE window/menu controls that are too small.
> > These include window resizing double-arrows, window scrollbar and associated
> > up and down arrows, the menu-submenu right arrow, list expand-collapse (+/-)
> > controls, checkboxes, and radio buttons.
> 
> > I suspect that these resources are part of QT3 but don't really know for
> > sure.  I suspect QT3 because applications that do not use that toolkit (e.g.
> > LibreOffice and Firefox) do not manifest the problem.                     
> 
> TDE and its own applications are QT3-based. QT3's initial release was 16 years
> ago and for all practical purposes its development ended 3.5 years later, mid-2005.
> 
> QT3's design foundation is close to two decades old, well before developers had
> to consider escalation of display densities. Some elements could be scaled with
> density, by using units that scaled (e.g. pt, mm or in), but images weren't
> among them. Some design elements used a mixture of pixel units and scalable
> units, while others used one or the other. Compromises were inevitable where
> densities varied more than a little from the standard.
> 
> Image scaling simply can't work as well as today's "HiDPI" screens require.
> Either images in additional sizes need to be provided, or a different kind of
> image designed to be scaled need to be provided, or both. QT3 wasn't designed
> for scalable images, and no one ever provided much in the way of additional
> images, or just as, or more, importantly, an effective framework for utilizing
> them without compromises.
> 
> Getting TDE off QT3 onto a foundation that fully supports "HiDPI", assuming any
> such open source foundation actually exists at this point, in my estimation
> would require resources several orders of magnitude larger than those available
> to the TDE project.
> 
> > I am hoping that somebody more knowledgeable about GUI configuration and
> > programming can point me in the right direction.  Is this something that can
> > be corrected via a configuration file (e.g. qtrc)?  If not, can somebody
> > point me to where in in the source code tree I should be looking and what I
> > would need to do to correct this?                                    
> 
> IMO you're probably facing a choice between using TDE and not using native
> resolution. At a normal viewing distance, 141 DPI ought to be as high a display
> density as anyone with no better than average visual acuity can fully
> appreciate, absent side-by-side comparisons, where differences may or may not be
> detectable without getting closer or using a magnifying glass.
> 
> I suggest giving 1920x1080 (physically 141 DPI) a try. The kernel cmdline can be
> configured through the bootloader menu to have it override EDID and use
> 1920x1080. Xorg and thus TDE should use that mode automatically, but if it does
> not, Xorg can readily be configured to use it directly. TDE settings can do same
> if need be.
> 
> Fonts in apps generally work best if DPI is a multiple of 24 (96 * 1.25,
> 96*1.50, 96*1.75, etc.), less well at 12X, even less well at 4X or 8X, so at
> 1920x1080 you might wish to try forcing DPI to 143 or 144. 144 is a breakpoint
> in some software design, so you might notice some big differences between 143
> and 144. Depending on how good your daughter's vision is, leaving logical DPI
> set to its 96 default may well prove acceptable with 1920x1080.
> 
> > Of course, if HiDPI issues have already been addressed by others in the post
> > R14.0.4 source code, that would be great.
> Leaving QT3 has been suggested, but I've seen nothing on this mailing list or on
> IRC to suggest anyone thinks it could ever happen.
> 
> HTH

Felix, thank you for your lengthy if somewhat pessimistic reply. 

To be clear, I have no issue whatsoever with the fonts -- they look great on this display with Xft.dpi=240, perhaps in part due to my past efforts at making fonts look reasonable on Linux desktops.  And the desktop/panel icons are fine after stepping up to larger sizes (no scaling).

It's just those apparently fixed-size bitmap images used for window/menu controls that are way too tiny.  If indeed the problem lies in QT3 and it cannot be "configured away" either during build time or run time, then I simply ask for somebody more knowledgeable to point me in the right direction so I can start looking and experimenting with the source code.

I am also not suggesting TDE be ported to QT>3.  I know that is a non-trivial effort and would not be feasible.  Also, I am not even sure that QT fixed this problem until the 5.x versions (http://doc.qt.io/qt-5/highdpi.html).

To downsize from native resolution on this laptop would be to admit defeat and loose a touted feature. It's not going to be a problem for my daughter since most of the software she needs to run is "windows only" and the laptop's pre-installed Windows 10 does not seem to have any problem at all.  It may be a problem eventually for me should I choose to get a similar laptop and stick with TDE.