I think that in many cases a program should not need to specify its own colours, and can use the user's colours settings in the operating system. Having "light mode" and "dark mode" is mostly unnecessary (this should also be true for web pages that do not have CSS; the user's default colours can be used), if you can just customize the colours fully, instead (although presets may be available for users who do not wish to customize the colours).<p>However, one case where it might help is that a program does need to specify some of its own colours, in addition to the standard ones (unless the program already allows customizing its colours; some programs will already do this, which might be helpful anyways, in case of e.g. colour blindness, or a monochrome display, etc). In this case, dark mode might be helpful for the program to know which colours it should use for its additional colours.<p>If you want to be able to automatically set the colours by time of day or by other criteria (e.g. which display it is connected to, or whether or not the output will be diverted to a printer), then a separate program could be used, to configure the system by such things.