-
-
Notifications
You must be signed in to change notification settings - Fork 8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UI: Enforce Fusion Qt style on Linux #6664
Conversation
Maybe stupid question... Will work the QApplication setStyle QStyleFactory create("Fusion") sequence for OBS only, but not for every Qt application installed in the system? I don't like the global env vars. |
This will try to apply Fusion over Breeze by "merging" them because the base style is already Breeze. To avoid Breeze to be used as base style this env var is unfortunately necessary. Edit: The env var only apply to the application context, only OBS and everything that run inside OBS are affected. Not global. Edit2: This way if the user really wants to he can override the enforce. |
While I overall agree with this change due on limitations in the Qt API, the only downside of this change is that for users who use the System theme, it may no longer look like their system if a custom style is applied automatically. |
The
We could (OR):
|
If this affects KDE only, is there a way to only turn this on when KDE is active? Or do we need to have this on gnome as well? |
This issue is related to Breeze Qt style plugin which is DE-agnostic, it will affect:
So the only way is to enforce Qt's default: Fusion. User can still override it if they want to on non-Flatpak install. |
Ah okay, I think I misunderstood originally then. Linux is definitely not my expertise. |
The Breeze Qt style plugin adds frame arround QDockWidget with QPainter which can not be modifed. To avoid this the base style is enforce to the Qt default style on Linux: Fusion.
Breeze have nothing to do with that, you are actually defaulting to Qgnome platform the Qt Platform Theme made by Fedora IIRC which seems to manage the decoration bar theme. Qt doesn't provide a way to avoid breeze (the Qt Style) if this is installed and will be used. The only solution to always avoid Breeze is to enforce Fusion. The user still can set |
thanks for the tip -- i resolved this by removing: |
The Breeze Qt style is DE-agnostic, so it's not a question of being on Plasma or GNOME.
I'm on GNOME and I have this issue.
|
Description
Found the issue on Linux, the Plasma default theme Breeze also provide a Qt style plugin.
This plugin add a frame to QDockWidget.
Those frames are not stylable with QSS because those are drawn with QPainter.
Flatpak install is always affected because the KDE Runtime provide Breeze, and Linux systems with Breeze installed are also affected for non-Flatpak install
So to avoid this the base style is enforce to the Qt default style on Linux: Fusion.
Screenshot made with #2778
Without the PR:
With the PR:
Motivation and Context
I want Yami to be nice on Linux and Qt doesn't want me to be happy.
How Has This Been Tested?
Types of changes
Checklist: