[Bug 1089932] New: sddm small login menu and fonts on 4K UHD laptop display
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932 Bug ID: 1089932 Summary: sddm small login menu and fonts on 4K UHD laptop display Classification: openSUSE Product: openSUSE Distribution Version: Leap 15.0 Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: KDE Workspace (Plasma) Assignee: opensuse-kde-bugs@opensuse.org Reporter: terje@nordland-teknikk.no QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Created attachment 767467 --> http://bugzilla.opensuse.org/attachment.cgi?id=767467&action=edit sddm login menu too small with small font size While Gnome greetings is if fine size and fonts, the sddm in comparision is too small and difficult to see on 4K UHD laptop display. Attach an image. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c1
--- Comment #1 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c2
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c3
--- Comment #3 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c4
Fabian Vogt
Yes, it works a bit better.
Just a bit? It looks fine on a 4k screen here. Just as if it were 1920x1080. You can force any dpi by adding ServerArguments=-nolisten tcp -dpi 192 below EnableHiDPI=true.
But the font size on the session menus is still extremely small.
Can you take a screenshot? It works fine here (Tumbleweed though). -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c5
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c6
--- Comment #6 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c7
Fabian Vogt
Created attachment 767572 [details] sddm display with HiDPI enabled
That's not HiDPI at all. Did you try the forced DPI? What does the journal say? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c8
--- Comment #8 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c9
--- Comment #9 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c10
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c11
Fabian Vogt
Now with forced hidpi:
cat sddm.conf [XDisplay] EnableHiDPI=true ServerArguments=-nolisten tcp -dpi 192
Attach a new sddm screenshot, now with font sizes that begin to be useable on a XPS13 9370 4k 3840x2160 display.
Ok, that means your monitor's EDID is broken :-/ Nothing we can do about that, unfortunately. By editing sddm.conf you can force it to be even higher though, for 3x scaling use 3*96 = 288 for example. To confirm the broken EDID, please run "xrandr" and "hexdump -C /sys/class/drm/*/edid"
Attach also the journal log.
It says "linux-hxpp sddm-greeter[1714]: High-DPI autoscaling Enabled" as expected. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c12
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c13
--- Comment #13 from Terje J. Hanssen
Yes, 3x scaling became large enough, even without glasses :) Will something in-between also work, i.e 2.5*96=240 ?
I tested sddm.conf with ServerArguments=-nolisten tcp -dpi 240 and it worked quite fine. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c14
--- Comment #14 from Fabian Vogt
Yes, 3x scaling became large enough, even without glasses :) Will something in-between also work, i.e 2.5*96=240 ?
It might - give it a try! I don't think the detection tries to derive fractional scales though - as most displays actually have ~105 dpi instead of 96 you would get a scale of 1.1 everywhere...
If EDID is broken I can file a bug to Dell. This XPS13 9370 "developer" is pre-installed and supported with Ubuntu 16.04LTS from Dell (to which I've added Leap15 in a dualboot setup). Though I haven't discovered similar scaling problem there, Unity boots pure grahical up to its login menu. Inside the Unity desktop I've selected scale 2.0 for menus and text.
So to the output here:
xrandr Screen 0: minimum 320 x 200, current 3840 x 2160, maximum 8192 x 8192 eDP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 294mm x 165mm
That results in 332dpi x 333dpi. It should pick 2x scale at least - if not more.
3840x2160 60.00*+ 59.98 59.97 48.00 [...]
terje@linux-hxpp:~> hexdump -C /sys/class/drm/*/edid [...]
EDID says the same physical size. So no broken EDID. Which is good as we can fix software more easily! I'll try to have a look at the detection code. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c15
Fabian Vogt
unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
Which application is scaled and how? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
Ludwig Nussel
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c16
--- Comment #16 from Terje J. Hanssen
Can you try after commenting the ServerArguments
unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
Is it still the /etc/sddm.conf I should extend with those three lines like below or one single line at a time? [XDisplay] EnableHiDPI=true ServerArguments=-nolisten tcp -dpi 192 unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
(and rcxdm restart) in a X session:
Can I still do it in a Gnome session with a Gnome terminal (possibly xterm)? And how to restart rcxdm?
Which application is scaled and how?
Still inside a Gnome session? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c17
--- Comment #17 from Fabian Vogt
(In reply to Fabian Vogt from comment #15)
Sorry I fell off here and need more details about how to do these steps:
Can you try after commenting the ServerArguments
unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
Is it still the /etc/sddm.conf I should extend with those three lines like below or one single line at a time?
No, those are commands you need to run.
[XDisplay] EnableHiDPI=true ServerArguments=-nolisten tcp -dpi 192 unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
(and rcxdm restart) in a X session:
Can I still do it in a Gnome session with a Gnome terminal (possibly xterm)?
As long as it's not a wayland session, yes.
And how to restart rcxdm?
Just run "rcxdm restart" in a tty.
Which application is scaled and how?
Still inside a Gnome session?
As long as it's not a wayland session, yes. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c18
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c19
Fabian Vogt
Here is the output - not sure the ServerArguments line should be included, but I tried both with and without it.
You need to comment the line in the sddm.conf file.
Te y2controlcenter and the sddm-greeter opened in 'full screen', with normal font size as before.
What does "normal" mean?
I did not notice any change either after 'rcxdm restart' (logout).
# ServerArguments=-nolisten tcp -dpi 192 If 'tcp' is not a typo you can use command-not-found to lookup the package that contains it, like this: cnf tcp linux-hxpp:~ # unset QT_AUTO_SCREEN_SCALE_FACTOR QT_SCREEN_SCALE_FACTORS linux-hxpp:~ # QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
This means you ran it in a sudo environment, why?
linux-hxpp:~ # linux-hxpp:~ # QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c20
--- Comment #20 from Terje J. Hanssen
You need to comment the line in the sddm.conf file.
Ok, I see. 'rcxdm restart' brought up the original sddm-greeter with very small fonts
The y2controlcenter in 'full screen', with normal font size as before.
What does "normal" mean?
Unchanged with normal, human readable font size, see the new attached screenshot. (Although when I also set the Tweak font scale factor 1% up to 1.26, the y2controlcenter opened with halp size minifonts)
This means you ran it in a sudo environment, why?
Simply because 'rcxdm restart' required root access and a y2controlcenter warning said it was 'not running as root. Only modules that don't require root privileges would be visible'. By the way, attach a screenshot when the y2controlcenter is launched as user. Lastly, the sddm-greeter (test) was made great with good font size (similar like the forced scale 2.5), see the attached screenshot. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c21
--- Comment #21 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c22
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c23
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c24
--- Comment #24 from Terje J. Hanssen
It looks like your DE forces a higher font size, which has the same effect as the ServerArguments=-dpi line in sddm.conf.
Yes, in Gnome DE I use to have the setting/button 'Universal Access | Large Text ON', see the attached screenshot. 'This button' is also separately available for GDM greeter display. I attach further two new screenshots for Y2c and sddm with this setting OFF.
Can you run the commands again after running "xrdb -remove"?
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c25
--- Comment #25 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c26
--- Comment #26 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c27
--- Comment #27 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c28
--- Comment #28 from Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c29
--- Comment #29 from Terje J. Hanssen
It looks like your DE forces a higher font size, which has the same effect as the ServerArguments=-dpi line in sddm.conf.
Can you run the commands again after running "xrdb -remove"?
xrdb -remove ------------ Then came the tiny fonts, see the attached screenshots y2cc and sddm -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c30
--- Comment #30 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c31
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c32
--- Comment #32 from Terje J. Hanssen
That might not be equivalent to the xrdb command. What does "xrdb -query" say with the font option off?
I had not finished ;) the reply to xrdb came in #29-31 The last question: xrdb -query *Text.Translations: #override \n ~Shift ~Meta ~Alt <Key>Delete: delete-next-character() \n *AxeText.Translations: #override \n ~Shift ~Meta ~Alt <Key>Delete: delete-next-character() \n *XmText.Translations: #override \n ~Shift ~Meta ~Alt <Key>Delete: delete-next-character() \n ~Shift ~Meta ~Alt <Key>osfDelete: delete-next-character() \n ~Shift ~Meta ~Alt <Key>osfBackSpace: delete-previous-character() \n *XmTextField.Translations: #augment \n ~Shift ~Meta ~Alt <Key>osfDelete: delete-next-character() \n ~Shift ~Meta ~Alt <Key>osfBackSpace: delete-previous-character() \n *Form.background: grey67 *Form.foreground: black *TransientShell*Dialog.background: grey67 *TransientShell*Dialog.foreground: black *Command.background: grey77 *Command.foreground: black *MenuButton.background: grey77 *MenuButton.foreground: black *SimpleMenu*background: grey77 *SimpleMenu*foreground: black *ScrollbarBackground: grey67 *ScrollbarForeground: grey37 *Scrollbar*background: grey77 *Scrollbar*foreground: grey37 *Scrollbar*pointerColor: black *Scrollbar*pointerColorBackground: white *beNiceToColormap: False *Scrollbar*width: 15 *Scrollbar*height: 15 *Scrollbar*shadowWidth: 2 *Scrollbar*borderWidth: 2 *Scrollbar*cursorName: top_left_arrow *Scrollbar*pushThumb: false *Label*shadowWidth: 2 *Label*borderWidth: 2 *shapeStyle: Rectangle *shadowWidth: 2 *SmeBSB*shadowWidth: 2 *Toggle*highlightThickness: 2 *MenuButton*highlightThickness: 2 *Command*highlightThickness: 2 *Panner*shadowThickness: 2 *SimpleMenu*shadowThickness: 2 *topShadowContrast: 20 *bottomShadowContrast: 45 *PushThumb: False *printCommand: lpr Mwm.interactivePlacement: false Scrollbar.JumpCursor: True Ghostview.pageMedia: A4 *XConsole*text.scrollHorizontal: False *XConsole*text.wrap: line XSysinfo*.font: fixed XSysinfo*.title.label: Linx System Info XSysinfo*.title.width: 200 XSysinfo*.load.name.label: CPU Load: XSysinfo*.idle.name.label: CPU Idle: XSysinfo*.mem.name.label: Memory: XSysinfo*.swap.name.label: Swap: XSysinfo*load*bar.foreground: RosyBrown1 XSysinfo*load*bar.foreground1: IndianRed1 XSysinfo*load*bar.foreground2: OrangeRed1 XSysinfo*load*bar.foreground3: firebrick1 XSysinfo*load*bar.foreground4: pink1 XSysinfo*load*bar.foreground5: HotPink1 XSysinfo*load*bar.foreground6: DeepPink2 XSysinfo*load*bar.foreground7: maroon1 XSysinfo*load*bar.segmentGap: 1 XSysinfo*idle*bar.foreground: green XSysinfo*idle*bar.backgroud: red XSysinfo*mem*bar.foreground: tomato XSysinfo*mem*bar.foreground1: green3 XSysinfo*mem*bar.foreground2: orchid XSysinfo*swap*bar.foreground: hotpink1 XSysinfo*.background: gray50 XSysinfo*.BarGauge.background: white *basicLocale: C *timeFormat: C *numeric: C *displayLang: C *inputLang: C *customization: -color Xft.dpi: 192 Xft.antialias: 1 Xft.hinting: 1 Xft.hintstyle: hintslight Xft.rgba: none Xcursor.size: 48 Xcursor.theme: Adwaita -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c33
Fabian Vogt
(In reply to Fabian Vogt from comment #23)
It looks like your DE forces a higher font size, which has the same effect as the ServerArguments=-dpi line in sddm.conf.
Can you run the commands again after running "xrdb -remove"?
xrdb -remove ------------ Then came the tiny fonts, see the attached screenshots y2cc and sddm
Ok, that's weird. So we still fail at reproducing the original sddm issue in a desktop session. I guess that Qt's GTK platform plugin interferes here. Can you try
QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
In an icewm session? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c34
--- Comment #34 from Terje J. Hanssen
Can you try
QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
In an icewm session?
What's the difference between the 'GNOME' and 'GNOME on Xorg' sessions? I have used pure 'GNOME', to mentione that. The IceWM session was quite of an exercise because everything is so tiny. Attach here two new screenshots for y2cc and for sddm respectively. I think the the sddm screenshot here is close to the original, but I can see the little icon to the right of the password field is a little bit bigger here. (I also noticed that when I first time edited the sddm.conf and added [XDisplay] EnableHiDPI=true this icon became a little bit bigger) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c35
--- Comment #35 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c36
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c37
Fabian Vogt
(In reply to Fabian Vogt from comment #33)
Can you try
QT_AUTO_SCREEN_SCALE_FACTOR=1 /usr/lib/YaST2/bin/y2controlcenter QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE
In an icewm session?
What's the difference between the 'GNOME' and 'GNOME on Xorg' sessions? I have used pure 'GNOME', to mentione that.
That's Wayland, which is wrong for our tests. On wayland, scaling is handled entirely different compared to X11.
The IceWM session was quite of an exercise because everything is so tiny. Attach here two new screenshots for y2cc and for sddm respectively.
I think the the sddm screenshot here is close to the original, but I can see the little icon to the right of the password field is a little bit bigger here.
(I also noticed that when I first time edited the sddm.conf and added [XDisplay] EnableHiDPI=true this icon became a little bit bigger)
Ok, that means SDDM and Qt applications detect HiDPI just fine, but something else overwrites the X DPI with 96. Please try the sddm-greeter command on IceWM again, but after xrdb -remove. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c38
--- Comment #38 from Terje J. Hanssen
(In reply to Terje J. Hanssen from comment #34)
What's the difference between the 'GNOME' and 'GNOME on Xorg' sessions? I have used pure 'GNOME', to mentione that.
That's Wayland, which is wrong for our tests. On wayland, scaling is handled entirely different compared to X11.
The following Gnome and Plasma entries arise on the session menu: GNOME on Xorg GNOME Plasma Plasma (Wayland) - and two GNOME or two Plasma instances dependent if it is a GDM greeter or sddm greeter I would say the following syntax would be more consequent and univocally: GNOME (Xorg) GNOME (Wayland) Plasma (Xorg) Plasma (Wayland)
Please try the sddm-greeter command on IceWM again, but after xrdb -remove.
I attach a new screenshot here for sddm-greeter. If wanted I can also attach new y2cc and sddm-greeter screenshots for Gnome (Xorg)? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c39
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c40
--- Comment #40 from Fabian Vogt
Created attachment 767905 [details] sddm-greeter on IceWM after xrdb -remove
That's with QT_AUTO_SCREEN_SCALE_FACTOR=1, right? If so, I don't actually know how this could happen as the font normally scales accordingly. I'll ask upstream for some help here. Do you have multiple monitors connected? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c41
--- Comment #41 from Terje J. Hanssen
(In reply to Terje J. Hanssen from comment #39)
Created attachment 767905 [details] sddm-greeter on IceWM after xrdb -remove
That's with QT_AUTO_SCREEN_SCALE_FACTOR=1, right?
Yes, I do it once more below, first on Gnome DE and then on IceWM with all output and new screenshots attached.
If so, I don't actually know how this could happen as the font normally scales accordingly. I'll ask upstream for some help here.
Do you have multiple monitors connected?
No, it's only the built-in 13.3 inch monitor for the Dell XPS13 ultrabook (2018). See also the xrandr output #12 above. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c42
--- Comment #42 from Terje J. Hanssen
Devices > Monitors show Built-in monitor 3840x2160 has Scale set to 200%
xrdb -remove QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode --theme /usr/share/sddm/themes/breeze-openSUSE [15:03:34.635] (II) GREETER: High-DPI autoscaling Enabled [15:03:34.775] (II) GREETER: Reading from "/usr/share/xsessions/gnome-xorg.desktop" [15:03:34.775] (II) GREETER: Reading from "/usr/share/xsessions/gnome.desktop" [15:03:34.775] (II) GREETER: Reading from "/usr/share/xsessions/icewm-session.desktop" [15:03:34.776] (II) GREETER: Reading from "/usr/share/xsessions/icewm.desktop" [15:03:34.776] (II) GREETER: Reading from "/usr/share/xsessions/plasma5.desktop" [15:03:34.776] (II) GREETER: Reading from "/usr/share/xsessions/twm.desktop" [15:03:34.776] (II) GREETER: Reading from "/usr/share/wayland-sessions/gnome.desktop" [15:03:34.777] (II) GREETER: Reading from "/usr/share/wayland-sessions/plasmawayland.desktop" [15:03:34.778] (II) GREETER: Loading theme configuration from "/usr/share/sddm/themes/breeze-openSUSE/theme.conf" [15:03:34.783] (EE) GREETER: Socket error: "QLocalSocket::connectToServer: Invalid name" [15:03:34.827] (II) GREETER: Loading file:///usr/share/sddm/themes/breeze-openSUSE/Main.qml... [15:03:34.867] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:34.868] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:34.868] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:34.868] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:34.868] (WW) GREETER: QObject::installEventFilter(): Cannot filter events for objects in a different thread. [15:03:34.869] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:35.175] (WW) GREETER: QObject: Cannot create children for a parent that is in a different thread. (Parent is QGuiApplication(0x7ffcf7e05a80), parent's thread is QThread(0x55e5d27fc830), current thread is QThread(0x55e5d2a88db0) [15:03:35.175] (WW) GREETER: QObject::installEventFilter(): Cannot filter events for objects in a different thread. [15:03:35.391] (WW) GREETER: file:///usr/share/sddm/themes/breeze-openSUSE/components/VirtualKeyboard.qml:20:1: module "QtQuick.VirtualKeyboard" is not installed [15:03:35.520] (II) GREETER: Adding view for "eDP-1" QRect(0,0 1280x720) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c43
--- Comment #43 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c44
--- Comment #44 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c45
--- Comment #45 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c46
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c47
--- Comment #47 from Terje J. Hanssen
I think I can finally reproduce the issue. It happened while using nouveau on a workstation, but not with the proprietary nvidia driver.
In comparision my XPS13 integrated Intel UHD Graphics 620 lspci -nnk | grep VGA -A2 00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:5917] (rev 07) Subsystem: Dell Device [1028:07e6] Kernel driver in use: i915
Please confirm that these two commands (in icewm, after xrdb -remove and the -dpi line in sddm.conf commented out) produce the same output:
QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_SCREEN_SCALE_FACTORS= sddm-greeter --test-mode ---theme /usr/share/sddm/themes/breeze-openSUSE QT_FONT_DPI=96 QT_AUTO_SCREEN_SCALE_FACTOR=0 QT_SCREEN_SCALE_FACTORS=2 sddm-greeter --test-mode ---theme /usr/share/sddm/themes/breeze-openSUSE
They do, as far as I can see on the two attached screenshots respectively: 20_45.png 20_51.png
And please confirm that this command produces a usable sddm scale:
QT_FONT_DPI=192 QT_AUTO_SCREEN_SCALE_FACTOR=1 sddm-greeter --test-mode ---theme /usr/share/sddm/themes/breeze-openSUSE
It does, see the third attached screenshot 20_55.png There was one '-' too much in front of '--theme' -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c48
--- Comment #48 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c49
--- Comment #49 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c50
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c51
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c52
Michal Srb
As the DPI is not overwritten by starting Xorg with "-dpi", I expect the logical and physical DPI to be the same -> reassining to X.
AFAIK this is usual X server behavior. If it is not given the -dpi parameter, it defaults to 96 dpi for calculating (guessing) the screen physical size. The reasoning is that the screen physical size is meaningless whenever you have more than one monitor connected. It is there mostly for backwards compatibility. The proper source of information is the physical size of the individual outputs. I can imagine that the screen physical size could replicate the output size when only single output is connected (maybe that's what the nvidia driver does), but there may be issues when monitors connect/disconnect. Ideally sddm/Qt should consider only the information from the outputs. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c53
--- Comment #53 from Fabian Vogt
(In reply to Fabian Vogt from comment #51)
As the DPI is not overwritten by starting Xorg with "-dpi", I expect the logical and physical DPI to be the same -> reassining to X.
AFAIK this is usual X server behavior. If it is not given the -dpi parameter, it defaults to 96 dpi for calculating (guessing) the screen physical size. The reasoning is that the screen physical size is meaningless whenever you have more than one monitor connected. It is there mostly for backwards compatibility.
That's pretty broken IMO. If the size is meaningless anyway, it should be omitted.
The proper source of information is the physical size of the individual outputs.
I can imagine that the screen physical size could replicate the output size when only single output is connected (maybe that's what the nvidia driver does), but there may be issues when monitors connect/disconnect. Ideally sddm/Qt should consider only the information from the outputs.
Qt uses the virtual DPI to calculate the font size, so that it can be overwritten with -dpi. That is intentional and got introduced specifically to allow the override. The best option is to have the size be the actual physical size of the whole screen (so addition of monitor edges) and virtual size. That way the calculated DPI is roughly the average. If we expect HiDPI to work properly, we can't just let X send fake values to applications by default. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c54
Michal Srb
That's pretty broken IMO. If the size is meaningless anyway, it should be omitted.
It is part of the core X protocol, so it can not be removed. Sending values corresponding to 96 DPI is a reasonable fallback for legacy applications that still use it.
Qt uses the virtual DPI to calculate the font size, so that it can be overwritten with -dpi. That is intentional and got introduced specifically to allow the override.
That is not the wisest choice. A better choice would be to take DPI of an output (the primary output for a window that can be moved around or a specific one for window that fixed to the output). If the size should be configurable, then that value could be multiplied by some factor configurable in Qt. I realize that it may be hard to push such change to Qt, but it is equally hard to advocate the change you want in X server.
The best option is to have the size be the actual physical size of the whole screen (so addition of monitor edges) and virtual size. That way the calculated DPI is roughly the average.
There is no way of knowing the size of the monitor edge, but some kind of heuristic could be done based on the sizes of the monitor screens and their relative placement. But at best we would get some average DPI which would look wrong on all monitors. X server used to just replicate the DPI of the "first" monitor. That was changed in 2009 to the fixed 96 DPI. Someone opened bug opposing it: https://bugs.freedesktop.org/show_bug.cgi?id=23705 X developers declared that the behavior is correct and not a bug, but the comments are still coming until recently. The latest conclusion is that applications should not use the screen's DPI value, but the output's DPI values. A patch was proposed to even change xdpyinfo to not display that value anymore: https://patchwork.freedesktop.org/patch/156651/ That again sparkled long discussion. Quoting one relevant comment from it:
The root of the issue is that in the case of multiple monitors with potentially inconsistent DPI values, the core protocol value is ambiguous at best. It also has the downside that its value is only communicated at connection time, so it doesn't dynamically change even when the circumstances change (e.g. resolution change, move to a different output with a different DPI, etc). Clients need to be aware of the possibilities that different outputs may have different DPI values, and that the values can change, and that requires RANDR support and listening to the appropriate change notification masks.
...
Now one could argue that in the case of single output X11 could automatically set the DPI to the one of the only connected output (something I actually agree with), but that's (a) a separate issue and (b) not without its downsides (e.g. should it automatically change whenever the output changes? what should be done when a new output gets connected? what should be done when an output gets disconnected and we're left with one output again? etc).
If we expect HiDPI to work properly, we can't just let X send fake values to applications by default.
The real values can be retrieved from randr. Especially in the sddm case that should be the preferred source of information - as I understand it, sddm creates a separate login screen for every output, so it should scale the fonts on each output based on that output's DPI. That should give better looking results than using some average value of all of them. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c55
--- Comment #55 from Fabian Vogt
(In reply to Fabian Vogt from comment #53)
That's pretty broken IMO. If the size is meaningless anyway, it should be omitted.
It is part of the core X protocol, so it can not be removed. Sending values corresponding to 96 DPI is a reasonable fallback for legacy applications that still use it.
Sure, by ommitted I meant 0x0 or not touched by anything. Having a broken default which any user on non 96-dpi must change is just bad. It's even broken by design: There is no way to tell whether it's actually 96dpi or the user forced it.
Qt uses the virtual DPI to calculate the font size, so that it can be overwritten with -dpi. That is intentional and got introduced specifically to allow the override.
That is not the wisest choice. A better choice would be to take DPI of an output (the primary output for a window that can be moved around or a specific one for window that fixed to the output). If the size should be configurable, then that value could be multiplied by some factor configurable in Qt.
Well, Xft.dpi exists for that reason, doesn't it? IMO there is really no reason for X to report wrong values not only by default, but always. There is no way except by DEs to override it using Xft.dpi. If there were a switch like "-dpi auto" it would be fine.
I realize that it may be hard to push such change to Qt, but it is equally hard to advocate the change you want in X server.
There is currently a rather big list of things they want to improve, maybe this is among the items. This is the commit which made the decision: https://github.com/qt/qtbase/commit/1a31561178d9cb9e5a6f3f986075df24ea5705ff
The best option is to have the size be the actual physical size of the whole screen (so addition of monitor edges) and virtual size. That way the calculated DPI is roughly the average.
There is no way of knowing the size of the monitor edge, but some kind of heuristic could be done based on the sizes of the monitor screens and their relative placement. But at best we would get some average DPI which would look wrong on all monitors.
Yes, but that's better than 96dpi, which also looks wrong on all monitors. It's much worse actually as it is unreadable on all monitors. Once a DE sets Xft.dpi: <dpi of primary monitor>, applications look fine. As most DEs do that, I would say that autodetection is a proven default.
X server used to just replicate the DPI of the "first" monitor. That was changed in 2009 to the fixed 96 DPI. Someone opened bug opposing it:
Makes sense to me. I think upstream developers are unreasonable there.
X developers declared that the behavior is correct and not a bug, but the comments are still coming until recently. The latest conclusion is that applications should not use the screen's DPI value, but the output's DPI values. A patch was proposed to even change xdpyinfo to not display that value anymore:
https://patchwork.freedesktop.org/patch/156651/
That again sparkled long discussion. Quoting one relevant comment from it:
[...]
If we expect HiDPI to work properly, we can't just let X send fake values to applications by default.
The real values can be retrieved from randr. Especially in the sddm case that should be the preferred source of information - as I understand it, sddm creates a separate login screen for every output, so it should scale the fonts on each output based on that output's DPI. That should give better looking results than using some average value of all of them.
The issue is that Qt does font rendering in a way which has to work across all platforms - all have a global font scale (=Xft.dpi = QT_FONT_DPI = X virtual DPI) and a per-screen device pixel ratio. That the global font scale on X is by default forced to 96dpi doesn't fit into that model at all. I'll try to come up with an ugly hack in sddm to work around this, but for any change to Qt we're too late in the release process. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c56
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c57
Michal Srb
Reported in the Qt bugtracker as https://bugreports.qt.io/browse/QTBUG-67928.
Thank you.
@msrb: What's the best way to get the actual DPI of the primary monitor using xrandr, preferably using the CLI? I'll have to set QT_FONT_DPI before using Qt classes.
Using the CLI, I would go for something like this: xrandr | awk 'match($0, /primary.* ([0-9]+)x([0-9]+).* ([0-9]+)mm x ([0-9]+)mm/, a) { print int(sqrt(a[1]*a[1] + a[2]*a[2]) / sqrt(a[3]*a[3] + a[4]*a[4]) * 25.4) }' It pulls the information from a line like this:
DVI-I-1 connected primary 1200x1920+0+0 left (normal left inverted right x axis y axis) 474mm x 296mm
Note that the X and Y in the "1200x1920" may be flipped in case of rotation (like in this example), while the physical dimensions "474mm x 296mm" are always in the same order, so calculating the DPI from the diagonal is easy way to get the right number no matter if the monitor is rotated. It will also give you correct value in case the output is scaled. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
Ignaz Forster
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c58
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c59
Terje J. Hanssen
Please test https://download.opensuse.org/repositories/home:/Vogtinator:/branches:/ openSUSE:/Leap:/15.0/standard.
Without any ServerArguments in /etc/sddm.conf or any other configuration everything should work correctly OOTB.
I've tested your repo successful by upgrading three different machines ): 1. Dell XPS13 13.3 inch UHD 3840x2160 The sddm menu and fonts are scaled fine to about dual size the original 2. Asus workstation 27 inch screen WQHD 2560x1440 The sddm menu and fonts looks to be kept unchanges as previously 3. HP 8710w laptop 17" HD 1920x1200 The sddm menu and fonts looks to be kept unchanges as previously
(Make sure that Xft.dpi is not forced to 96 by your DE though)
Not sure how the latter should be verified and how it will incluence the sddm menu/fonts(?) -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c60
Fabian Vogt
(In reply to Fabian Vogt from comment #58)
Please test https://download.opensuse.org/repositories/home:/Vogtinator:/branches:/ openSUSE:/Leap:/15.0/standard.
Without any ServerArguments in /etc/sddm.conf or any other configuration everything should work correctly OOTB.
I've tested your repo successful by upgrading three different machines ):
1. Dell XPS13 13.3 inch UHD 3840x2160 The sddm menu and fonts are scaled fine to about dual size the original 2. Asus workstation 27 inch screen WQHD 2560x1440 The sddm menu and fonts looks to be kept unchanges as previously 3. HP 8710w laptop 17" HD 1920x1200 The sddm menu and fonts looks to be kept unchanges as previously
Yay!
(Make sure that Xft.dpi is not forced to 96 by your DE though)
Not sure how the latter should be verified and how it will incluence the sddm menu/fonts(?)
It's not about SDDM, but Qt applications you run which use autoscaling. Like VLC, VirtualBox or various KDE applications. Can you give some of those a try to confirm that this patch doesn't break in any corner cases? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c61
--- Comment #61 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c62
--- Comment #62 from Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c63
Terje J. Hanssen
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c64
--- Comment #64 from Fabian Vogt
First I attach a screenshot of the sddm-greeter in testmode on xps13. Identical sizes on gnome and IceWM I will say.
Mostly I use Gnome DE.
The VLC menus looks twice as big as it should be on the xps13 gnome DE, maybe dual line space between menu text entries(?)
On GNOME the patch shouldn't have any effect at all, as GNOME sets Xft.dpi to 96*scale, which overrides the monitor DPI (unless on multimonitor).
On the other machines the VLC menus looks to be normal, so also on other DE. Not a big deal for me, but attach a screenshot on xps13/gnome.
Tested also K3b which seems normal on all machines in Gnome.
Some more testing revealed that the fixed logical DPI is used on unscaled applications as well, which means that for instance YaST looks out of place now without Xft.dpi overrides... As there's several pros and cons about this, I suggest a middle way and only submit the patch to TW for now. I'll request a release notes entry for Leap 15. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
Fabian Vogt
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932#c65
--- Comment #65 from Terje J. Hanssen
(In reply to Terje J. Hanssen from comment #61)
On GNOME the patch shouldn't have any effect at all, as GNOME sets Xft.dpi to 96*scale, which overrides the monitor DPI (unless on multimonitor).
Ok, I did install VLC now on Leap15, so I don't know how it behaved before the patch.
Some more testing revealed that the fixed logical DPI is used on unscaled applications as well, which means that for instance YaST looks out of place now without Xft.dpi overrides...
As there's several pros and cons about this, I suggest a middle way and only submit the patch to TW for now.
I'll request a release notes entry for Leap 15.
I didn't mentione I also launched YaST on XPS13/Gnome and didn't notice something wrong. What I now discover, is that YaST not longer seem to switch to tiny fonts and icons in Gnome DE on xps13, when extending the Gnome Tweak scale as I reported in a separate bug https://bugzilla.opensuse.org/show_bug.cgi?id=1089886 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1089932
Felix Miata
participants (1)
-
bugzilla_noreply@novell.com