Add a "night/dark mode"

As you can see in Youtube, there you can find a switch to change between “normal mode theme” with bright colors and a “night mode theme” with black and gray. GNOME and its default theme Adwaita has a normal theme and dark theme. This kind of thing help people who works with the computer in day and night by allowing to adjusts the mode better suits them.

My idea it’s to add a “night/dark mode” that unlike the examples above, works automatically, changing from normal mode to dark mode when certain time has passed, using system time or hardware clock as reference (e.g. it automatically enables itself at 10PM and disables at 8AM).

In order to maintain consistency and a clear look, all the themes should have a normal/daylight mode and a dark/night mode. If there is a theme doesn’t have an alternative mode then it uses the same look all the day. If there is a theme that’s dark by default, it’s up to the developer to find a way to make it a night mode or not.

Another thing would be also to automatically adjust color temperature from colder to warmer tones depending on the time of the day, that could be also another option, or both at the same time.

1 Like

This “auto-mode” would be optional, I’m sure.
I doubt that our drivers can set colour temperature and don’t know how complete the hardware docs of the manufacturers are in that regard.

I’d say a good first step would be for people interested in this to create light/dark themes for ThemeManager.

Of course it would be optional. Nothing non-essential should be forced to end-user.

Before even thinking about creating dark themes, we need a ThemeManager that can handle themes, and even extend themes capabilities to allow more options (such as, if Haiku gets accelerated graphics support, to support transparencies).

The Appearance preferences let you set dark colours, as miqlas’ linked thread shows. ThemeManager from HaikuDepot lets you save and switch themes. Transparency and acceleration doesn’t play into it. Or you want more than a “night/dark” mode after all.

1 Like

I think the general gist is that such a theme set up has been pushed into glass elevator… Beyond R1. It will be cool to have. It is not essential for the R1 release, unless someone wants to step in to implement it and get the all the bugs worked out before R1/stable. The theming capabilities of Haiku are already far more advanced than BeOS R5.

Does thememanager actually work, though? Last time I tried it about three months ago, it did nothing. I’m asking because I really need to rice Haiku for nerd cred and I’m not good enough to write new themes yet.

Working here. Has been for as long as I remember…

Yep, it does. I am an idiot and I didn’t know I had to install themes. Also, where does one acquire other decorators? I installed the extra themes available on ThemeManager’s GitHub page, but I don’t have the required decorators.

I don’t think there are currently other Decorators available anywhere, but the included old BeOS Decorator.

And you don’t need to install themes to make use of ThemeManager. I use it to switch between the Haiku default theme and my only very slightly changed custom one when taking screenshots for documentation, for example.
Likewise, the people that want a night/dark mode could create one and switch to that when they need it.

There are two decorators, in Haiku source tree, that don’t support stack and tile. A windows 95 decorator and a Mac OS 9 decorator. Not very useful…

Do you know how “nerd cred” works? Here, read this: How To Become A Hacker

You’re welcome. :grin:


Czy jest jakiś sposób by używać lub podobnego programu?
Może to bylo by rozwiązanie?

1 Like

A post was merged into an existing topic: Forum language

I figure this would be the best thread to ask.

Has anyone tried rewriting the native gradient drawing widgets? The default look is pretty, but when you try to draw anything different it becomes very ugly. I suppose I could just play with Qt if I wanted more control over drawing, but it would be nicer to have more native theming functionality. Glass elevator maybe?

1 Like

Glass Elevator is more probable. Most of the focus has been getting what we have polished. But if someone were to get something working before R1, I’m sure it would be considered for release.

I’m sure it wouldn’t be terribly difficult to just change how the engine draws gradients, but making a GUI app for customizing the gradient would be more difficult.

All widget theming is already done through BControlLook, which is (now) a pure-virtual base class. There isn’t a standard way to load it from an add-on yet, but you can already write your own version of it, and then replace the existing version at runtime by setting the be_control_look global and then repainting. So you can already start working on this.