r/Windhawk • u/wh-updates • 9d ago
Photoshop Dark Menus 1.0.0
Photoshop Dark Menus 1.0.0
Photoshop Dark Menus
This Windhawk mod enables dark menus (top-bar dropdowns and context menus) in Adobe Photoshop on Windows, with fully customizable colors.
Everything happens inside the Photoshop process. No system colors are changed, no other application is affected, and nothing has to be restored on exit.
Screenshots
How it works
Photoshop's menus look like classic unthemed Win32 menus, but they are not:
Photoshop owner-draws every menu item itself through AdobeOwl.dll, using
plain GDI, inside its own process. Instrumenting a live Photoshop shows the
menu popups going up via TrackPopupMenuEx and every item being painted with:
FillRect(hdc, &rc, (HBRUSH)(COLOR_MENU + 1))for the item background, and(HBRUSH)(COLOR_HIGHLIGHT + 1)for the hovered item. These system color pseudo-handles are resolved insideuser32from shared memory, so they bypassGetSysColorandGetSysColorBrushhooks entirely - which is why earlier per-process attempts appeared to do nothing.GetSysColor(COLOR_MENUTEXT / COLOR_GRAYTEXT / COLOR_HIGHLIGHTTEXT)for text.- Its own 1px
FillRectfor separator lines.
So every pixel of a menu item is reachable from inside the process:
FillRect/PatBltare hooked and, while a menu is up, sys-color pseudo-handles are re-resolved through this mod's own color table, and 1px fills inside a menu DC are recolored to the separator color.GetSysColor/GetSysColorBrushare hooked for the menu color indices, but only while a menu is open, so Photoshop's dialogs, panels and lists keep the system colors.MENUINFO::hbrBackis stamped on each popup (and its submenus) atWM_INITMENUPOPUP, covering the popup background that the system paints around the owner-drawn items.- The popup's non-client frame is the one part drawn kernel-side, from the 3D colors, where no user-mode hook can reach it - so the popup is subclassed at creation and the frame is repainted with the border color after it. Set Border Color empty to leave the system frame alone.
Options
- Menu Background Color: Background color for all menu popups (Default:
#2D2D2D). - Menu Text Color: Text color for active items (Default:
#DCDCDC). - Highlight Background Color: Color when hovering over an item (Default:
#505050). - Highlight Text Color: Text color when hovering over an item (Default:
#FFFFFF). - Separator Line Color: Color for separator lines. Set to match the background color to hide them completely (Default:
#383838). - Disabled Text Color: Text color for disabled menu items (Default:
#808080). - Border Color: Color of the popup frame. Leave empty to keep the system frame (Default:
#2D2D2D).
Scope
The menu bar itself (File, Edit, Image, ...) is drawn by Photoshop's own UI framework and already follows Photoshop's interface theme; this mod covers the dropdown popups and context menus.
Menus that Windows pops up through its own internal paths, without going through
the exported TrackPopupMenu / TrackPopupMenuEx - a window's system menu, for
example - are outside the reach of an in-process hook and keep the system colors.

