OpenConsole does not respect Dark Mode - Scrollbars are always white #22192

Closed
opened 2026-01-31 08:06:07 +00:00 by claunia · 8 comments
Owner

Originally created by @yegor-mialyk on GitHub (Aug 30, 2024).

Windows Terminal version

1.22.2362.0

Windows build number

10.0.26100.1591

Other Software

N/A

Steps to reproduce

  • Turn on Dark Mode in Windows
  • Run OpenConsole.exe

Expected Behavior

The window scrollbars follow the selected theme (Dark mode)

Actual Behavior

Scrollbars are always white.

BTW conhost does follow Dark Mode and its scrollbars have the correct color. Also there was mentioned that both are the same thing, just built by the different build systems, which looks like it is not exactly the case.

Originally created by @yegor-mialyk on GitHub (Aug 30, 2024). ### Windows Terminal version 1.22.2362.0 ### Windows build number 10.0.26100.1591 ### Other Software N/A ### Steps to reproduce - Turn on Dark Mode in Windows - Run OpenConsole.exe ### Expected Behavior The window scrollbars follow the selected theme (Dark mode) ### Actual Behavior Scrollbars are always white. BTW `conhost` does follow Dark Mode and its scrollbars have the correct color. Also [there](https://github.com/microsoft/terminal/discussions/12115) was mentioned that both are the same thing, just built by the different build systems, which looks like it is not exactly the case.
claunia added the Needs-TriageIssue-Bug labels 2026-01-31 08:06:07 +00:00
Author
Owner

@lhecker commented on GitHub (Aug 30, 2024):

People got very upset that we used the internal window theme in a public OSS project and so we removed it. Ever since then we're maintaining two versions of this directory where conhost gets built with the original theming code and OpenConsole doesn't. Safe to say, we aren't happy about that either, but what can you do... 1

We could fork the dark-mode Explorer theme, but that would require us to also fork the underlying images for the up/down buttons. I think we may have to ask for permission for that.


  1. If you're eager to have a dark mode version of OpenConsole you could compile it yourself. Perhaps if you search for a branch named "dark" you will find something. I recommend the one without "alt". (A secret between you and me. 😺) ↩︎

@lhecker commented on GitHub (Aug 30, 2024): People got very upset that we used the internal window theme in a public OSS project and so we removed it. Ever since then we're maintaining two versions of [this directory](https://github.com/microsoft/terminal/tree/main/src/internal) where conhost gets built with the original theming code and OpenConsole doesn't. Safe to say, we aren't happy about that either, but what can you do... [^1] We could fork the dark-mode Explorer theme, but that would require us to also fork the underlying images for the up/down buttons. I think we may have to ask for permission for that. [^1]: If you're eager to have a dark mode version of OpenConsole you could compile it yourself. Perhaps if you search for a branch named "dark" you will find something. I recommend the one without "alt". (A secret between you and me. 😺)
Author
Owner

@yegor-mialyk commented on GitHub (Aug 30, 2024):

@lhecker , thank you, this is very helpful! 1


  1. I'll try build it myself then. ↩︎

@yegor-mialyk commented on GitHub (Aug 30, 2024): @lhecker , thank you, this is very helpful! [^1] [^1]: I'll try build it myself then.
Author
Owner

@LuanVSO commented on GitHub (Aug 30, 2024):

DWMWA_USE_IMMERSIVE_DARK_MODE is not internal anymore

@LuanVSO commented on GitHub (Aug 30, 2024): [DWMWA_USE_IMMERSIVE_DARK_MODE](https://learn.microsoft.com/en-us/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute#:~:text=11%20Build%2022000.-,DWMWA_USE_IMMERSIVE_DARK_MODE,-Use%20with%20DwmSetWindowAttribute) is not internal anymore
Author
Owner

@DHowett commented on GitHub (Aug 30, 2024):

DWMWA_USE_IMMERSIVE_DARK_MODE is not internal anymore

DWMWA_USE_IMMERSIVE_DARK_MODE is not the private API we are avoiding. It does not control scroll bar colors.

@DHowett commented on GitHub (Aug 30, 2024): > [DWMWA_USE_IMMERSIVE_DARK_MODE](https://learn.microsoft.com/en-us/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute#:~:text=11%20Build%2022000.-,DWMWA_USE_IMMERSIVE_DARK_MODE,-Use%20with%20DwmSetWindowAttribute) is not internal anymore DWMWA_USE_IMMERSIVE_DARK_MODE is not the private API we are avoiding. It does not control scroll bar colors.
Author
Owner

@lhecker commented on GitHub (Aug 30, 2024):

@yegor-mialyk FYI if you just want to build OpenConsole.exe, you only need to build the "Host.EXE" project (it's in the "Conhost" directory in VS). You can also build it with PowerShell like this:

Set-MsBuildDevEnvironment
Invoke-OpenConsoleBuild '-p:Configuration=Release' '-t:Conhost\Host_EXE'
@lhecker commented on GitHub (Aug 30, 2024): @yegor-mialyk FYI if you just want to build OpenConsole.exe, you only need to build the "Host.EXE" project (it's in the "Conhost" directory in VS). You can also build it with PowerShell like this: ```pwsh Set-MsBuildDevEnvironment Invoke-OpenConsoleBuild '-p:Configuration=Release' '-t:Conhost\Host_EXE' ```
Author
Owner

@Fakeaccount12312 commented on GitHub (Oct 15, 2025):

Thanks for your help, but just so I get this right - we need to download over 20 GB (in visual studio dependencies) to get dark mode for a 1 MB file?

I'm not lazy or anything, and usually not the type to complain, but I don't even have that much free space, and visual studio won't accept other disks. Am I missing something or is all that really required?

And if yes - has either of you built said .exe, and if yes could you please share it with me? I don't like that kind of begging, but the reward to effort ratio is off the charts here, and sharing a little 1 MB file seems like the only practical solution here.

@Fakeaccount12312 commented on GitHub (Oct 15, 2025): Thanks for your help, but just so I get this right - we need to download over 20 GB (in visual studio dependencies) to get dark mode for a 1 MB file? I'm not lazy or anything, and usually not the type to complain, but I don't even have that much free space, and visual studio won't accept other disks. Am I missing something or is all that really required? And if yes - has either of you built said .exe, and if yes could you please share it with me? I don't like that kind of begging, but the reward to effort ratio is off the charts here, and sharing a little 1 MB file seems like the only practical solution here.
Author
Owner

@lhecker commented on GitHub (Oct 15, 2025):

Well, we were forbidden from using those private APIs publicly by people with higher seniority. Yes, they're already publicly used everywhere. We don't know either. 🫩

Here's an x64 build off of the current main branch (7f6ab5520e) with my patches applied (e405309bd0), built with MSVC 14.44.35207: OpenConsole_7f6ab55_dark_mode.zip

I recommend setting the hidden UseDx registry value to 1 to get nice D3D text rendering. You'll find a couple mentions about it in our GitHub.

@lhecker commented on GitHub (Oct 15, 2025): Well, we were forbidden from using those private APIs publicly by people with higher seniority. Yes, they're already publicly used everywhere. We don't know either. 🫩 Here's an x64 build off of the current main branch (7f6ab5520ee75e5bcda870998061fd120dbf4966) with my patches applied (e405309bd010c9732abea97928af92c75e44773a), built with MSVC 14.44.35207: [OpenConsole_7f6ab55_dark_mode.zip](https://github.com/user-attachments/files/22922891/OpenConsole_7f6ab55_dark_mode.zip) I recommend setting the hidden `UseDx` registry value to 1 to get nice D3D text rendering. You'll find a couple mentions about it in our GitHub.
Author
Owner

@Fakeaccount12312 commented on GitHub (Dec 4, 2025):

Tysm for the binary, emojis and dark mode work now in my terminal!

And changing the registry value enables colourful emoji/ever more unicode support too. It also fixes video playback in the terminal, for some reason 😄 (better performance?).
Had to disable it though because it does decrease information density, and that is what counts in the end when it comes to everyday usage, not such extravagances.
Wonder if that can be fixed though. Maybe adjusting the line spacing?

@Fakeaccount12312 commented on GitHub (Dec 4, 2025): Tysm for the binary, emojis **and** dark mode work now in my terminal! And changing the registry value enables colourful emoji/ever more unicode support too. It also fixes video playback in the terminal, for some reason 😄 (better performance?). Had to disable it though because it **does** decrease information density, and that is what counts in the end when it comes to everyday usage, not such extravagances. Wonder if that can be fixed though. Maybe adjusting the line spacing?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#22192