Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use 'xrandr' to determine DPI on Linux, especially with wayland #17

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

edwintorok
Copy link
Contributor

See discussion in #16, SDL2's wayland support is not great and different versions report DPI differently based on desktop scaling.
Latest SDL2 version (at least on Fedora 37) seems to have wayland reenabled by default, but still quite problematic.

Fall back to using 'xrandr' for now, which seems to report correct DPI.

…for auto-detection"

It doesn't work consistently with different versions of SDL2+wayland.
It is either twice as big or twice as small than it should be.

This reverts commit 7dcbb6d.
SDL2+wayland in various versions reports different DPI depending on
scaling.
On some versions it reports the monitor's true DPI regardless of desktop
scale factor. In other versions it scales the monitor's DPI down based
on desktop scale factor.
However there isn't a way to detect which one it is, so the only
reliable way to get DPI on wayland ... is to rely on XWayland and xrandr
which reports all this correctly.

(or use wayland-info but that isn't always installed).

'xdpyinfo' would report a bogus 96 DPI always, so that cannot be used.

Signed-off-by: Edwin Török <[email protected]>
@edwintorok
Copy link
Contributor Author

I still need to test this in various configurations, but it should implement the basic idea discussed in the other PR.
I'll let you know when it is ready for wider testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant