Skip to content

Can't override the system colour scheme on Linux #2091

@Ortham

Description

@Ortham

When using Qt's Fusion style on Windows, setting the colour scheme in Qt can override the system colour scheme, so you can get a dark palette in LOOT when the Windows colour scheme is light, and vice versa.

However, that isn't the case for GTK and KDE themes on Linux, which seem to basically ignore the colour scheme you set if it doesn't match the current theme's colour scheme: see the Qt code for GTK and KDE.

I guess this is because the Fusion style on Windows is almost completely bypassing the actual Windows theme (aside from its accent colour, I think), while on Linux it does still try to match the system theme, and the system theme doesn't define light and dark colour schemes, instead there are two separate light and dark system themes.

This means that trying to use LOOT's default theme variant that's the opposite of the system colour scheme gives the system colour scheme with the opposite custom colours from LOOT's stylesheets, which looks bad and makes some text unreadable.

I tested a whole bunch of combinations:

OS Scheme Style Theme Result
Windows 10 Light windowsvista dark Good (doesn't match system)
Windows 10 Light windowsvista default Good - UI is light
Windows 10 Light windowsvista default (light) Good - UI is light
Windows 10 Light windowsvista default (dark) Bad - UI is still light apart from custom styling
Windows 10 Light fusion dark Good (doesn't match system)
Windows 10 Light fusion default Good - UI is light
Windows 10 Light fusion default (light) Good - UI is light
Windows 10 Light fusion default (dark) Good - UI is dark
Windows 10 Dark windowsvista dark Good
Windows 10 Dark windowsvista default Good - UI is light (doesn't match system)
Windows 10 Dark windowsvista default (light) Good - UI is light (doesn't match system)
Windows 10 Dark windowsvista default (dark) Bad - UI is still light apart from custom styling
Windows 10 Dark fusion dark Good
Windows 10 Dark fusion default Good - UI is dark
Windows 10 Dark fusion default (light) Good - UI is light
Windows 10 Dark fusion default (dark) Good - UI is dark
GNOME Light fusion dark Good
GNOME Light fusion default Good - UI is light
GNOME Light fusion default (light) Good - UI is light
GNOME Light fusion default (dark) Bad - UI is still light apart from custom styling - it did set the color scheme to dark but that didn't seem to do anything
GNOME Dark fusion dark Good
GNOME Dark fusion default Bad - UI is light apart from custom styling, which came from the default-dark stylesheet. See #2092.
GNOME Dark fusion default (light) Good - UI is light (doesn't match system)
GNOME Dark fusion default (dark) Bad - UI is still light apart from custom styling - it did set the color scheme to dark but that didn't seem to do anything. See #2092.
KDE Light breeze dark Good (doesn't match system)
KDE Light breeze default Good - UI is light
KDE Light breeze default (light) Good - UI is light
KDE Light breeze default (dark) Bad - UI is still light apart from custom styling - it did set the color scheme to dark but that didn't seem to do anything
KDE Dark breeze dark Good
KDE Dark breeze default Good - UI is dark
KDE Dark breeze default (light) Bad - UI is still light apart from custom styling - it did set the color scheme to light but that didn't seem to do anything
KDE Dark breeze default (dark) Good - UI is dark
KDE Light fusion dark Good
KDE Light fusion default Good - UI is light
KDE Light fusion default (light) Good - UI is light
KDE Light fusion default (dark) Bad - UI is still light apart from custom styling - it did set the color scheme to dark but that didn't seem to do anything
KDE Dark fusion dark Good
KDE Dark fusion default Good - UI is dark
KDE Dark fusion default (light) Bad - UI is still light apart from custom styling - it did set the color scheme to light but that didn't seem to do anything
KDE Dark fusion default (dark) Good - UI is dark

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions