obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
58.47k stars 7.8k forks source link

OBS doesn't follow Qt6's system theme #7689

Closed MiliAxe closed 1 year ago

MiliAxe commented 1 year ago

Operating System Info

Other

Other OS

Arch Linux

OBS Studio Version

28.1.0-rc1

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/72TFTmwJcddygisf

OBS Studio Crash Log URL

No response

Expected Behavior

Prior to the new update, OBS followed Qt5's system theme wonderfully (I use qt5-styleplugins to set my qt5 theme to be like my gtk theme). System theme should follow the style of the Qt6's theme (I have qt6gtk2).

Current Behavior

System theme is just a white theme that does not follow system's Qt6 theme.

Screenshot: image

Steps to Reproduce

  1. Install any version of OBS above 28
  2. Set Theme from Settings > Theme to "System"
  3. OBS's theme now does not follow Qt6's theme.

Anything else we should know?

There is no problem with this on versions prior to 28 that had Qt5. I have tried the new versions including 28.1 and 28.03 and it still has the same issue. Any other software using Qt6's theme work without any issues.

WizardCM commented 1 year ago

This is intentional to bypass KDE Breeze overriding our styling for custom themes without any method of being disabled.

Additional information can be found here https://github.com/obsproject/obs-studio/pull/6664

tytan652 commented 1 year ago

Too late but I still post it.

Qt5 or Qt6, it doesn't matter.

We just enforce Fusion as base Qt style because common Qt Style like Breeze or QGnome break every OBS theme. (https://github.com/obsproject/obs-studio/pull/6664) So "System" only applies Fusion.

But you can try to set the environment variable QT_STYLE_OVERRIDE to avoid Fusion, it is at your own risk.

71GA commented 5 months ago

Sorry, but I have never heard something so ignorant from a developers (to enforce something like this is plain stupid).

derrod commented 5 months ago

Sorry, but I have never heard something so ignorant from a developers (to enforce something like this is plain stupid).

Not having broken UI is stupid? News to me.

71GA commented 5 months ago

Sorry, but I have never heard something so ignorant from a developers (to enforce something like this is plain stupid).

Not having broken UI is stupid? News to me.

Well you do have a broken UI. It fails to follow system theme hehehe.

Fenrirthviti commented 5 months ago

Sorry, but I have never heard something so ignorant from a developers (to enforce something like this is plain stupid).

Well you do have a broken UI. It fails to follow system theme hehehe.

If you actually want this to be looked at, showing up on our repo with hostile, passive aggressive bullshit is probably the worst way to get us to take your concerns seriously. I would suggest starting by taking the time to read our code of conduct that informs how not to act towards developers and other members of our community.

As for this specific issue, if you have a better solution, we are open to entertaining suggestions, but we've weighed the options and this is the least bad solution we settled on. It allows OBS to continue to have a functional UI for the majority of users, with a very simple and basic workaround (the mentioned QT_STYLE_OVERRIDE environment variable) for those that want to live with the caveats otherwise. If you have the knowledge and capability of fixing all the issues allowing Qt to inherit the system theme, PRs are very welcome to that end. In our experience and testing, it was not worth the effort and disruption to the project to invest time in to at the time, which is why this is closed.

71GA commented 4 months ago

@Fenrirthviti I am sorry for not following "code of conduct". However, I know set course is completely wrong! This pull request (link) is a complete nonsense. I will be refering to this commit in my following paragraphs.

OBS provides themes in order for users to be able to choose their own. Then why not letting them choose their system theme as well? Who cares if they want to use ugly system theme! That is their own buisness... Frame arround QDockWidget is a consequence of a bad GTK theme that commiter used and it does not mean that all GTK themes look as bad as committer's theme. Maybe visit "Gnome-look" (link) website first and get a proper theme (rated high) that was done by a skilled programmer. I tried a couple of themes and none caused same isues as described in the mentioned commit.

This commit is therefore a one big nonsense. And should be reverted immediately.

Here are some themes (Ant, Dracula, Gnome-professional, Skeuos) that work perfectly with OBS and prove you wrong. I set these themes in qt5ct and then applied them by force like this when running OBS:

env QT_STYLE_OVERRIDE=qt5ct /usr/bin/obs

ant -- a ant -- b dracula -- a dracula -- b gnome-professional -- a gnome-professional -- b skeuos-dark -- a skeuos-dark -- b skeuos-light -- a skeuos-light -- b

There is no issues like mentioned in that commit. However there is a different issue related to HiDPI scaling (check annotations in the images). I am on a HiDPI 4K monitor and if I scale my interface to 1.8, then buttons are not proportional. This is the real problem that should be fixed while the mentioned commit should be reverted.

Let users choose their theme even if they choose a corrupted one... It is their choice.

Fenrirthviti commented 4 months ago

Thank you for your input, it sounds like you found the solution we provided that works for you.

71GA commented 4 months ago

Thank you for your input, it sounds like you found the solution we provided that works for you.

This is not a solution... Commit should be reverted.