I think the dark mode switch should be a flag on the theme. It can be useful for applications to interrogate if they need to optimize things such as icons or logos based on light mode or dark mode.
Ideally you would be able to set both a default light mode theme and default dark mode theme, which would make it easy to switch between the two - or automatically trigger a change based on the time of day.
I also like the idea of a theme “store” where users could share themes they have created.
Unfortunately the Theme Manager is not part of the install image, as it is marked as a non-maintained software, so some devs on other forum threads showed reluctant relation to be in the common usage.
I understand that the colos setting, and color picking and others that was developed for Haiku may more advanced to customize Haiku, but sometimes I would rather select a preset that almost the desired settings for me, as I might set something that odd for me than everything.
Especially as someone took time to create that preset.
What I like in Humdinger’s idea, that when I click on my saved Terminal preset, then the Terminal launch with that preset. In traditional ways I have to add that preset file to the application, to be activate it. To have permanent in both cases I have to set this is the default, and done. Hovewer, the loading is more direct – the Theme Manager would be need just to precise the settings, so have a customized version for the theme, when I start to set sounds for example, but for activate I can save it on an external drive even. After a fresh install I just click on, and the all stuff as I like Haiku should be set - ready to use.
That would be awesome ! - as the well educated piréz* would say.
\* piréz : an invented ethnic group -from the Hungarian internet - it was used for a research.
There are few annoying problems with Theme Manager.
For example, while storing fonts colours it is also storing fonts itself. So, if you share your theme with someone that use another alphabet, you can break their system. An example of that is stargate theme that comes with decorative fonts.
In the same spirit, it is saving the decorator with full path. That’s nice if you want to use a custom decorator but, if you’re sharing that theme with someone who doesn’t have the same decorator installed in same path, this leads to app server crash.
It doesn’t even save all colours, one of them being the progress bar colour. That’s kind of annoying. Link colours are not saved either which can also become a problem in HaikuDepot or Tracker’s Information window if you’re using for panels a colour near to the link usual ones.
I think that in a first time, humdinger’s solution is the best. And perhaps later, have a panel with advanced settings where you could find other things like sliders knob styles. Anyway, this has to be integrated or it will end up unmaintained.
This does not make any sense. Because the question of “is the theme dark” cannot be answered on Haiku.
You can only answer this question for individual color pairings
like panel background & foreground
document background & foreground
And then also application specific colors where the app even has to decide wether re-using colors makes sense for contrast.
Point beeing that a) this code already exists and b) it does not work how you assume it would, and a “flag” would never help.
WebPositive supports this fine, it will even use the system colors themselves if the website does not choose colors. You’d probably have to address this bug to the haikuports bugtracker.
I completely agree with this, ThemeManager is way too overkill for the base system, and many people (including myself) have no use for it.
I think it should be improved by people who care about this functionality, yes it is somewhat broken now, but it can be fixed and improved.
Color blindness would requires exposing this to apps in a way where they can choose to use other elements than color for ui elements, this cannot be represented with clever colors.
In addition to this, apart from the “highlight” color, which is directly settable, the Haiku UI is pretty monochrome, so should already be very accesible in that regard. (Filtering to improve vision for specific color vision types would need to happen on the app-server side. However we do not even support color profiles yet, so colors on a Haiku driven monitor are not accurate. (also no 10bit colors))
Some people like wrenching on motorcycles constantly while other people like riding for 35,000 miles a year and expect their ride (not a Harley) to not NEED constant wrenching.
The same is true with operating systems. Different people like different ways to change settings. Some like it easy and other people like messing with settings instead of getting other things done neither is wrong
So, companies are making broken OS on purposes for that category of customers…
To take same analogy there’s a big difference between liking to tweak and customize a bike and, having to repair it constantly. Also that’s the same with customizing freedom, mixing parts using metric system with a bike that’s not is looking for trouble. And making your bike looking like a dragster can give it a cool look but it can make steering difficult endangering our safety and broke your back.
So, you need to allow some freedom but not everything. You have to keep in mind that some are crazy and will imagine things that will become out of control. IMHO, the best way to not lose control is to integrate basic theme settings. You don’t want to let them to an unmaintained external app conceived years ago for a different system.
We already have a simple mode with just 3 colors to pick and an avanced mode where you can tweak many individual colors
Whatever colors you select, there are few risks to break your back or cause other personal injuries by wrong choice of system colors (at worst you can embarass yourself by showing your bad taste in color choices)
So I think that analogy reaches its limits rather quickly. Also I don’t think ThemeManager is unmaintained, it just works and needs no further changes? And it was already updated to fully support Haiku (including a different format for Terminal color themes than Be used, for example).
Hi all, newbie here. I haven’t spotted a say ‘hi’ thread yet, so this post serves as both a point about Dark Mode and an intro. Hi
As a severely visually impaired computer user, (Mac, Windows and Linux) I was delighted to see that Haiku had a method to implement a Dark Mode, (by whatever means) and I found it ok as per above details on configuring. It’s essential to me. A white-bright OS is now just unusable. Mac is great as its (usually) 100% Windows and Linux not so, although Reclaim Windows Control Panel app fixes most left off parts in Windows.
But unfortunately Haiku atm doesn’t have (I checked here) a way to increase and modify the Mouse Pointer Hand. Which again is crucial for me. And my HP Z230 PC 's TP Link wifi-bluetooth dongle, although ok with my keyboard and mouse, doesn’t drive any wifi adapter. Ethernet isn’t an option (atm) Anyway, while I repair my utterly wrecked Win 11 install and consider my next move, I’d just like to say I dig the work put in. I ran BeOS briefly on a Macintosh 9600 (big effort at the time) amd use a version of the BeOS desktop icons on ALL my machines. So hopefully I’ll have a good look-a-like OS up some point soon.
Finally, after all these years… But seriously, will users ever be able to change their cursor from a hand to an arrow because it would make their work easier?
I know, I know, this is not a bug, this is feature:)
As for Dark Mode, I don’t know where you see a problem with the implementation or why you’re making an issue out of it. You provide a “dark” option and assign dark color values to it, along with the ability to send information to third-party apps so they can enable dark mode on their end. So what if the user can change the colors of everything in the UI—let them change it, let them even change the dark mode itself—but the mode is there and sends information about it to other apps. Why look for unnecessary problems here? This solution exists on Windows, it exists on Android, it works well everywhere, and people use it. And in Haiku, as usual, we’re overcomplicating a simple solution for users.
pref/Appearence talks to the app_server and submits a set of 30ish colors at once with color values for each color constant;
applications use ui_color(B_SOME_CONSTANT) to retrieve a color_value and use this for drawing; or they use this for decisions, or for making colors like update with a simple SetHighUIColor(B_SOME_CONSTANT);
In this way apps don’t need to keep track of what “theme” a system is, because it doesn’t actually exist, it’s just a set of colors. Applications can make intelligent decisions like asking “I render some disabled text by tinting it more dark, is this still a sufficient contrast against B_DOCUMENT_TEXT_COLOR?” and then can adjust their own computer colors to match.
The current sliders allow setting a “dark” mode a “high contrast” mode etc all with one control.
I’m not sure why you are arguing here from the perspective of what apps should receive or not? Since you provided no concrete critizism apart from the assertion that the other way would be simpler I am a bit confused by that. What problem are you trying to solve by changing this stuff…?
EDIT: i will concede that the “3 bars” color picker is not that great; but this will probably be replaced in future versions.
My point of view is very easy to explain:
Take an Android phone or a computer running Windows 10/11, go to settings,
switch to dark mode, describe how the system looks—including, for example, apps like the browser and the websites running in it—
switch to light mode, describe how the system looks—including, for example, apps like the browser and the websites running in it—
Now tell me what the difference is between them, and why is it so hard to understand why this is implemented in other systems and why people use it? I have everything set to dark mode, and my eyes aren’t strained by the bright light from the screen. On Haiku, I have to quickly go into the settings in every app—like Firefox—and switch to Dark Mode because the light hurts my eyes.
Not every application will follow Haiku’s dark mode, Firefox/Iceweasel being there, some of the KDE applications do/can follow them, those that don’t can use the Breeze color schemes which provide default dark schemes.
As mentioned before, for me switching Haiku colors is done with the ThemeManager, or one can just open Appearance and move the slider to the left.
This is a missing feature in the Firefox port. The native WebPositive and many ported applications already switch to “dark mode” automatically based on the system setting.