Go Back   Cockos Incorporated Forums > REAPER Forums > REAPER General Discussion Forum

Reply
 
Thread Tools
Old 03-29-2024, 10:45 AM   #1
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default Going where (official) skinning doesn't allow us to go (on Windows)

I have set up a theme hack dll project at github:

https://github.com/jjYBdx4IL/ReaperThemeHackDll

Finally, it's possible to adjust Reaper's main menu bar colors.

Use at your own risk. I won't provide binaries, but it's straightforward to build.


Last edited by Gruust; 03-29-2024 at 02:02 PM.
Gruust is offline   Reply With Quote
Old 03-30-2024, 02:12 PM   #2
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Thanks I'll give it a shot if I can figure out how it works.
Btw what theme is that in your screenshot?
fourdogslong is offline   Reply With Quote
Old 03-31-2024, 05:35 AM   #3
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

The theme is rLive.
Gruust is offline   Reply With Quote
Old 03-31-2024, 06:36 AM   #4
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Maybe the Reaper devs get some idea from that on how simple it could be to add true dark mode support supported by Windows itself. Current status seems to be that widgets need to be owner-drawn (I'm currently stuck on the preset ComboBox above the Juce instrument window), but I read some comments that indicate otherwise - although I haven't found out yet how to make Windows switch them to dark mode. Owner drawn would of course have the advantage that they become skinnable. And it's very easy to draw them. Windows provides a lot of functionality already.



Menu dropdowns and context menus automatically in dark mode:


.

FX list background is now black, too. Also the other menu bars.

Some stuff needs more fixing (incl configuration and similar dialogs). Atm the configuration dialog is not usable via the detours branch.

Last edited by Gruust; 04-01-2024 at 04:32 PM.
Gruust is offline   Reply With Quote
Old 04-01-2024, 04:33 PM   #5
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

New screenshot.

Gruust is offline   Reply With Quote
Old 04-01-2024, 04:45 PM   #6
thevisi0nary
Human being with feelings
 
thevisi0nary's Avatar
 
Join Date: Nov 2011
Posts: 576
Default

Appreciate all efforts on this front from anyone so thank you. I'm not very well versed in Windows theming but is this globally applied to the Windows installation or local to just Reaper? (like what windowblinds does)

I was planning on giving this a shot again soon, I've always been afraid to ruin my Windows install which I've heard of happening before and have had minor issues my self.
thevisi0nary is offline   Reply With Quote
Old 04-01-2024, 04:51 PM   #7
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

This is just meddling with the running Reaper process.
Gruust is offline   Reply With Quote
Old 04-01-2024, 06:27 PM   #8
jinotsuh
Human being with feelings
 
jinotsuh's Avatar
 
Join Date: May 2008
Location: Australia
Posts: 187
Default

Quote:
Originally Posted by thevisi0nary View Post
I was planning on giving this a shot again soon, I've always been afraid to ruin my Windows install which I've heard of happening before and have had minor issues my self.
Just do a full disc backup with something like Acronis, and if anything goes wrong, just restore it.
__________________
Studio One Pro 6
jinotsuh is offline   Reply With Quote
Old 04-01-2024, 06:29 PM   #9
jinotsuh
Human being with feelings
 
jinotsuh's Avatar
 
Join Date: May 2008
Location: Australia
Posts: 187
Default

Quote:
Originally Posted by Gruust View Post
This is just meddling with the running Reaper process.
Keep meddling.
__________________
Studio One Pro 6
jinotsuh is offline   Reply With Quote
Old 04-01-2024, 07:00 PM   #10
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,339
Default

Quote:
Originally Posted by Gruust View Post
Maybe the Reaper devs get some idea from that on how simple it could be to add true dark mode support supported by Windows itself.
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
Justin is online now   Reply With Quote
Old 04-01-2024, 09:15 PM   #11
ANDYZ
Human being with feelings
 
ANDYZ's Avatar
 
Join Date: Aug 2018
Posts: 154
Default

Quote:
Originally Posted by Justin View Post
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
+1
ANDYZ is offline   Reply With Quote
Old 04-01-2024, 10:05 PM   #12
Pink Wool
Human being with feelings
 
Pink Wool's Avatar
 
Join Date: Apr 2020
Posts: 1,686
Default

Yes please! +1
__________________
Live simply so that others can simply live
Pink Wool is offline   Reply With Quote
Old 04-02-2024, 12:37 AM   #13
SilenceBetweenWords
Human being with feelings
 
Join Date: Jul 2022
Posts: 58
Default

+1 please
SilenceBetweenWords is offline   Reply With Quote
Old 04-02-2024, 06:30 AM   #14
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Quote:
Originally Posted by Justin View Post
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
It would be great to have this built in! A lot of us probably don't have the required skills to install this by themselves.
I had a look at it and I don't understand how, I just don't have that kind of knowledge.
fourdogslong is offline   Reply With Quote
Old 04-02-2024, 09:03 AM   #15
stuman
Human being with feelings
 
stuman's Avatar
 
Join Date: Oct 2008
Location: ATL
Posts: 94
Default

Quote:
Originally Posted by Justin View Post
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
+1, that would be awesome
stuman is offline   Reply With Quote
Old 04-02-2024, 10:17 AM   #16
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Anybody with more knowledge cares to explain to a total noob like myself how to build and install that thing?
fourdogslong is offline   Reply With Quote
Old 04-02-2024, 05:14 PM   #17
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Quote:
Originally Posted by fourdogslong View Post
Anybody with more knowledge cares to explain to a total noob like myself how to build and install that thing?
Download the sources as a zip file, install Visual Studio (check Desktop C/C++ development) and CMake (choose "put on path for everyone").

Unpack the sources, open native tools command Prompt (press windows key, enter x64 and it should pop up), navigate to the sources, then enter:

cmake -B build
cd build
cmake --build . --config Release

And if you want to debug or fire up Visual Studio:

explorer ReaperThemeHackDll.sln
Gruust is offline   Reply With Quote
Old 04-02-2024, 05:20 PM   #18
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Quote:
Originally Posted by Justin View Post
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
well, it's a lot simpler if you have the Reaper sources... and the main code is not even 600 lines of code. That's insanely simple.
Gruust is offline   Reply With Quote
Old 04-02-2024, 06:48 PM   #19
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 5,092
Default

Well, so, is there anybody who could compile/build the binaries for "us" non-programmers to try this hack, please?
akademie is offline   Reply With Quote
Old 04-02-2024, 07:25 PM   #20
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,339
Default

Quote:
Originally Posted by Gruust View Post
well, it's a lot simpler if you have the Reaper sources... and the main code is not even 600 lines of code. That's insanely simple.

I'll start on a native REAPER implementation, thanks for all of the R&D
Justin is online now   Reply With Quote
Old 04-02-2024, 07:53 PM   #21
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 5,092
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
👍 Justin
thanks
akademie is offline   Reply With Quote
Old 04-02-2024, 08:28 PM   #22
Fergler
Human being with feelings
 
Fergler's Avatar
 
Join Date: Jan 2014
Posts: 5,435
Default

There’s also this, https://rectify11.net

Someone in r/Reaper just used it to dark-mode their setup system wide

https://www.reddit.com/r/Reaper/comm...ent_dark_mode/
Fergler is offline   Reply With Quote
Old 04-02-2024, 10:15 PM   #23
Pink Wool
Human being with feelings
 
Pink Wool's Avatar
 
Join Date: Apr 2020
Posts: 1,686
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
This is amazing news! Woo-hoo!
__________________
Live simply so that others can simply live
Pink Wool is offline   Reply With Quote
Old 04-02-2024, 11:34 PM   #24
stuman
Human being with feelings
 
stuman's Avatar
 
Join Date: Oct 2008
Location: ATL
Posts: 94
Default

Quote:
Originally Posted by Pink Wool View Post
This is amazing news! Woo-hoo!
Wow, indeed!!
stuman is offline   Reply With Quote
Old 04-03-2024, 05:53 AM   #25
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Quote:
Originally Posted by Gruust View Post
Download the sources as a zip file, install Visual Studio (check Desktop C/C++ development) and CMake (choose "put on path for everyone").

Unpack the sources, open native tools command Prompt (press windows key, enter x64 and it should pop up), navigate to the sources, then enter:

cmake -B build
cd build
cmake --build . --config Release

And if you want to debug or fire up Visual Studio:

explorer ReaperThemeHackDll.sln
Thanks I'll give that a shot!
fourdogslong is offline   Reply With Quote
Old 04-03-2024, 06:01 AM   #26
Alez156
Human being with feelings
 
Alez156's Avatar
 
Join Date: Jun 2015
Location: Venezuela
Posts: 481
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
I love it!! 🎉🎉🎉
__________________
💙 I run Reapertips.com | 🦋 Reapertips Theme | ☕️ Buy me a coffee
🍎 Need some cool REAPER icons? Check out Essential Icons for REAPER
Alez156 is offline   Reply With Quote
Old 04-03-2024, 06:56 AM   #27
_Stevie_
Human being with feelings
 
_Stevie_'s Avatar
 
Join Date: Oct 2017
Location: Black Forest
Posts: 5,230
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
Thanks Justin!!!!!

__________________
My Reascripts forum thread | My Reascripts on GitHub
If you like or use my scripts, please support the Ukraine: Ukraine Crisis Relief Fund | DirectRelief | Save The Children | Razom
_Stevie_ is offline   Reply With Quote
Old 04-03-2024, 11:29 AM   #28
mister happy
Human being with feelings
 
Join Date: Mar 2017
Location: in the moment
Posts: 1,111
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D

Please make the dark menu an option. I work in a studio filled with natural sunlight, and one thing I really appreciate about Reaper is that I was able to create a bright, light-colored theme that suits my environment.

I don't like to spend hours in dark rooms with my pupils dilated, so the existing bright menus with black lettering are greatly appreciated.

Thank you!
mister happy is offline   Reply With Quote
Old 04-03-2024, 12:09 PM   #29
akademie
Human being with feelings
 
Join Date: Mar 2007
Posts: 5,092
Default

Quote:
Originally Posted by mister happy View Post
Please make the dark menu an option. I work in a studio filled with natural sunlight, and one thing I really appreciate about Reaper is that I was able to create a bright, light-colored theme that suits my environment.

I don't like to spend hours in dark rooms with my pupils dilated, so the existing bright menus with black lettering are greatly appreciated.

Thank you!
OPTIONAL, for sure, that's the plan I believe (and hope)
akademie is offline   Reply With Quote
Old 04-03-2024, 12:12 PM   #30
ArKaDaTa
Human being with feelings
 
ArKaDaTa's Avatar
 
Join Date: May 2019
Location: France
Posts: 106
Default

Quote:
Originally Posted by mister happy View Post
Please make the dark menu an option. I work in a studio filled with natural sunlight, and one thing I really appreciate about Reaper is that I was able to create a bright, light-colored theme that suits my environment.

I don't like to spend hours in dark rooms with my pupils dilated, so the existing bright menus with black lettering are greatly appreciated.

Thank you!
I think this would just unlock much needed customization for these UI elements, so you're probably safe in this regard.

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
Thanks a lot for looking into this Justin
__________________
arkadata.com - reARK Reaper Theme & Template - FR: Enhanced Theming Consistency and QOL Improvements
Theme enthusiast, composer, video editor, airbender, scripter (always has been), ...
ArKaDaTa is offline   Reply With Quote
Old 04-03-2024, 12:35 PM   #31
Funkybot
Human being with feelings
 
Funkybot's Avatar
 
Join Date: Jul 2007
Location: New Joisey
Posts: 7,242
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
Who is this person and what have you done with the real Justin? In all seriousness, thanks!

Sounds like I may eventually have to update to Windows 11 but this would be the first real reason to do so.

And of course, thanks to Gruust for getting the ball rolling on this!
__________________
Control Surface Integrator (CSI) v7 Install and Support Files: CSI Install

CSI v7 Wiki: CSI Wiki

Last edited by Funkybot; 04-03-2024 at 01:54 PM.
Funkybot is online now   Reply With Quote
Old 04-03-2024, 01:07 PM   #32
Touristkiller
Human being with feelings
 
Touristkiller's Avatar
 
Join Date: Apr 2023
Location: Netherlands
Posts: 1,162
Default

Quote:
Originally Posted by Justin View Post
Very cool! "how simple" hah not simple apparently If you want us to look at integrating some of this let us know.
Yes please Justin +1
Cool that you want to implement this
Touristkiller is offline   Reply With Quote
Old 04-03-2024, 01:36 PM   #33
Cluke84
Human being with feelings
 
Join Date: Jun 2022
Posts: 1
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
+1 would be amazing!

Shoutout to Gruust too, great work!
Cluke84 is offline   Reply With Quote
Old 04-03-2024, 06:49 PM   #34
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Quote:
Originally Posted by Fergler View Post
There’s also this, https://rectify11.net

Someone in r/Reaper just used it to dark-mode their setup system wide

https://www.reddit.com/r/Reaper/comm...ent_dark_mode/
I'd advise against that. That stuff can easily kill your Windows installation.
Gruust is offline   Reply With Quote
Old 04-03-2024, 06:54 PM   #35
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Quote:
Originally Posted by Gruust View Post
I'd advise against that. That stuff can easily kill your Windows installation.
I agree, it sure messed my PC pretty good, I was barely able to restore it.
fourdogslong is offline   Reply With Quote
Old 04-03-2024, 06:57 PM   #36
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
Haha, didn't even realize it's you. If that happens, I'll buy the next few versions, too! I know only two DAWs out there that don't annoy me in dark mode. And both are really buggy. How do you guys (?) keep your code base so reliable with all those frequent updates?
Gruust is offline   Reply With Quote
Old 04-04-2024, 03:40 AM   #37
Gruust
Human being with feelings
 
Join Date: Mar 2021
Posts: 79
Default

Quote:
Originally Posted by Justin View Post
I'll start on a native REAPER implementation, thanks for all of the R&D
Ok, so here is the thing: you probably don't want to use undocumented functions. I did more research and the official ones will require you to draw all menu popups yourself. The dark popup menus seem to be a glitch of the undocumented UAH* events... A quick fix could be done for title bars and menu bars, which would be great because that's what's lingering around on the screen all the time. But regarding menu bars you'd lose some accessibility for blind people or so. All other menu popups would need manual drawing it seems. Easy to do quick and dirty in an unofficial dll, but you probably don't want to touch that stuff. Sys*View32 are unfixable. Best you can do is choose colors that somewhat match 'dark' and the unchangeable scroll bars and headers. Or just replace them completely. They don't do much anyway. Or maybe you have an idea to make ÙI elements pluggable, so theme devs can write C/C++ code for them.

Every DAW with proper dark mode support so far doesn't use Win32 stuff it seems. One uses Gtk2. The others just roll their own. Personally, I'd just go 3d accelerated rendering. That's probably most similar on all platforms on the app level once it's set up, and gives total freedom and better UI performance. If you make the UI rendering pluggable, themers/modders might plug in NanoVG (https://github.com/memononen/nanovg), which already brings portability with it.

Last edited by Gruust; 04-04-2024 at 05:39 AM.
Gruust is offline   Reply With Quote
Old 04-04-2024, 07:15 AM   #38
lb0
Human being with feelings
 
Join Date: Apr 2014
Posts: 4,182
Default

Could have done with this feature a year ago - after the stupid blindingly white menu bars Windows 10 forces on everyone meant I have Reaper's main menu bar and action list outline permanently burnt into my expensive main ultra super-wide monitor . Since this happened - I used various windows hacks to force everything to dark mode. But these hacks need re-applying after most windows updates - and can even fail while using the computer (usually if resources get tight).

Would be awesome to have a native fix within Reaper - as this is what is visible on my screen 99% of the time.
__________________
Projects - Reascripts - Lua:
Smart Knobs 2 | LBX Stripper | LBX Floating FX Positioner
Donate via Paypal | LBX Tools Website
lb0 is offline   Reply With Quote
Old 04-04-2024, 07:25 AM   #39
fourdogslong
Human being with feelings
 
Join Date: Sep 2023
Posts: 1,160
Default

Quote:
Originally Posted by Gruust View Post
Download the sources as a zip file, install Visual Studio (check Desktop C/C++ development) and CMake (choose "put on path for everyone").

Unpack the sources, open native tools command Prompt (press windows key, enter x64 and it should pop up), navigate to the sources, then enter:

cmake -B build
cd build
cmake --build . --config Release

And if you want to debug or fire up Visual Studio:

explorer ReaperThemeHackDll.sln
I'm getting these errors when trying this

Code:
NMAKE : fatal error U1077: 'if not exist ..\..\bin.X64\key.snk sn -k ..\..\bin.X64\key.snk' : return code '0x1' [C:\Use
rs\mathi\Desktop\ReaperThemeHackDll-master\build\detours.vcxproj]
  Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Host
X64\x64\nmake.exe" /NOLOGO /L                 ' : return code '0x2' [C:\Users\mathi\Desktop\ReaperThemeHackDll-master\b
uild\detours.vcxproj]
  Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\bin\Host
X64\x64\nmake.exe" /NOLOGO /                  ' : return code '0x2' [C:\Users\mathi\Desktop\ReaperThemeHackDll-master\b
uild\detours.vcxproj]
  Stop.
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): e
rror MSB8066: Custom build for 'C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f9655
4714486b479\detours-mkdir.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f96554
714486b479\detours-download.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f965
54714486b479\detours-update.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f965
54714486b479\detours-patch.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f9655
4714486b479\detours-configure.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f9
6554714486b479\detours-build.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\9020850dce598d61f96
554714486b479\detours-install.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\f961141eb5c68dfc8c
0fe337063dbc3f\detours-complete.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\build\CMakeFiles\4b7700c7cb1ec400
d8e75b3ca74db1a3\detours.rule;C:\Users\mathi\Desktop\ReaperThemeHackDll-master\CMakeLists.txt' exited with code 2. [C:\
Users\mathi\Desktop\ReaperThemeHackDll-master\build\detours.vcxproj]
Any cue about what's wrong?
fourdogslong is offline   Reply With Quote
Old 04-04-2024, 06:14 PM   #40
Justin
Administrator
 
Justin's Avatar
 
Join Date: Jan 2005
Location: NYC
Posts: 16,339
Default

Quote:
Originally Posted by Gruust View Post
Haha, didn't even realize it's you. If that happens, I'll buy the next few versions, too! I know only two DAWs out there that don't annoy me in dark mode. And both are really buggy. How do you guys (?) keep your code base so reliable with all those frequent updates?

It will take some time -- your proof of concept is great, but we need to try to minimize the overhead of it (e.g. avoiding the global hooks, ideally) and do it with a lot of care. Hence, it's not simple (per my original comment)...
Justin is online now   Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 02:20 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.