Per-application GUI scaling?

Is there any way to set different scaling for different applications in Phosh? Or, does anyone know of another shell that works better with lower scaling percentages?

Phosh works best at the default 200% scaling, but Firefox works, much, MUCH better at 100% scaling (and even then there is still not quite as much space as I would like). In addition, Squeekboard has huge margins on any scaling amount that is not a multiple of 100. It would be incredibly useful to be able to set 100% scaling for Firefox and other applications that heavily benefit from it, and 200% for everything else.

1 Like

phosh-mobile-settings:

With Firefox, this appears to not do anything all. All GUI elements are exactly as oversized and crowded as before, and web pages still require scroll bars.

It would be nice if it was possible to set a per app scaling factor in phosh-mobile-setngs. But that might be a pretty big ask.

1 Like

Use the Firefox mobile plugin. It will help half your problem.

Some apps, such as Telegram, offer scaling in their preferences. So apparantly it doesn’t require a centralized solution.

It wouldn’t be hard, most of it is already there but scarce time is better put elsewhere. That said patches are certainly welcome.

If I had the time and the ability… Have to stick to commenting from the sidelines, I’m afraid. :wink:

Or, does anyone know of another shell that works better with lower scaling percentages?

Phosh works fine at 100%. Your problem is not the shell but that about all applications (rightfully) have tiny buttons, scrollbars, input-fields, etc. If that doesn’t bother you, you can run fine at 100% (scale 1).

With Firefox, this appears to not do anything all. All GUI elements are exactly as oversized and crowded as before, and web pages still require scroll bars.

It clearly works here. Without scale to fit:

With scale to fit enabled:

Your Firefox seems to work differently from mine. Mine does not go off-screen, therefore nothing happens when scale to fit is enabled.

To be absolutely clear:

What Firefox looks like at 200% scaling:

How I want it to look, at 100% scaling:

But then the top and bottom bar are too small, and areas like the upper menu have pointlessly large margins:

The worst is probably the lock screen, with huge margins around the keys for no reason at all. It is a bit harder to screenshot at the moment, though.

Here is the keyboard not working well at what is otherwise a comfortable medium 150%:

I want applications that heavily benefit from it to have tiny buttons. My problem is that when doing this the shell has tiny buttons too, and doesn’t adapt to it well, with areas like the lock screen ending up with huge amounts of empty space.

I think you are talking past each other. Scaling factor (200%, 175%…100%) from Settings / Display settings is different than scale to fit via the Mobile Settings app (you need to have the app, FF or other, running before using is, as it only shows switches for those).

1 Like

Scale to fit can be enabled:

But simply does not do anything:

Assuming I do not need to do something else to have it apply, at least.

Right. What I see in that last screencap is “scale to fit”, as in, it has transformed the layout to fit a vertical mobile screen - it has changed compared to your previous “FF at 200% scaling” image (look at the keyboard and textbox for instance). All the FF elements are now present. But this isn’t what you are looking for. You seem to be looking for them to be smaller and fit even more stuff there - “to fit” doesn’t do that. This is the part that Guido missed, if I understood correctly.

I’d approach this for a different direction. I’d like to have the Display scale factor to be actually usable (I’d prefer to use 150% or 175% with L5) but then A) it would have to be persistent, and B) not effect keyboard/squeekboard and the top menu.

There were similar discussions a few years back: Librem 5 scale-to-fit? and Tutorial: Create Shortcuts to Scale Display Up/Down The wlr-randr mentioned in the latter seems promising but I have no idea if it’s still usable. Do you still use scaling @amarok?

I believe you are confusing it with the 150% scaling image. The 200% scaling image does not have the keyboard or text box open; only the 150% image does. The 200% image does have Tree Style Tabs open while the new one does not though; so I (initially misunderstanding what you were saying) took a new screenshot with Tree Style Tabs open for a slightly better comparison:

Basically, for every mobile-oriented application, and especially the top menu and Squeekboard as you mention, and especially especially the lock screen, I want 200% scaling, but for anything which benefits from a lot of buttons, I want 100%. Firefox works completely correctly at 200% scaling, which is why scaling it down does nothing, but addons do not, websites have scroll bars too often, and the GUI takes up too much space, making it a much less pleasant experience than 100% or 150%.

Edit: Seeing the gsettings command in one of your very helpful links, I wonder if there is some setting I can change, either in GTK or in Firefox itself, that simply disables DPI scaling. That would probably be a quicker, easier fix than trying to figure out a way for the compositor to give a different DPI scale to different applications.

Just from usability perspective, even if the vertical would be scaled and made better (which would be nice), turning the phone and using a landscaped view is sometimes a must. Even if scaled. And even then scaling probably is needed.

Scale to fit?
Why don’t I have that option?
Have I missed an upgrade?

Not sure if you are already looking there or not, but it is in the “Mobile Settings” program rather than the “Settings” program.

Yes, the phosh-mobile-settings.

Above, it looks like there are two versions of the Compositor screen: one that has a ‘Scale to fit’ option at the top, and one that has a ‘Scale down all applications’ option at the bottom.

I recognize the latter one, not the first one. They seem to be the same option, though. Or am I wrong in thinking that?