godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Add editor settings to choose which theme presets are used when using Follow System Theme #10578

Open jefemagril opened 2 months ago

jefemagril commented 2 months ago

Describe the project you are working on

I am using the Godot editor to make games.

Describe the problem or limitation you are having in your project

I like the macOS feature of automatically switching the system color theme between dark and light mode based on the time of day. Windows can do this too using a third-party app "Windows Auto Dark Mode". I found the editor setting under Interface->Theme: "Follow System Theme". However, it works only partially and very poorly. For some reason, this feature takes the choice of specific color scheme out of your control and chooses a very bad one for both light and dark.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Right now the editor settings show a Preset dropdown under the Follow System Theme tickbox. I propose that when Follow System Theme is selected, the Preset line is replaced with two lines of dropdowns: Light Preset and Dark Preset. Then, Godot will simply apply the selected presets corresponding to the system theme.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

I haven't looked at the code yet, and I can, but I imagine this would be a very simple enhancement to apply. Mostly just reusing existing code.

If this enhancement will not be used often, can it be worked around with a few lines of script?

Users can manually change the editor color theme. A tool script might be difficult because it would need to read the system theme.

Is there a reason why this should be core and not an add-on in the asset library?

Because the feature already exists Follow System Theme but it works so poorly I doubt anyone is using it.

Calinou commented 2 months ago

For some reason, this feature takes the choice of specific color scheme out of your control and chooses a very bad one for both light and dark.

The feature uses the Default (dark) and Light presets. The pull request that implemented the feature originally allowed you to choose which presets were applied, but this was removed from the final revision as it was deemed too complex. I personally don't agree with that though, especially as OLED displays are becoming more commonplace. You'll probably want to use the Black (OLED) preset instead of the default dark preset on those displays, but you may want to use the Light preset during the day for better visibility.

HaipaDev commented 3 weeks ago

Really looking forward to this as I also have started using time based automatic theme switching Light theme during the day is superior just like dark mode is made for the dark, and we should be able to select custom themes for each, just like many other places (like Linux DE's) have implemented such a system