When I open Breeze theme in Plasma Theme Viewer and select widgets/lineedit item, I can't see any text I type into a preview. As if the font color is white. Characters are certainly get typed in, because I can select them (the white space corresponding to them), copy&paste, etc. At first, I had this problem only in kscreenlocker_greet password prompt and was thinking that it is a feature. However, after updating to recent Plasma, the KRunner's input field also started having this issue. This is why I'm suspecting QtQuick. SOFTWARE VERSIONS KDE Plasma Version: 5.12.5 KDE Frameworks Version: 5.50.0 Qt Version: 5.11.1
*** This bug has been marked as a duplicate of bug 396813 ***
This is not a duplicate. I'm talking about not a placeholder text, but the text that is typed into lineedit. Anyway, applying workaround patch from referenced bug changes nothing in my case. In fact, this patch is already applied.
Does it happen for a new user?
Yes, these lineedits don't display entered text for newly created user too.
Dear Bug Submitter, This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information. For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed. Thank you for helping us make KDE software even better for everyone!
Forgot to set Status to REPORTED.
Another FreeBSD user met the same bug when using SDDM: http://www.ulbsd.ru/devel/sddm1.png vs http://www.ulbsd.ru/devel/sddm2.png The interesting thing is that everything works fine when he uses nvidia proprietary driver. However, when switching to VESA driver, the bug appears. On my side, I run intel driver, so I think this is FreeBSD- or driver-specific prolem. Feel free to close this bug, but any input would be really helpful.
That's not the Breeze theme that's depicted there... Probably a downstream issue of some sort.
I investigated the problem. And it is not driver bug. If you use "renderType: Text.NativeRendering" for all text fields, the bug disappears and everything looks fine. For example, for lockcreen, you can make the following changes to the MineBlock.qml file: 1. Add to the top import QtQuick.Controls.Styles.Plasma 2.0 as Styles 2. Add to the PlasmaComponents.TextField Styles.TextFieldStyle { renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering } Also, you cannot use the ShaderEffect if the VESA driver is used. I deleted it from the UserDelegate.qml. The same problems in the qml source files of sddm. I made a lot of changes to these files regarding renderType and the problem for me was solved. These problems do not depend on the theme (Breeze or not - does not matter), because the problem is in the SddmComponents qml files. For all text fields, you need to add a renderType property.
I made a mistake in the previous comment. It should be not MineBlock.qml, but MainBlock.qml.
These comments don't make sense together. >Yes, these lineedits don't display entered text for newly created user too. > If you use "renderType: Text.NativeRendering" for all text fields, the bug disappears Which would be the default for a new user
(In reply to Serge Volkov from comment #9) > > 1. Add to the top > import QtQuick.Controls.Styles.Plasma 2.0 as Styles > 2. Add to the PlasmaComponents.TextField > Styles.TextFieldStyle { > renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : > Text.NativeRendering > } Maybe I did something wrong, but this didn't help me. Characters in screenlocker's textbox are still invisible.
(In reply to David Edmundson from comment #11) > These comments don't make sense together. > > >Yes, these lineedits don't display entered text for newly created user too. > > > If you use "renderType: Text.NativeRendering" for all text fields, the bug disappears > > Which would be the default for a new user I made this comment because my problems with sddm and screenlocker look the same. See https://mail.kde.org/pipermail/kde-freebsd/2018-November/030091.html
(In reply to Gleb Popov from comment #12) > (In reply to Serge Volkov from comment #9) > > > > 1. Add to the top > > import QtQuick.Controls.Styles.Plasma 2.0 as Styles > > 2. Add to the PlasmaComponents.TextField > > Styles.TextFieldStyle { > > renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : > > Text.NativeRendering > > } > > Maybe I did something wrong, but this didn't help me. Characters in > screenlocker's textbox are still invisible. Please, write to me by e-mail sv at ulbsd.ru. I will explain in Russian.
I continued to investigate and found that the problem is even deeper. If I use a VESA driver and go into System Settings -> Desktop Behavior -> Desktop Effects, then there is no text in the list of effects. And I think that there are many such components in plasma5 desktop. I found a solution here https://stackoverflow.com/questions/43369016/can-i-globally-switch-to-native-text-rendering-in-qt-quick-controls-2 And I compiled x11-toolkits/qt5-declarative with DEFINES+=QT_QUICK_DEFAULT_TEXT_RENDER_TYPE=NativeTextRendering and the text has become visible in System Settings -> Desktop Behavior -> Desktop Effects. But in some other places (such as clock or password field on Breeze Lockscreen) the text did not appear. I think that in some places of source code plasma5 components the rendering type is hard coded as Text.QtRendering. And this can not be changed to Text.NativeRendering. This is a big problem!
Are you using a non-integer scale factor?
I do not use anything. I do not develop any software. Now I write as a simple user of plasma5. I just use the VESA driver in the xorg. In the VESA driver there is no support for opengl. I think this is related to this.
(In reply to Gleb Popov from comment #12) > (In reply to Serge Volkov from comment #9) > > > > 1. Add to the top > > import QtQuick.Controls.Styles.Plasma 2.0 as Styles > > 2. Add to the PlasmaComponents.TextField > > Styles.TextFieldStyle { > > renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : > > Text.NativeRendering > > } > > Maybe I did something wrong, but this didn't help me. Characters in > screenlocker's textbox are still invisible. My mistake. Add to the /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/MainBlock.qml file: 1. Add to the top import QtQuick.Window 2.2 import QtQuick.Controls.Styles.Plasma 2.0 as Styles 2. Add after PlasmaComponents.TextField { Styles.TextFieldStyle { renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering } And delete Mainblock.qmlc file.
(In reply to Serge Volkov from comment #18) > And delete Mainblock.qmlc file. Where is it located? I have no .qmlc files in /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen
Again I was wrong. Add to the /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/lockscreen/MainBlock.qml file: 1. Add to the top import QtQuick.Window 2.2 import QtQuick.Controls.Styles.Plasma 2.0 as Styles 2. Add after PlasmaComponents.TextField { style: Styles.TextFieldStyle { renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering } And delete Mainblock.qmlc file.
(In reply to Gleb Popov from comment #19) > (In reply to Serge Volkov from comment #18) > > And delete Mainblock.qmlc file. > > Where is it located? I have no .qmlc files in > /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/ > lockscreen Does this directory exist? If exists, what files are there?
(In reply to Serge Volkov from comment #21) > (In reply to Gleb Popov from comment #19) > > (In reply to Serge Volkov from comment #18) > > > And delete Mainblock.qmlc file. > > > > Where is it located? I have no .qmlc files in > > /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/ > > lockscreen > > Does this directory exist? If exists, what files are there? It has MainBlock.qml, which I edited, but not MainBlock.qmlc. There are only .qml files.
(In reply to Gleb Popov from comment #22) > (In reply to Serge Volkov from comment #21) > > (In reply to Gleb Popov from comment #19) > > > (In reply to Serge Volkov from comment #18) > > > > And delete Mainblock.qmlc file. > > > > > > Where is it located? I have no .qmlc files in > > > /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/ > > > lockscreen > > > > Does this directory exist? If exists, what files are there? > > It has MainBlock.qml, which I edited, but not MainBlock.qmlc. There are only > .qml files. It is OK. Edit this file (comment 20). And check lockscreen.
In reply to Nate Graham from comment #16) > Are you using a non-integer scale factor? I check System Settings -> Display and Monitor -> Displays -> Scale Display. Scale factor equal 1. If I use VESA driver and default qt5-declarative package, then I see that http://www.ulbsd.ru/devel/rendering_vesa_default.png If I use VESA driver and qt5-declarative package compiled with QT_QUICK_DEFAULT_TEXT_RENDER_TYPE=NativeTextRendering, then I see that http://www.ulbsd.ru/devel/rendering_vesa_native.png If I change scale factor to 1.1 in System Settings, then all elements increase their size. But in the program (for example lockscreen) Screen.devicePixelRatio parameter is always equal to 1 regardless of the scale factor in System Settings. I do not understand anything. Maybe I have Qt5 version with bugs? My version is 5.11.2.
(In reply to Serge Volkov from comment #23) > (In reply to Gleb Popov from comment #22) > > (In reply to Serge Volkov from comment #21) > > > (In reply to Gleb Popov from comment #19) > > > > (In reply to Serge Volkov from comment #18) > > > > > And delete Mainblock.qmlc file. > > > > > > > > Where is it located? I have no .qmlc files in > > > > /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/ > > > > lockscreen > > > > > > Does this directory exist? If exists, what files are there? > > > > It has MainBlock.qml, which I edited, but not MainBlock.qmlc. There are only > > .qml files. > > It is OK. Edit this file (comment 20). And check lockscreen. These are the same instructions you gave me in #9-10. I already done that in comment #12 and it didn't helped me. Your issue is different from mine.
(In reply to Gleb Popov from comment #25) > (In reply to Serge Volkov from comment #23) > > (In reply to Gleb Popov from comment #22) > > > (In reply to Serge Volkov from comment #21) > > > > (In reply to Gleb Popov from comment #19) > > > > > (In reply to Serge Volkov from comment #18) > > > > > > And delete Mainblock.qmlc file. > > > > > > > > > > Where is it located? I have no .qmlc files in > > > > > /usr/local/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/ > > > > > lockscreen > > > > > > > > Does this directory exist? If exists, what files are there? > > > > > > It has MainBlock.qml, which I edited, but not MainBlock.qmlc. There are only > > > .qml files. > > > > It is OK. Edit this file (comment 20). And check lockscreen. > > These are the same instructions you gave me in #9-10. I already done that in > comment #12 and it didn't helped me. Your issue is different from mine. Only comment 20 contains the correct code. The previous comments contain errors. Also try to use "renderType: Text.NativeRendering" instead "renderType: Screen.devicePixelRatio % 1 !== 0 ? Text.QtRendering : Text.NativeRendering" Also you can download modified MainBlock.qml http://www.ulbsd.ru/devel/MainBlock.qml and try it. Also tell me, please, do you have a problem from comment 24?
I have been looking for a solution to the problem for a long time. Finally, I found a solution. Adding a line QML_DISABLE_DISTANCEFIELD=1; export QML_DISABLE_DISTANCEFIELD to the /etc/xprofile solved all the problems. Now all the text is displayed normally everywhere.
(In reply to Serge Volkov from comment #27) > I have been looking for a solution to the problem for a long time. Finally, > I found a solution. Adding a line > > QML_DISABLE_DISTANCEFIELD=1; export QML_DISABLE_DISTANCEFIELD > > to the /etc/xprofile solved all the problems. Now all the text is displayed > normally everywhere. I confirm that it is a working workaround for me too.
Created attachment 119066 [details] Plasma Theme Explorer on startup
Created attachment 119067 [details] Scroll down to widgets/lineedit
Created attachment 119068 [details] .. enter text
It's called "Plasma Theme Explorer" now, in Plasma 5.13.3 from a local poudriere build. I can't reproduce this with my regular user (admittedly, this user probably has a lot of crufty configuration from years of use) and the drm-kmod graphics drivers (Intel). I see the VESA driver mentioned a few times in this report, so I'd have to swap out some configurations (or give it a try in a VM) to see what's going on.
I tried removing QML_DISABLE_DISTANCEFIELD after updating to recent video driver+plasma, but the bug is still here for me. Note I'm using Intel driver (drm-kmod), not VESA one.
I confirm. The problem still exists in many dialog windows and in SDDM login screen with VESA and Intel (drm-kmod) drivers. I tested on Intel Core i5 2500 CPU. Only using the nvidia driver with nvidia GPU or using QML_DISABLE_DISTANCEFIELD with other graphics drivers solves the problem. ------ FreeBSD 12.0-RELEASE-p3 (amd64), KDE Plasma 5.15.3, KDE Frameworks 5.56.0, Qt 5.12.1
Can you people having this issue try to change your LC_NUMERIC to a locale with "." as a decimal separator? and with LC_ALL unset... Remember to delete the cached shaders in ~/.cache/qtshaders and ~/.cache/mesa_shader_cache Also see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237662
Turned out to be mesa bug, fixed upstream.