19

Running Ubuntu Gnome 17.04 on Lenovo yoga 2 pro. Display is 3200x1800. My desktop scales fine, and was done automatically without any configuration when installing. My login screen however, everything is tiny. How can I scale this to match my desktop?

I've tried

sudo xhost +SI:localuser:gdm
sudo su gdm -s /bin/bash
gsettings set org.gnome.desktop.interface scaling-factor 2

and no difference. Also setting large text in universal access settings seems to have no effect.

I thought this was the correct way to change gdm interface settings? Any other ideas?

rosghub
  • 291
  • 1
  • 2
  • 4

5 Answers5

29

Persistent over upgrades approach could be to create file /usr/share/glib-2.0/schemas/93_hidpi.gschema.override with

[org.gnome.desktop.interface]
scaling-factor=2
text-scaling-factor=0.87

(0.87 to make fonts bit smaller, safe to omit if you don't want to)

And reinit schemas sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Lauri
  • 446
18

Was searching for a solution as well and found this:

http://askubuntu.com/questions/469515/adjust-text-scaling-factor-for-all-users

tl/dr

sudo nano /usr/share/glib-2.0/schemas/org.gnome.desktop.interface.gschema.xml

Change the default value to 2 (or your desired scale factor):

<key name="scaling-factor" type="u">
<default>2</default>

and then running:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

This fixed it for me. Let me know if it works for you as well.

gilroy
  • 189
6

Edit: This method appears to only work when login screen and user session are using the same windowing system(X11 or Wayland). So if it doesn't work try changing your session type in the bottom-left of the login screen.

This should also work:

  1. First you change DPI settings from Gnome settings.

  2. Then execute:

    sudo cp ~/.config/monitors.xml ~gdm/.config/
    

And it should work with Ubuntu as well.

@gonk23 mentioned chown, I personally didn't find that necessary, however it should be safer to set the correct permission:

sudo chown gdm:gdm ~gdm/.config/monitors.xml 

Found a solution here.

First you change DPI settings from Gnome settings.

Then, copy

~/.config/monitors.xml

to

/var/lib/gdm/.config/monitors.xml

So the command is

sudo cp ~/.config/monitors.xml /var/lib/gdm/.config/

The advantage over recompiling configurations is that this method works on Fedora Silverblue where you got a read only /usr so editing /usr/share/ is not realistic. It also applies the user monitor refresh rate settings to login screen.

4

Don't edit the XML files directly. They are core system files which can be overwritten by OS updates!

The correct way to create custom changes that persist across upgrades is to create gschema.override files, which are explained here:

https://www.freedesktop.org/software/gstreamer-sdk/data/docs/2012.5/gio/glib-compile-schemas.html

Basically, the GSettings XML Schema compiler reads the XML files first, and then it reads all of the override files in the folder. They recommend naming the override files with nn_ where nn is a number from 00 to 99, since it reads and sorts the file list. Therefore, the higher your number prefix, the later in the file list it will be processed, and therefore the higher "priority" the override has (with 99 being maximum), since higher numbers will be applied later during the processing.

You can therefore create the following file to give your changes the maximum priority (note that the filename doesn't matter, but our 99 prefix means that it will load after all other conventional override files):

/usr/share/glib-2.0/schemas/99_hidpi.gschema.override

In that file, you need to specify the settings area you want to override, and the individual settings. To change the scaling to 200%, you would change the factor to 2. Note that fractional scaling isn't supported. Valid numbers are 0 (auto detect, this is the default and doesn't work well and usually just auto-picks 1), or explicitly defined values of 1/2/3/4 for 100/200/300/400% respectively.

You can also set a global text scaling factor in the same file, if you prefer having slightly smaller fonts in your 200% scaled GUI.

Both settings are demonstrated here:

[org.gnome.desktop.interface]
scaling-factor=2
text-scaling-factor=0.87

(The text-scaling-factor supports fractional scaling, and 0.87 will make fonts a bit smaller, but that whole line is safe to remove if you don't want to change the font scaling at all.)

After you've created your personal overrides-file, you need to recompile the GSettings database to make your settings take effect, because the actual database is binary and is created from the XML and override files. All you need is this simple command:

sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Enjoy!

PS: This was originally submitted as an edit to Lauri's answer, but StackExchange's moderators told me "Please submit a new answer with this information since the edits are substantial". So here you go! Huge thanks to Lauri for the original answer! :)

Mitch McMabers
  • 190
  • 1
  • 6
1

Expanding upon sfvdhrnu's answer, on Ubuntu 20.04 and 21.04 the /var/lib/gdm folder doesn't exist, but /var/lib/gdm3 does exist.

So the updated answer for 20.04 and 21.04 would become:

First you change DPI settings from Gnome settings, then,

sudo cp ~/.config/monitors.xml /var/lib/gdm3/.config/
sudo chown gdm:gdm /var/lib/gdm3/.config/monitors.xml   # probably optional
gonk23
  • 21