elementary / installer

Installer front-end for Linux-based OSes
https://elementary.io
GNU General Public License v3.0
171 stars 47 forks source link

Detecting and setting a sensible UI scale #573

Open rsms opened 3 years ago

rsms commented 3 years ago

Describe the bug Booting up elementaryos-6.0-daily.20210615.iso from a USB drive on a display with high density pixels the installer defaults to a 1.0 scaling factor making it really hard to read things.

To Reproduce Steps to reproduce the behavior:

  1. Put elementaryos-6.0-daily.20210615.iso on some data media
  2. Boot up a machine to that disk
  3. Wait for the installer to start

Expected behavior UI of the installer to be of a physically-sensible size (buttons to be ~10mm tall, text to be >~5mm)

Actual behavior UI is tiny. Scaling factor appears to be 1.0

Screenshots IMG_0453 IMG_0456

Desktop:

Additional context Display is a Dell P2715Q (27", 3840x2160px, pixel pitch 0.1554mm) connected over DisplayPort

rsms commented 3 years ago

I wonder if in the installer, when the display framebuffer is above a certain sensible amount (like MAX(w,h) >= 1280) you could set the scale to 2.0 and ask the user "Which UI scale do you prefer? [image of smaller detailed UI] [image of larger simpler UI]"

cassidyjames commented 3 years ago

@rsms so 27" 4K is in a weird range because 1080p@2x on that size is gonna look really chunky depending on how close or far you are, and if you're far enough away that it looks good, the fact that it's HiDPI is almost irrelevant because you can't see those pixels anyway…

Technically, we currently rely on GNOME Settings Daemon's defaults for scaling, and it counts 192 DPI as the magic number for 2× scaling. Since this display is 163 DPI, it's below that threshold and stays at 1×. We could offer a screen here (and then again in the Onboarding or Initial Setup app) to choose if you're in this sort of tricky range, but honestly, I'm more inclined to just handle it in Onboarding than in the installer; the Installer doesn't set up other user preferences or hardware defaults and is solely designed to get the OS installed.

We do have https://github.com/elementary/onboarding/issues/83 filed in Onboarding, and what we implement there could be repeated here as well. But be aware there's overlap.

swirly commented 3 years ago

On the opposite side, it's not possible to install on a small screen ... no button to click on because they're outside screen ! Capture d’écran 2021-08-24 à 17 56 25

cassidyjames commented 3 years ago

@swirly if that's a VM, it's a well-known issue noted in the official FAQ on the homepage, installation instructions, and announcement post.

swirly commented 3 years ago

@swirly if that's a VM, it's a well-known issue noted in the official FAQ on the homepage, installation instructions, and announcement post.

I had this problem on a VM (vmware) so I tried on a real (but old) computer, with an internal limited GPU and an old screen... that was for testing. I finally installed the whole thing by using tab and guesses, but it was quite rock and roll :)

swirly commented 3 years ago

No idea why the comment above was marked off-topic. Scale is a problem both for big screen and small screens, isn't it ?