View Issue Details

IDProjectCategoryView StatusLast Update
0001586OpenMPTFeature Requestpublic2024-12-11 20:23
ReporterMaruChan Assigned To 
PrioritynoneSeverityfeatureReproducibilityN/A
Status newResolutionopen 
Platformx64OSWindowsOS Version10
Product VersionOpenMPT 1.30.03.00 / libopenmpt 0.6.2 (upgrade first) 
Summary0001586: Skinning and/or Dark Mode
Description

There's not too much to it, i just want dark mode, or maybe even being able to change the background colors without limitation instead of just black and white.

Additional Information

please do it, thanks.

TagsNo tags attached.
Has the bug occurred in previous versions?
Tested code revision (in case you know it)

Relationships

related to 0000783 new cross-platform OpenMPT 
parent of 0001841 new Custom Icon Customization 
has duplicate 0001644 closed Dark mode 
has duplicate 0001794 closed Add a dark mode for the whole interface (independent of system theme) 
related to 0001114 new Rewrite pattern view drawing 
Not all the children of this issue are yet resolved or closed.

Activities

Saga Musix

Saga Musix

2022-04-03 21:04

administrator   ~0005146

If it was that easy, it would have already been done. Windows 10/11 doesn't make it easy for classic WinAPI-based applications to adapt to dark mode.

You can use an application like Classic Color Panel to adjust the windows color scheme. This will change the colors for all applications.

Exhale

Exhale

2022-04-04 00:53

reporter   ~0005147

loving the 'classic colour panel' tool saga, I got it as soon as I saw this because with the way windows has been crippling our ability to customise our desktop I have been growing more and more frustrated, I did find a hack system to turn my windows 8 system into permanent dark mode, but the theme is a little jarring because it is pure black almost everywhere, which while being great for saving on battery strain from the screen of this laptop, is still not very custom... I am not sure about windows 10 and 11, but at least with windows 8 I can still go back to classic style themes with very limited customization options, but I like the modern theming I just want to be able to make it all dark-ish at least... but anyways i wasnt sure if CCP would work on win 8 and I can confirm it does, and I had a fun session messing with my modplug and making it a lot less pure black, by addning more subtle greys and other darker colours. I really think this is something a lot of modplug users could benefit from, and maybe you should post something about this in the normal forums, and if it is already there and has been buried I suggest we maybe pin it or something, it is just too useful a tool in general.

It has got me thinking though, could we take control of these settings purely in regards to modplug only, or are they perminently linked to how windows does things for the rest of everything? because if we could isolate them for modplug, these kinds of settings would be a start for taking modplug to the next level in the looks department.

Saga Musix

Saga Musix

2022-04-04 07:10

administrator   ~0005148

It has got me thinking though, could we take control of these settings purely in regards to modplug only

No. As I said, if it was that easy, it would have already been done.

Exhale

Exhale

2022-04-04 15:25

reporter   ~0005149

Thank you very much for clarifying, and I dont expect any programming for ompt to be easy, I appreciate that all of this stuff is intricate and often tedious, hunting down of related code through messy and probably very long files etc, I guess I was just asking for clarity on if it is even theoretically possible, but I feel I have that now. It certainly would be ideal if we could by some way hijack these settings since windows doesnt even let you control them any more... maybe if we edit the universal settings from within modplug like this software you posted does, but add the disclaimer that it will edit the settings a person has on their entire windows, that could possibly be a thing, since colour classic does it, in theory we could possibly do it too, but obviously that would be venturing to territory a lot of people here might be uncomfortable with, and colour classic does it sooo, probably redundant - although to be frank I have searched for software that lets me change settings like this before and every search on ddg is utterly swamped with people who think changing their desktop background is some form of desktop theming - no wonder microsoft doesnt give us control any more, they think we are all idiots.

Saga Musix

Saga Musix

2022-04-04 15:32

administrator   ~0005150

maybe if we edit the universal settings from within modplug like this software you posted does, but add the disclaimer that it will edit the settings a person has on their entire windows

No, if you want to mess with your system, you will need to do it yourself. There is absolutely no point in changing system-wide settings in OpenMPT. I really don't want to elaborate on why that would be a bad idea, but just imagine yourself what would happen if OpenMPT crashes and thus cannot restore the original settings, how much code would have to be added to fix this situation as well, etc...

02FD

02FD

2024-12-11 04:15

reporter   ~0006255

Last edited: 2024-12-11 04:35

To be fair, I think it's probably a bit of an ask for the average person to use Classic Color Panel, especially considering it's not a free application. While you mention that classic WinAPI apps are not easy to skin, plenty of apps have in fact done it. https://stackoverflow.com/questions/1091925/changing-system-colors-for-a-single-application-windows-net

I don't doubt it wouldn't be easy. However, in my time using this app in communities surrounding it, such as battle of the bits, and even in the modarchive's community, one of the most requested things I have seen from real people really using OpenMPT, or not for that matter due to this exact issue, is a better way to skin the app that doesn't involve some outside method. Even if you don't see a point to it, which, being its developer, I completely understand your view, I think it is a little draconic, from a user's perspective, to request that someone use another app to edit the colors of your one app. And if anything, the longer you decide not to do anything about it, the harder it will become.

EDIT: I'd like to apologize for putting this here unprompted, I was under the impression that it was a newer issue when I saw it under unassigned, and didn't think to check when it was from before saying something

Saga Musix

Saga Musix

2024-12-11 18:17

administrator   ~0006257

While you mention that classic WinAPI apps are not easy to skin, plenty of apps have in fact done it.

No doubts about that. The main difference is probably that most of those apps implemented skinning from the very beginning and didn't have to port 25 years of UI code. The link you mentioned may look like things are trivial, but it has nothing to do with what would have to be done in OpenMPT to support custom colors, at all: The only thing it does is overwriting the color table of .net's non-native UI drawing mechanisms. The code does not modify any drawing of actual, native UI controls at all. Please believe me when I say that if it was as simple as writing a single function like that, I would have done it ten years ago. But the problem goes much deeper than that:

  • The easy part: Custom implemention of WM_CTLCOLOR* window messages: Doing that will style 80% of the UI elements correctly. I have tried that before, and it would be nice if it was enough, but it's just plain ugly and not usable.
  • The hard part: The remaining 20% of UI elements. To the best of my knowledge this would require hand-drawing each single UI element (e.g. scroll bars, combo boxes, tree views, menu bars, toolbars, buttons, list boxes, sliders, tab controls, check boxes, radio buttons, spin buttons). This is the extremely time-consuming part.
  • The potentially impossible part: OpenMPT uses many system dialogs (message boxes, file dialogs) which would stay light-themed.

I think it is a little draconic, from a user's perspective, to request that someone use another app to edit the colors of your one app

All I'm saying is: I don't have the resources at hand to implement the feature you want, but here is a way that you can potentially achieve that feature anyway. Classic Color Panel isn't the only solution to the problem, it's probably just the easiest.

I know that this is an often-requested feature. Probably the most-requested feature together with the possibility of showing more than 4 channels at the same time in the General tab. I know that both of them sound incredibly simple to implement (just copy&paste the controls so that there's 8 instead of 4 channels, easy-peasy!) but there are very good technical reasons why both feature requests haven't been happening so far. That being said, if somebody wants to take over the hard part and work on a patch to add owner-drawing for all of those controls, I won't stop them and I would gladly incorporate such a patch. But I don't see myself doing that work anytime soon.

02FD

02FD

2024-12-11 20:23

reporter   ~0006258

I don't know much about UI programming for Win32 apps, frankly, beyond that it can be done. I program, but nothing beyond the occasional (typically dead-end) hobby project. And honestly, I personally use high contrast mode as a temporary solution, switching out of it with the keybind for the occasional unreadable webpage. I do understand that it is probably a pain in the ass to touch any of this with a 39 and a half foot pole. Even just working with ruby's ancient Win32API for RPG Maker XP was a headache to figure out, and every time I would approach it, it would sound simpler than it was. Programming is like that; you can't really know how complex something is until you try it, beyond a general idea. I'm passionate about this issue, however, so I may begin experimenting with Win32 app development solely from a UI perspective to see if I can do anything. I appreciate your openness to working with the community in general. It must take the patience of a saint and I do apologize if I tested it at all.

Issue History

Date Modified Username Field Change
2022-04-03 20:59 MaruChan New Issue
2022-04-03 21:01 Saga Musix Priority immediate => none
2022-04-03 21:01 Saga Musix Reproducibility unable to reproduce => N/A
2022-04-03 21:04 Saga Musix Note Added: 0005146
2022-04-04 00:53 Exhale Note Added: 0005147
2022-04-04 07:10 Saga Musix Note Added: 0005148
2022-04-04 15:25 Exhale Note Added: 0005149
2022-04-04 15:32 Saga Musix Note Added: 0005150
2022-12-12 07:47 manx Relationship added has duplicate 0001644
2023-01-01 14:36 manx Relationship added related to 0000783
2024-06-26 16:16 Saga Musix Relationship added has duplicate 0001794
2024-08-16 13:27 manx Summary Add dark mode to MPT => Skinning and/or Dark Mode
2024-08-16 13:30 manx Relationship added related to 0001114
2024-11-25 10:07 manx Relationship added parent of 0001841
2024-12-11 04:15 02FD Note Added: 0006255
2024-12-11 04:35 02FD Note Edited: 0006255
2024-12-11 18:17 Saga Musix Note Added: 0006257
2024-12-11 20:23 02FD Note Added: 0006258