Page MenuHomeLubuntu Development

improve theming
Open, NormalPublic


As can seen on this support issue, we've got several problems with theming. Unified theming would be an ultimate goal, but that's probably going to take a lot more work. In the interim, clearly Kvantum provided a solution for this this user's immediate needs. @rikmills suggests there may be reason to avoid it, though. @Noumeno suggests qt5ct which seems nice and simple. We should investigate these further and make a choice.

Event Timeline

wxl triaged this task as Normal priority.Dec 15 2019, 1:16 AM
wxl created this task.
wxl added a parent task: T100: Lubuntu 20.04.

I found out that with breeze qt style is quite easy to change between dark and light breeze color schemes
The color schemes are in: /usr/share/color-schemes
and to used one it need to be copied to ~/.config/kdeglobals
so this make the magic happen:
cp /usr/share/color-schemes/BreezeDark.colors ~/.config/kdeglobals
(restart pcmanfm-qt icluiding --desktop for it to be seen in pcmanfm-qt) and to revert erease kdeglobals or:
cp /usr/share/color-schemes/Breeze.colors ~/.config/kdeglobals

We could implement this as a pyqt (fancier than a bash script) app but it is pretty quirky. Any thoughts?

There is also this: kcmshell5 breezestyleconfig
which in our case doesn't do much. And apparently kcmshell5 colors change the colors of the scheme but it need plasmoid.

However, this is how the in menu search looks with breeze dark, lubuntu arc, papirus-dark.

Something must be changed in LXQt Theme Lubuntu Dark, this works in /usr/share/lxqt/themes/Lubuntu Arc/lxqt-panel.qss, removing (text):
#MainMenu ActionView {

border: none;
background: palette(text);
color: #D2D8E0;

change background:
#MainMenu ActionView {

border: none;
background: palette;
color: #D2D8E0;


which produces:

and works in breeze normal too.

Ok, I made 2 changes to better match the whole theme. Changes are background color and selected. I put the same of the menu.
Please tell me if you like it to upload the changes to phab.

Changes are:
in MainMenu ActionView:

background: rgb(64, 69, 82);

in MainMenu ActionView::item:selected, ActionView::item:hover:

background: #5294e2;

So, this small script let the user choose different color-schemes for Breeze.

Currently apps needs to be restarted for them to apply (including the script gui) and in case of pcmanfm-qt it need not be restarted in teh session (because it handles the desktop to).
Please your comments if you find it interesting or not.

To make this a little neater to review, I created a paste. See P65.

In T137#3092, @wxl wrote:

To make this a little neater to review, I created a paste. See P65.


added a restart app when apply so user can see the effects

I have removed qt5ct and now I use the Hans script, I like it better ....

That looks pretty nice @hmollercl That script seems to work pretty well. One question; what is the difference between Breeze, HighContrast Breeze and Breeze Light. They all seem pretty similar.

Please remove the commented out code. It is not executed and therefore not needed.

Instead of

self.confFile = Path(str(Path.home()) + "/.config/kdeglobals")

you should use

self.confFile = Path(Path.home() / ".config/kdeglobals")

With line 114 of P65 I get a "PermissionError: [Errno 13]" when I click a second time on "Apply". I have executed the script with python3

Another nice addition: Try to make it localisable. Now, it is hardcoded in English and therefore a bit limited in usability.

@kc2bez I believe that those other themes make differences in kwin (or maybe plama?), so we don't see it. This "color-schemes" files are from kde and have more than the colors, you cal look at those files and see.

@apt-ghetto thanks for your comments, this is only and MVP, that's why there is still commented code there, the idea is to test how you like it to formalize it. Thanks for the Path() tip. You have some resources or docs about how to make it localizable? I tried to find once for update-notifier, which is also hardcoded in english, but didn't found something usefull. I believe that software-properties-qt has also some things hardcoded in english that would be nice to change.

Finally I could solve the test issue, here is the code
If we create a phab repo we could add it there.

I added support for menu transparency in my opinion it is ready. but sin it have so much text I'm trying (without success) to internationalize it with gettext, I have .pot and .po files and I'm using dh-translation but I haven't found concrete documentation on how to handle it, I've tried to imitate what software-properties does without success. If someone could guide me it would be nice.

The code is here

Upstream has added theming options at this stage is less than the hack of use color-schemes.
But apparently mi idea of using kdeglobals won't work with a new LXQt release.

since LxQt 0.16 the colors can be changed individually, but there is no way for easily create and distribute themes, here is a sxcript we could use as base which added/changed the settings in ~/.config/lxqt/lxqt.conf which handles the colrs