Cinnamon: More granular HiDPI settings

Created on 29 Aug 2014  Â·  36Comments  Â·  Source: linuxmint/cinnamon

The current HiDPI implementation only allows selecting "Normal" (100%) or "Double" (200%) in the "User interface scaling" dropdown menu.

For a lot of HiDPI screens, specially 13" or 14" with FullHD resolution, 200% is much too big. Smaller notches would be very useful there. For example 125%, 150% and 175%

FEATURE REQUEST

Most helpful comment

@leigh123linux I don't think that is appropriate language to use on a Github issue thread, nor anywhere else in the Cinnamon community. Please don't do that.

All 36 comments

Hi - Had a quick chat with development member on this. The gist is that this is due to limitation prevalent in gtk where scaling can only be 1x, 2x, etc. Although Cinnamon UI itself can be fine tuned to support fractional numbers, some gtk apps would still be either oversized or undersized. Considering such unwieldy behavior for applications, this feature is not implemented.

And is it being implemented in GTK itself?

Searching a bit found the below in a gnome mailing list thread

Fractional scaling at the Gtk+ level like we do on X11 is really hard, because the things being scaled are generally integers, such as GdkWindow positions and sizes. Also, the multi-monitor situation wrt hidpi is essentially unfixable on X11. The recommendation I have for you
right now is to pick the integer scaling factor that fits you best for icons/borders-widths/etc, and then lower/raise the text-scaling to compensate. So, e.g. scale=1, text-scale=1.5; or scale=2, text-scale=0.75. However, long-term there is hope. The work I did on adding hidpi scaling
to wayland is at the right layer, as opposed to the hacks we do on X11,
which will allow the multi-monitor case to work right.

Which means it won't ever be fixed on the Gtk+ level, and we have to wait for Wayland?

Then for Cinnamon I would propose to introduce a 1.5 scaling factor which sets text-scale, panel height and icon size so that it looks good for the intermediate DPIs (FullHD on 13,3"). It can also set the equivalent Firefox scaling factor (which works well).

I use a 3K display and for this case having a 1.5 scaling factor would be really nice.

Same here, 1.5 on my UHD display would be nice! ;)

I'm running into the same issue. I have a 2560 x 1440 14" screen. Looks like the scaling-factor gsetting is an integer, but it would be great if we could set it to something like 1.5.

Same here, 2x is way too big and 1x is unreadable on a 28" 3840x2160 monitor.

+1

I just installed cinnamon for the first time. 2x is too big on my 2560 x 1440.

+1

:+1: 1.5 or 1.75 is ideal on my display.

+1

Are all the people who left +1's here read this.

http://permalink.gmane.org/gmane.comp.gnome.desktop/49769

Then bugger off and pester the GTK dev's instead!!!!!

@leigh123linux I don't think that is appropriate language to use on a Github issue thread, nor anywhere else in the Cinnamon community. Please don't do that.

Maybe not the right thread but for reference I was also wondering what's the difference between scaling=normal and scaling=auto in the new Cinnamon HiDPI settings.

Another question is with setting correct DPI in Xorg. Currently I see

$ xdpyinfo | grep -B2 resolution
screen #0:
  dimensions:    1280x800 pixels (338x211 millimeters)
  resolution:    96x96 dots per inch

That's not correct as my display is about 114 dpi. Do we need to force Xorg to use the correct fraction instead?

I too am having a lot of font size issues on a 114 dpi small 13" Thinkpad (not too mention different toolkits seem to render a 10pt font size very differently, quite unnerving). Another problem is 100% zoom level is plain wrong in Writer, Evince, etc. Only Gimp is smart enough to let you adjust settings so a 8in graphic or document looks like 8in on the screen as well.

Thanks, --Mel.

P.S. I'm editing this question showing what the problems are in Inkspace for example:
1) 100% zoom (bottom right corner) should show a US letter document (11 x 8.5 in), but it's actually about a 1/3 smaller on my screen
2) I took a screenshot of part of Inkscape toolbar and then pasted it into the document using several bitmap preferences (first a simple copy/paste, then overriding the bitmap resolution to 114dpi and to 96dpi). None of these methods actually renders the bitmap to its actual size. This is to say that correct dpi handling is not just a cosmetic issue.

image

@mbacou in a somewhat related issue, attaching an external monitor with different DPI makes things even worse. This is one 1920x1080 (laptop) plus 1920x1200 (external):

$ xdpyinfo | grep -B2 resolution
screen #0:
dimensions:    3840x1200 pixels (1016x318 millimeters)
  resolution:    96x96 dots per inch

That is probably something related to X, rather than Cinnamon, and may be solved by switching to Wayland (or not). I just wanted to point that out.

@mbacou fascinating work on HarvestChoice btw.! :smiley:

A special theme could probably be an easy solution: https://github.com/linuxmint/Cinnamon/issues/4632. This will not solve all the problems of course but at least the controls in standard GTK apps will be visible and consistent.

I'm having same problem here. Screen 13.3", resolution 1920x1080.
Impossible to find a proper settings with linux mint cinnamon.
Some how I managed to make the thing a bit less bad:

For the browser i did this:
Firefox: changed setting layout.css.devPixelsPerPx: 1.3 looks more crispy than chrome, but whatsapp web looks better in chrome
Chrome: sudo gedit /usr/share/applications/google-chrome.desktop
find the line Exec=/usr/bin/google-chrome-stable
and add --force-device-scale-factor=1.4 %U
Then change the number (1.4) as you wish, ex. 1.3, 1.5, 1.6. I keep the font size: medium and zoom:100%

For the overall looking I changed: system settings> appareance> fonts> text scaling factor 1.3
system settings> preferences> panel> change the panel height.

However the result _sucks_.

Same problem here on my 14" 2560x1440 screen.

Same issue here. I bought a Xiaomi Mi Notebook Air, which has a 1080p resolution with 13.3″ screen.

When I installed LinuxMint 18.1 I find the font was too small to read. Windows 10 will set the scale 150% automaticly.

The thread @leigh123linux linked talked about the application rendering at 2x scale, and the composer downscaling that to 0.75, to achieve a 1.5 scale factor. Of course composer scaling will never be perfect. I would like to have the option though. 2x sure makes me feel like I'm on a 600x800 display again.

3440x1440 here
Normal - everything is small
Double - everything is so big

Would be great to have more scaling factors to choose from.

It's especially annoying when using external displays regularily. For 3840x2160 external and 1920x1080 laptop display there isn't a good setting. Double is way too big even on the external display and normal way too small while normal is good for the laptop display.

Just a heads up. Rude, pointless, unhelpful, or uninformative posts will be removed.

:+1: A finer granularity for the interface could also be very useful for accessibility. What matters in the end is the size of the features on the screen that you're using, and that depends on PPIs, which vary wildly, and personal preference. I do not see pixel sizes and densities to uniform in the future, so while intermediate resolutions are already of great help, in the long run it would be great to have an arbitrary scaling factor.

Personally I'd be happy if I could set it per-monitor level as written on #5514. At the time of writing it is not supported in 3.4. Anyone knows a workaround for the time being?

I am just switching from Ubuntu (using Unity) to Cinnamon and Unity had very granular hiDPI settings without applications looking weird.

Do you know how they implemented it?

Ok dawgs, this is still not solved in 2017 and I would consider it a showstopper, really - Unity supports fractional scaling, so there should be some way to make Cinnamon do the same.
I'm a developer so would actually be interested to work on it. Whom can I talk to to gather context?

fyi: the KMS/Plymouth gets it right during boot on Fedora 26.

@kyegupov - You can contact @clefebvre - any help is appreciated

Soooo I have two displays, one is a 28" 4k display and the other is a 24" 1080p one.
Since it seems to be impossible to use xrandr to adjust both with scaling at the same time I stumbled upon this issue.

Can someone explain to me why there are only three options to choose from?

            settings = page.add_section(_("Desktop Scaling"))

            ui_scales = [[0, _("Auto")], [1, _("Normal")], [2, _("Double (Hi-DPI)")]]
            combo = GSettingsComboBox(_("User interface scaling:"), "org.cinnamon.desktop.interface", "scaling-factor", ui_scales, valtype="uint")
            settings.add_row(combo)

https://github.com/linuxmint/Cinnamon/blob/master/files/usr/share/cinnamon/cinnamon-settings/modules/cs_general.py

Since Cinnamon is GTK 3 and that should support scaling 1.5 too, why don't we just put it in the list?

This would still not be the best solution (sclaing for monitors, not only the whole desktop) but at least both displays would be readable.

EDIT: does it have to be UINT?

Since Cinnamon is GTK 3 and that should support scaling 1.5 too

Cinnamon is built mostly with clutter and cogl, not gtk. Gtk does not support 1.5 scaling either.

Can you implement this piece by piece? Enabling HiDPI per display would be
a good enough start for many of us.

On 21 Jun 2017 5:54 am, "JosephMcc" notifications@github.com wrote:

Since Cinnamon is GTK 3 and that should support scaling 1.5 too

Cinnamon is built mostly with clutter and cogl, not gtk. Gtk does not
support 1.5 scaling either.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/linuxmint/Cinnamon/issues/3455#issuecomment-309962893,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAfm7g-_Sk7b8wX-ix2FkXFw-Tpk5WEAks5sGKISgaJpZM4CcqwE
.

I had enough of the useless comments that add nothing so I'm locking this report

Many thanks for contributing to Cinnamon. Your suggestion was reviewed. Your job is done and we'll take it from here :)

For more information on our workflow and feature requests, read https://linuxmint-troubleshooting-guide.readthedocs.io/en/latest/faq.html

Was this page helpful?
0 / 5 - 0 ratings