Bug 474855 - Steam and AppImage Krita doesn't render a "Default" QStyle and KColorScheme QPalette option, nor enumerate non-statically-linked alternatives
Summary: Steam and AppImage Krita doesn't render a "Default" QStyle and KColorScheme Q...
Status: RESOLVED INTENTIONAL
Alias: None
Product: krita
Classification: Applications
Component: Usability (other bugs)
Version First Reported In: 5.2.9
Platform: Fedora RPMs Linux
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL: https://krita-artists.org/t/why-doesn...
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-25 14:16 UTC by Roke Julian Lockhart Beedell
Modified: 2025-11-06 18:17 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:
4wy78uwh: performance-


Attachments
https://steamdb.info/depot/280682/history/?changeid=M:6333154296950230284 on cpe:/o:opensuse:tumbleweed (208.86 KB, image/png)
2023-09-25 14:16 UTC, Roke Julian Lockhart Beedell
Details
https://kojipkgs.fedoraproject.org//packages/krita/5.2.2/7.fc40/x86_64/krita-5.2.2-7.fc40.x86_64.rpm (179.26 KB, image/png)
2024-04-29 12:13 UTC, Roke Julian Lockhart Beedell
Details
Colour Scheme Enumeration in M:8300849784599135186 (64.38 KB, image/png)
2025-02-04 11:39 UTC, Roke Julian Lockhart Beedell
Details
Application Style Enumeration in M:8300849784599135186 (49.33 KB, image/png)
2025-02-04 11:40 UTC, Roke Julian Lockhart Beedell
Details
Colour Scheme Enumeration in 5.2.6-2.fc41.x86_64 (80.75 KB, image/png)
2025-02-04 11:40 UTC, Roke Julian Lockhart Beedell
Details
Application Style Enumeration in 5.2.6-2.fc41.x86_64 (91.38 KB, image/png)
2025-02-04 11:41 UTC, Roke Julian Lockhart Beedell
Details
Colour Scheme Enumeration In 5.2.13 (Git 6d3651a) (64.44 KB, image/png)
2025-10-28 14:49 UTC, Marek Mariusz Marecki
Details
Working default color scheme in Kate which set theme identical to that in system. (7.80 KB, image/png)
2025-10-28 15:35 UTC, Marek Mariusz Marecki
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roke Julian Lockhart Beedell 2023-09-25 14:16:34 UTC
Created attachment 161857 [details]
https://steamdb.info/depot/280682/history/?changeid=M:6333154296950230284 on cpe:/o:opensuse:tumbleweed

STEPS TO REPRODUCE
1. Purchase [Krita on Steam](https://store.steampowered.com/app/280680/Krita/).
2. Install it.
3. Attempt to set the theme to "System default" like the native packages are able to.

OBSERVED RESULT
The Steam package doesn't adhere to system theme. It doesn't even adhere to the version (whether light or dark) of Breeze in use. It also uses Fusion rather than the Breeze application style.

EXPECTED RESULT
It should provide the option to adhere to the system theme (both application style and colouration).

SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20230921
KDE Plasma Version: 5.27.8
KDE Frameworks Version: 5.110.0
Qt Version: 5.15.10
Kernel Version: 6.5.4-1-default (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 7600X 6-Core Processor
Memory: 30.5 GiB of RAM
Graphics Processor: AMD Radeon RX 5700
Manufacturer: ASRock
Product Name: X670E Taichi

ADDITIONAL INFORMATION
https://krita-artists.org/t/why-doesn-t-krita-on-steam-adhere-to-the-system-theme/74681?u=beedellrokejulianloc
Comment 1 Dmitry Kazakov 2023-09-25 16:40:43 UTC
As far as I know we explicitly don't support "Breeze" style, only "Fusion", so that part of the report is kind of "expected behavior".

But about the color theme I'm not very sure. Krita has its own themes. The user can choose the one works best for him/her. What exactly is the problem?
Comment 2 Roke Julian Lockhart Beedell 2023-09-25 16:49:34 UTC
(In reply to Dmitry Kazakov from comment #1)
> As far as I know we explicitly don't support "Breeze" style, only "Fusion",
> so that part of the report is kind of "expected behavior".

Then consider this a request to change that, because it should support any theme like any other Qt application does. However, if that is best suited to a separate issue, I'm willing to file that.

> But about the color theme I'm not very sure. Krita has its own themes. The
> user can choose the one works best for him/her. What exactly is the problem?

That it neither supports any colour scheme that isn't in the predefined list (an issue similar to the aforementioned) nor supports switching between the *supported* themes based upon whether they have been chosen system-wise. For instance, if I install Krita whilst using Breeze Dark, although it may initially appear to be following the system-wide colour scheme, it does not, for if I subsequently switch my system theme to Breeze Light, it does not switch.

This is expected when a specific theme has been explicitly set in Krita by the user, but modern versions of Krita distributed outside Steam provide the ability (at the top of the theme context menu) to adhere to the systemwide preference instead of making the user manually switch between them. This is not present for whatever unknown reason in the version distributed via Steam.
Comment 3 Bug Janitor Service 2023-09-26 03:46:17 UTC
Thanks for your comment!

Automatically switching the status of this bug to REPORTED so that the KDE team
knows that the bug is ready to get confirmed.

In the future you may also do this yourself when providing needed information.
Comment 4 Dmitry Kazakov 2023-09-26 08:09:57 UTC
Hi, Roke!

> Then consider this a request to change that, because it should support any theme like any other Qt application does

As far as I remember there used to be bugs if Breeze that caused severe issues with rendering Krita's layers docker and color labels menu. I don't know if anything changed since then... We might check  if something has changed, but I cannot promise.

> but modern versions of Krita distributed outside Steam provide the ability

As far as I know the only means of distribution that supports Breeze (and its themes) is Krita packaged by Linux distributions is a form or 'rpm' or 'deb'. This way of distributing Krita is not officially supported by Krita team, since we need a set of patches for Qt to make painting work properly.
Comment 5 Roke Julian Lockhart Beedell 2023-09-26 21:26:13 UTC
(In reply to Dmitry Kazakov from comment #4)
> As far as I know the only means of distribution that supports Breeze (and
> its themes) is Krita packaged by Linux distributions is a form or 'rpm' or
> 'deb'. This way of distributing Krita is not officially supported by Krita
> team, since we need a set of patches for Qt to make painting work properly.

I wasn't aware of that. Indeed, those are the typed I refer to. However, it appears mighty weird that Linux-first software wouldn't support native package management distribution. Which types are officially supported? And does a separate issue exist for getting official support for such formats?
Comment 6 Dmitry Kazakov 2023-09-27 06:34:04 UTC
Hi, Roke!

The Steam package uses the official binary supported by the Krita team, you reported it correctly. Though we don't build breeze support due to bugs we had with breeze some time ago. I'm not sure if these bugs are still present. Perhaps we should reevaluate and/or retest that in the future, though I'm not sure how priority it is.
Comment 7 Roke Julian Lockhart Beedell 2024-04-29 12:13:31 UTC
Created attachment 168997 [details]
https://kojipkgs.fedoraproject.org//packages/krita/5.2.2/7.fc40/x86_64/krita-5.2.2-7.fc40.x86_64.rpm

(In reply to Dmitry Kazakov from comment #6)
Using https://kojipkgs.fedoraproject.org//packages/krita/5.2.2/7.fc40/x86_64/krita-5.2.2-7.fc40.x86_64.rpm, it does appear that you have Breeze support (and, as https://bugs.kde.org/attachment.cgi?id=161857&action=edit demonstrates, dynamic support for installed system themes) in the native package, yet I see no option to automatically switch to the current system theme, like Kate and KDevelop have - the "Default" option.
Comment 8 Roke Julian Lockhart Beedell 2025-02-04 11:39:47 UTC
Created attachment 177947 [details]
Colour Scheme Enumeration in M:8300849784599135186

(In reply to Roke Julian Lockhart Beedell from comment #0)

It's been a long time since I filed this, and it wasn't very well done. I'm going to replace it undermentioned, unless the triage owner would rather I refile it entirely:

SUMMARY
------

In the Steam version of Krita, application styles and colour schemes available in their respective KCMs are not enumerated. This means that platform defaults are not adhered to, even in an entirely first-party environment. In comparison, the native packages achieve this.

STEPS TO REPRODUCE
------------------

1.	Install ≤ [`M:8300849784599135186`][2]:

	~~~sh
	#!/usr/bin/env sh
	steam "steam://install/280680"
	~~~

2.	*When complete*, invoke it:

	~~~sh
	#!/usr/bin/env sh
	steam "steam://rungameid/280680"
	~~~

3.	In the menu bar, select "Settings", then:

	- "Themes"
	- "Styles"

4.	Do the same in `krita-5.2.6-2.fc41.x86_64`, to compare.

EXPECTED RESULT
---------------

The Steam version should enumerate the colour schemes and application styles installed system-wide (available via `kcm_colors` and `kcm_style`).

OBSERVED RESULT
---------------

The Steam version does not enumerate the installed colour schemes nor application styles, thus defaulting to Fusion, despite the DE-wide (and, in fact, KDE-wide, amongst alternative OSes, like Windows) default being Breeze.

1. https://krita-artists.org/uploads/default/original/3X/8/a/8a9deef88c466526cd440fc60139a9612b77b267.png
2. https://krita-artists.org/uploads/default/original/3X/c/c/cc3921a4f2d4429af55dc31c2329b2afa2fd4ec9.png

It *does* act as expected in the Fedora 41 RPM:

1. https://krita-artists.org/uploads/default/original/3X/7/1/71fe433dfb4f585e02c23e020ee560c102e0207f.png
2. https://krita-artists.org/uploads/default/original/3X/c/c/cc3921a4f2d4429af55dc31c2329b2afa2fd4ec9.png

I shall attach these images when this has been posted.

SOFTWARE/OS VERSIONS
--------------------

1.	~~~sh
	#!/usr/bin/env sh
	kinfo
	~~~

2.	> ~~~YAML
	> Operating System: Fedora Linux 41
	> KDE Plasma Version: 6.2.5
	> KDE Frameworks Version: 6.10.0
	> Qt Version: 6.8.1
	> Kernel Version: 6.12.11-200.fc41.x86_64 (64-bit)
	> Graphics Platform: Wayland
	> ~~~

ADDITIONAL INFORMATION
----------------------

Most, if not more, of the information provided here is also available at [`krita-artists.org/t/74681/1`][1].

[1]: https://krita-artists.org/t/why-doesn-t-krita-on-steam-adhere-to-the-kcm-colors-colour-scheme/74681/1?u=rokejulianlockhart
[2]: https://steamdb.info/depot/280682/history/?changeid=M:8300849784599135186
Comment 9 Roke Julian Lockhart Beedell 2025-02-04 11:40:13 UTC
Created attachment 177948 [details]
Application Style Enumeration in M:8300849784599135186
Comment 10 Roke Julian Lockhart Beedell 2025-02-04 11:40:51 UTC
Created attachment 177949 [details]
Colour Scheme Enumeration in 5.2.6-2.fc41.x86_64
Comment 11 Roke Julian Lockhart Beedell 2025-02-04 11:41:10 UTC
Created attachment 177950 [details]
Application Style Enumeration in 5.2.6-2.fc41.x86_64
Comment 12 Marek Mariusz Marecki 2025-10-28 13:16:35 UTC
Appimage version also doesn't seem to show default theme option and breeze.
Comment 13 Roke Julian Lockhart Beedell 2025-10-28 14:01:55 UTC
Are you able to provide a screenshot and version?
Comment 14 Marek Mariusz Marecki 2025-10-28 14:49:35 UTC
Created attachment 186257 [details]
Colour Scheme Enumeration In 5.2.13 (Git 6d3651a)
Comment 15 Roke Julian Lockhart Beedell 2025-10-28 15:01:28 UTC
Comment on attachment 186257 [details]
Colour Scheme Enumeration In 5.2.13 (Git 6d3651a)

That appears to demonstrate that it works. Is that from the AppImage?
Comment 16 Marek Mariusz Marecki 2025-10-28 15:34:16 UTC
(In reply to Roke Julian Lockhart Beedell from comment #15)
> Comment on attachment 186257 [details]
> Colour Scheme Enumeration In 5.2.13 (Git 6d3651a)
> 
> That appears to demonstrate that it works. Is that from the AppImage?

Yes, that is appimage. But that bug was about not appearing windows color scheme default which match with already set system theme. Something like in Kate
Comment 17 Marek Mariusz Marecki 2025-10-28 15:35:41 UTC
Created attachment 186261 [details]
Working default color scheme in Kate which set theme identical to that in system.
Comment 18 Roke Julian Lockhart Beedell 2025-10-28 23:40:04 UTC
(In reply to Marek Mariusz Marecki from comment #16)

> Yes, that is appimage. But that bug was about not appearing windows color
> scheme default which match with already set system theme. Something like in
> Kate

Thanks; indeed. In retrospect, I may have conflated the two issues:

1. It doesn't provide a “Default” option, as its unsandboxed counterparts do.

2. It doesn't enumerate non-statically-linked alternatives.

I've updated the title to reflect this, but this should be two, separate issues...
Comment 19 Halla Rempt 2025-11-05 10:19:56 UTC
We do allow breeze to be selected:

KisApplication.cpp

#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
        QStringList styles = QStringList() << "haiku" << "macintosh" << "breeze" << "fusion";
#else
        QStringList styles = QStringList() << "haiku" << "macos" << "breeze" << "fusion";
#endif


However, the appimage version of krita cannot load system-wide Qt plugins. This is a technical limitation that cannot be worked around: Qt plugins need to be built with the version of Qt that is being used for the binary, and the version of Qt in the appimage is guaranteed not to be the exact same as the system version of Qt.

Breeze needs these dependencies:

        CoreAddons
        ColorScheme
        Config
        GuiAddons
        I18n
        IconThemes
        WindowSystem

We currently build and package

        Config
        WidgetsAddons
        Completion
        CoreAddons
        GuiAddons
        I18n
        ItemModels
        ItemViews
        WindowSystem

So we'd also have to package IconThemes and ColorScheme. I haven't looked into what those two needs. But adding the breeze qstyle plugin is not going to be all that trivial.
Comment 20 Roke Julian Lockhart Beedell 2025-11-05 11:07:30 UTC
Does Steam's runtime sandbox suffer from the same deficiencies?
Comment 21 Halla Rempt 2025-11-05 11:09:57 UTC
The Steam linux package _is_ the appimage. And it's not a deficiency, it's a technical limitation. You cannot load plugins that link to a different version of a library than the one your application links to. The only solution is to package the plugins, but we're already building and packaging more things than is maintainable.
Comment 22 Roke Julian Lockhart Beedell 2025-11-05 11:30:39 UTC
Perhaps, I'd be better off requesting that the Steam version not be an AppImage, then?
Comment 23 Halla Rempt 2025-11-05 11:54:34 UTC
No, that's impossible. For Steam we still need to package all needed libraries because there is no base we can build against.
Comment 24 Marek Mariusz Marecki 2025-11-05 12:18:04 UTC
Arch repo version doesn't work also.
Comment 25 Halla Rempt 2025-11-05 15:09:05 UTC
We're not repsonsible for that... I think we'll have to close this request, it's simply technically impossible to have two different versions of the same library loaded in a single process.
Comment 26 Roke Julian Lockhart Beedell 2025-11-05 15:37:32 UTC
Could you at least list these caveats at the relevant listings' descriptions? I don't submitting a documentation MR if someone can point me to where the Steam package gets its description from. (I didn't expect to pay for a crippled version of it, even if I did primarily donate to assist development.)
Comment 27 Roke Julian Lockhart Beedell 2025-11-05 15:38:04 UTC
(In reply to Marek Mariusz Marecki from comment #24)

> Arch repo version doesn't work also.

If you file a downstream bug (you should), please link it here.
Comment 28 Marek Mariusz Marecki 2025-11-05 15:52:34 UTC
(In reply to Roke Julian Lockhart Beedell from comment #27)
> (In reply to Marek Mariusz Marecki from comment #24)
> 
> > Arch repo version doesn't work also.
> 
> If you file a downstream bug (you should), please link it here.
Do you mean link to package in repo?
https://archlinux.org/packages/?sort=&q=krita&maintainer=&flagged=
Comment 29 Marek Mariusz Marecki 2025-11-05 16:02:01 UTC
(In reply to Marek Mariusz Marecki from comment #28)
> (In reply to Roke Julian Lockhart Beedell from comment #27)
> > (In reply to Marek Mariusz Marecki from comment #24)
> > 
> > > Arch repo version doesn't work also.
> > 
> > If you file a downstream bug (you should), please link it here.
> Do you mean link to package in repo?
> https://archlinux.org/packages/?sort=&q=krita&maintainer=&flagged=

Bug report webpage is such slowed down that i can't register and report anything.
Comment 30 Roke Julian Lockhart Beedell 2025-11-06 18:17:47 UTC
(In reply to Marek Mariusz Marecki from comment #28)

> Do you mean link to package in repo?

I'm referring to what https://wiki.archlinux.org/index.php?title=Bug_reporting_guidelines&oldid=848884#Where_to_open_the_bug:~:text=pkgctl%20repo%20web%20pkgname describes. You should report it to wherever on GitLab Arch now receives such reports. I don't utilise Arch...