Bug 468460 - GDK applications start with 96 dpi in X11
Summary: GDK applications start with 96 dpi in X11
Status: REPORTED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_style (show other bugs)
Version: 5.27.4
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-04-13 09:21 UTC by Michal Hlavac
Modified: 2023-04-14 15:32 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
x11 screenshot (3.21 MB, image/png)
2023-04-13 09:21 UTC, Michal Hlavac
Details
kcmfonts (36 bytes, text/plain)
2023-04-13 21:14 UTC, Michal Hlavac
Details
kdeglobals (7.52 KB, text/plain)
2023-04-13 21:15 UTC, Michal Hlavac
Details
x11 screenshot firefox dolphin (1.66 MB, image/png)
2023-04-14 14:51 UTC, Michal Hlavac
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Michal Hlavac 2023-04-13 09:21:07 UTC
Created attachment 158065 [details]
x11 screenshot

Using X11 and after upgrade framework to 5.105 GDK applications (Firefox, Chrome, etc) starts with DPI 96.
As workaround I use GDK_SCALE=1 firefox

Plasma: 5.27.4
Framework: 5.105

In wayland whole desktop environment starts with dpi 96.

Force DPI font is OFF.

hlavki@hlknb:~> dump_xsettings
Gdk/UnscaledDPI 98304
Gdk/WindowScalingFactor 1
Gtk/ButtonImages 1
Gtk/CursorThemeName "breeze_cursors"
Gtk/CursorThemeSize 36
Gtk/DecorationLayout "icon:minimize,maximize,close"
Gtk/EnableAnimations 1
Gtk/FontName "Noto Sans,  8"
Gtk/MenuImages 1
Gtk/PrimaryButtonWarpsSlider 0
Gtk/ToolbarStyle 3
Net/IconThemeName "Papirus"
Net/ThemeName "Breeze"


hlavki@hlknb:~> ps aux | grep -iE 'xsettings|kded'
hlavki   22696  1.3  0.4 2202624 154352 ?      Ssl  22:22   0:01 /usr/bin/kded5
hlavki   22794  0.0  0.0   7656  4480 ?        S    22:22   0:00 /usr/bin/xsettingsd
hlavki   25977  0.0  0.0   6528  2304 pts/1    S+   22:24   0:00 grep --color=auto -iE xsettings|kded

Global Scale: 100%

Screenshot is in attachment.
Comment 1 Fushan Wen 2023-04-13 15:01:07 UTC
96 is the normal DPI for 100% global scale. What do you expect?
Comment 2 Michal Hlavac 2023-04-13 17:39:05 UTC
Ok, then I would expect that all applications run with dpi 96. Why plasma & all KDE applications run with DPI 192?
Comment 3 Nate Graham 2023-04-13 20:11:50 UTC
If your global scale is 100%, then 96 DPI is expected for GTK apps.

> Why plasma & all KDE applications run with DPI 192?
That's not expected if you've set your global scale to 100%. Can you attach your ~/.config/kcmfonts file and your ~/.config/kdeglobals file after scrubbing it of personally-identifying information?

Do you by any chance have an ~/.Xsession file that overrides the DPI in it?
Comment 4 Michal Hlavac 2023-04-13 21:14:32 UTC
Created attachment 158081 [details]
kcmfonts
Comment 5 Michal Hlavac 2023-04-13 21:15:13 UTC
Created attachment 158082 [details]
kdeglobals
Comment 6 Michal Hlavac 2023-04-13 21:15:58 UTC
'~/.Xsession': No such file or directory
Comment 7 Michal Hlavac 2023-04-13 21:17:33 UTC
The only settings I did is new file /etc/sddm.conf.d/hidpi.conf:

[Wayland]
EnableHiDPI=true

[X11]
EnableHiDPI=true
Comment 8 Nate Graham 2023-04-13 21:39:13 UTC
Thanks. All settings look correct for apps to be displayed at 100% scale.

When you said, "Why plasma & all KDE applications run with DPI 192?", what did you mean exactly? What looks wrong to alert you to an issue?
Comment 9 Michal Hlavac 2023-04-14 10:46:40 UTC
If you look on "x11 screenshot" attachment, you can see that Plasma runs with dpi 192, but Firefox uses 96. So somehow plasma knows what is real DPI of my display. So I would expect that when I run Firefox or another GTK application in plasma, it also uses dpi 192.
Why plasma in X11 detects display DPI and in Wayland doesn't? In wayland it runs completely with dpi 96.
How it will behave if I have multiple displays in Wayland with different DPI?

I am just trying to understand how it works, because it behaves differently in almost every release after 5.27.x

thank you for your hard work on plasma.
Comment 10 Michal Hlavac 2023-04-14 10:50:06 UTC
> How it will behave if I have multiple displays in Wayland with different DPI?

I meant this question how it will behave when I change the global scale to e.g. 175%. Will it adjust DPI to the display dpi?
Comment 11 Nate Graham 2023-04-14 14:03:49 UTC
It's unclear how your KDE apps are getting scaled right now. Can you open a Konsole window and paste the output of `env`?

Also, can you attach a new screenshot that shows a Dolphin window open next to a Firefox or Gedit window?
Comment 12 Michal Hlavac 2023-04-14 14:51:19 UTC
Created attachment 158104 [details]
x11 screenshot firefox dolphin
Comment 13 Michal Hlavac 2023-04-14 14:53:07 UTC
env:

SHELL=/bin/bash
SESSION_MANAGER=local/hlknb:@/tmp/.ICE-unix/2822,unix/hlknb:/tmp/.ICE-unix/2822
WINDOWID=32505869
QT_SCREEN_SCALE_FACTORS=eDP-1=1;
COLORTERM=truecolor
SDK_HOME=/usr/lib64/jvm/java
XDG_CONFIG_DIRS=/data/home/hlavki/.config/kdedefaults:/etc/xdg:/usr/local/etc/xdg:/usr/etc/xdg
LESS=-M -I -R
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
JDK_HOME=/usr/lib64/jvm/java
GTK_IM_MODULE=cedilla
MACHTYPE=x86_64-suse-linux
G_BROKEN_FILENAMES=1
HOSTNAME=hlknb
HISTSIZE=1000
binary_input=/data/home/hlavki/.sdkman/tmp/mvnd-1.0-m6-m39.bin
LANGUAGE=en_US
FROM_HEADER=
MINICOM=-c on
JAVA_ROOT=/usr/lib64/jvm/java
JAVA_HOME=/usr/lib64/jvm/java
VDPAU_DRIVER=va_gl
AUDIODRIVER=pulseaudio
JRE_HOME=/usr/lib64/jvm/java
SSH_AUTH_SOCK=/tmp/ssh-XXXXXX4KYfF6/agent.2636
GRADLE_HOME=/data/home/hlavki/.sdkman/candidates/gradle/current
CPU=x86_64
SHELL_SESSION_ID=a58314a482e24f61bc6f9ada60f6f978
JAVA_BINDIR=/usr/lib64/jvm/java/bin
ANT_HOME=/data/home/hlavki/.sdkman/candidates/ant/current
SDKMAN_CANDIDATES_DIR=/data/home/hlavki/.sdkman/candidates
XMODIFIERS=@im=local
DESKTOP_SESSION=/usr/share/xsessions/plasma5
SSH_AGENT_PID=2755
GTK_RC_FILES=/etc/gtk/gtkrc:/data/home/hlavki/.gtkrc:/data/home/hlavki/.config/gtkrc
XCURSOR_SIZE=36
GPG_TTY=/dev/pts/1
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/data/home/hlavki
QEMU_AUDIO_DRV=pa
XDG_SESSION_DESKTOP=KDE
LOGNAME=hlavki
XDG_SESSION_TYPE=x11
MANPATH=/usr/local/man:/usr/share/man
SYSTEMD_EXEC_PID=2822
XAUTHORITY=/run/user/1000/xauth_OMiiHt
LS_OPTIONS=-N --color=tty -T 0
XKEYSYMDB=/usr/X11R6/lib/X11/XKeysymDB
zip_output=/data/home/hlavki/.sdkman/tmp/mvnd-1.0-m6-m39.zip
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/data/home/hlavki/.gtkrc-2.0:/data/home/hlavki/.config/gtkrc-2.0
XNLSPATH=/usr/share/X11/nls
HOME=/data/home/hlavki
SSH_ASKPASS=/usr/libexec/ssh/ssh-askpass
LANG=sk_SK.UTF-8
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tgz=00;31:*.arc=00;31:*.arj=00;31:*.taz=00;31:*.lha=00;31:*.lz4=00;31:*.lzh=00;31:*.lzma=00;31:*.tlz=00;31:*.txz=00;31:*.tzo=00;31:*.t7z=00;31:*.zip=00;31:*.z=00;31:*.Z=00;31:*.dz=00;31:*.gz=00;31:*.lrz=00;31:*.lz=00;31:*.lzo=00;31:*.xz=00;31:*.zst=00;31:*.tzst=00;31:*.bz2=00;31:*.bz=00;31:*.tbz=00;31:*.tbz2=00;31:*.tz=00;31:*.deb=00;31:*.rpm=00;31:*.jar=00;31:*.war=00;31:*.ear=00;31:*.sar=00;31:*.rar=00;31:*.alz=00;31:*.ace=00;31:*.zoo=00;31:*.cpio=00;31:*.7z=00;31:*.rz=00;31:*.cab=00;31:*.wim=00;31:*.swm=00;31:*.dwm=00;31:*.esd=00;31:*.asf=01;35:*.avi=01;35:*.bmp=01;35:*.cgm=01;35:*.dl=01;35:*.emf=01;35:*.flc=01;35:*.fli=01;35:*.flv=01;35:*.gif=01;35:*.gl=01;35:*.jpeg=01;35:*.jpg=01;35:*.m2v=01;35:*.m4v=01;35:*.mjpeg=01;35:*.mjpg=01;35:*.mkv=01;35:*.mng=01;35:*.mov=01;35:*.mp4=01;35:*.mp4v=01;35:*.mpeg=01;35:*.mpg=01;35:*.nuv=01;35:*.ogm=01;35:*.pbm=01;35:*.pcx=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.qt=01;35:*.rm=01;35:*.rmvb=01;35:*.svg=01;35:*.svgz=01;35:*.tga=01;35:*.tif=01;35:*.tiff=01;35:*.vob=01;35:*.webm=01;35:*.webp=01;35:*.wmv=01;35:*.xbm=01;35:*.xcf=01;35:*.xpm=01;35:*.xwd=01;35:*.yuv=01;35:*.ogv=01;35:*.ogx=01;35:*.aiff=00;32:*.ape=00;32:*.aac=00;32:*.au=00;32:*.flac=00;32:*.m4a=00;32:*.mid=00;32:*.midi=00;32:*.mka=00;32:*.mp3=00;32:*.mpc=00;32:*.ogg=00;32:*.ra=00;32:*.voc=00;32:*.wav=00;32:*.wma=00;32:*.wv=00;32:*.oga=00;32:*.opus=00;32:*.spx=00;32:*.xspf=00;32:
XDG_CURRENT_DESKTOP=KDE
KONSOLE_DBUS_SERVICE=:1.44
PYTHONSTARTUP=/etc/pythonstart
KONSOLE_DBUS_SESSION=/Sessions/2
PROFILEHOME=
JBANG_HOME=/data/home/hlavki/.sdkman/candidates/jbang/current
SDKMAN_VERSION=5.16.0
OSTYPE=linux
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
QT_IM_SWITCHER=imsw-multi
LESS_ADVANCED_PREPROCESSOR=no
INVOCATION_ID=1a656a219d3a421088819d7e9ad42c73
NNTPSERVER=news
KONSOLE_VERSION=221203
GROOVY_HOME=/data/home/hlavki/.sdkman/candidates/groovy/current
MANAGERPID=2615
XSESSION_IS_UP=yes
KDE_SESSION_UID=1000
LESSCLOSE=lessclose.sh %s %s
XDG_SESSION_CLASS=user
TERM=xterm-256color
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
HOST=hlknb
XAUTHLOCALHOSTNAME=hlknb
LESSOPEN=lessopen.sh %s
USER=hlavki
COLORFGBG=15;0
KDE_SESSION_VERSION=5
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
MORE=-sl
MAVEN_HOME=/data/home/hlavki/.sdkman/candidates/maven/current
SDKMAN_DIR=/data/home/hlavki/.sdkman
CSHEDIT=emacs
DISPLAY=:0
SHLVL=1
WINDOWMANAGER=/usr/bin/startplasma-x11
PAGER=less
ANDROID_SDK_ROOT=/data/home/hlavki/Programs/Android/Sdk/
QT_IM_MODULE=xim
XDG_VTNR=7
SDKMAN_CANDIDATES_API=https://api.sdkman.io/2
XDG_SESSION_ID=3
LC_CTYPE=en_US.UTF-8
XDG_RUNTIME_DIR=/run/user/1000
DEBUGINFOD_URLS=https://debuginfod.opensuse.org/
MVND_HOME=/data/home/hlavki/.sdkman/candidates/mvnd/current
QT_AUTO_SCREEN_SCALE_FACTOR=0
JOURNAL_STREAM=8:33438
MANPATHISSET=yes
XCURSOR_THEME=breeze_cursors
XDG_DATA_DIRS=/data/home/hlavki/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
KDE_FULL_SESSION=true
VENDOR=suse
CONFIG_SITE=/usr/share/site/x86_64-pc-linux-gnu
PATH=/data/home/hlavki/Programs/google-cloud-sdk/bin:/data/home/hlavki/.sdkman/candidates/mvnd/current/bin:/data/home/hlavki/.sdkman/candidates/maven/current/bin:/data/home/hlavki/.sdkman/candidates/jbang/current/bin:/data/home/hlavki/.sdkman/candidates/groovy/current/bin:/data/home/hlavki/.sdkman/candidates/gradle/current/bin:/data/home/hlavki/.sdkman/candidates/ant/current/bin:/data/home/hlavki/.local/bin:/data/home/hlavki/bin:/usr/local/bin:/usr/bin:/bin:/data/home/hlavki/Programs/flutter/bin:/data/home/hlavki/.local/share/JetBrains/Toolbox/scripts:/data/home/hlavki/Programs/flutter/bin
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
PROFILEREAD=true
SDKMAN_PLATFORM=linuxx64
KDE_APPLICATIONS_AS_SCOPE=1
MAIL=/var/mail/hlavki
HOSTTYPE=x86_64
LESSKEY=/usr/etc/lesskey.bin
_=/usr/bin/env
Comment 14 Nate Graham 2023-04-14 15:32:55 UTC
Thanks. according to the env dump, Dolphin and Plasma are actually not being scaled at all; in fact everything on the system is being drawn with an effective DPI of 96 according to all the logging you've provided so far. But I do I notice that you're using a very small 8pt font. What *appears* to be happening is that the GTK apps are respecting this and scaling themselves down to react to that small font, while your KDE apps are not. This is weird.

But regardless, adjusting the font size is not the correct way to scale things; this setting it intended to be used only for actually making the text more or less readable once everything else is scaled to an appropriate size. i would recommend resetting the font sizes and Plasma panel thickness to their default values and scaling the system using System Settings > Display and Monitor > Global Scale.