Skip to content

Add Taskbar Folder Menus v0.5#4485

Open
sb4ssman wants to merge 12 commits into
ramensoftware:mainfrom
sb4ssman:sb4ssman-taskbar-folder-menus
Open

Add Taskbar Folder Menus v0.5#4485
sb4ssman wants to merge 12 commits into
ramensoftware:mainfrom
sb4ssman:sb4ssman-taskbar-folder-menus

Conversation

@sb4ssman

Copy link
Copy Markdown
Contributor

Summary

Adds Taskbar Folder Menus (taskbar-folder-menus) — compact tray buttons that open configured Shell targets as native popup menus.

Recreates the most useful part of the classic Windows taskbar toolbar workflow: click a small tray button and browse a folder, drive, Desktop, or Control Panel without minimizing any windows.

Features

  • One or more configurable folder buttons injected into the system tray
  • Native Shell popup menus backed by PIDLs — Shell icons, virtual folders, and namespace roots all work
  • Subfolders expand on hover with lazy loading (only fetched when opened — large folders like C:\ open instantly)
  • "Open in Explorer" shortcut at the top of every subfolder popup
  • Right-click any menu item for the full Windows Shell context menu via IContextMenu
  • Supports normal paths, drive roots, and Shell namespace roots (shell:Desktop, shell:ControlPanelFolder, etc.)
  • Environment variables expanded in targets (%USERPROFILE%, %SystemRoot%, etc.)
  • Configurable grid layout: row, column, or grid with fill order and alignment control
  • Full color theming: text, background, hover (#4488FF default), pressed, border, corner radius, opacity, shine

Entry format

🖥=shell:Desktop
⚙=shell:ControlPanelFolder
📥=%USERPROFILE%\Downloads
C:=C:\

Technical

  • Same GetTaskbarXamlRoot / GetSystemTrayModuleHandle / IconView::IconView pattern as other tray mods
  • Menu owner subclassed via SetWindowSubclass for WM_INITMENUPOPUP (lazy subfolder load) and WM_MENURBUTTONDOWN (right-click → IContextMenu)
  • ILCloneFull used to maintain PIDL copies for both lazy-load queue and right-click lookup
  • Shell namespace enumerated via IShellFolder::EnumObjects; items executed via ShellExecuteEx by PIDL
  • Duplicates in shell:Desktop suppressed automatically

Test plan

  • Default settings load two buttons (Desktop + Control Panel)
  • Clicking a button opens the correct folder as a popup menu with Shell icons
  • Subfolders expand on hover with "Open in Explorer" at top
  • Right-clicking an item shows Windows Shell context menu
  • shell:Desktop, shell:ControlPanelFolder, path targets, and %VAR% expansion all work
  • Grid layout modes (row/column/grid) and all position options work
  • Mod loads and unloads cleanly with no crashes

🤖 Generated with Claude Code

@m417z

m417z commented Jun 22, 2026

Copy link
Copy Markdown
Member
  • I think it makes more sense for the folders option to be an array.
  • If HookTaskbarDllSymbols fails, return FALSE at Wh_ModInit.
  • Instead of handling Taskbar.View.dll and hooking LoadLibraryExW, you can hook TrayUI::StartTaskbar and simplify the implementation. There are several mods you can use as reference, such as taskbar-ai-quota.
  • You might want to clarify that this is a Win11-only mod, and that it won't work on Win10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants