Where does GTK get its DPI from in X11?

I have noticed that X11 calculates its DPI per monitor. We can read that by querying xdpyinfo | grep -B2 resolution.
But this doesn’t seem to be propagated to GTK as GTK always have same DPI for all monitors.
So I was wondering where does GTK obtain its DPI settings from?
I was thinking maybe I can hook into this process somehow and have multi DPI settings for my monitors?
For example if GTK asks the WM the DPI I could patch the WM to return some hardcoded values depending on which monitor the window is in?

This was discussed a few times already:
https://gitlab.gnome.org/GNOME/gtk/-/issues/1186
https://gitlab.gnome.org/GNOME/gtk/-/issues/1753

1 Like

I found a different way to fix my problem. I only use either one of my laptop screen or external screen at a time. But I would switch between the two multiple times during a day.

So all I needed was to find a way to update DPI on the fly when I’m switching monitors.

Here’s a script that I made to help me do that while also tweaking a few non Gtk apps separately to scale correctly:

I’m using i3 WM, and not Gnome DE. So I have xsettingsd in the script instead of gnome-settings-daemon. If you are adapting this script for Gnome DE, you would need to change that accordingly.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.