StackyNG v0.7.0#
Simple icon stacks solution for Windows 11
StackyNG is a small, fast program for Windows that displays the contents of a directory as a list of clickable, labeled icons. It’s designed to replace multiple taskbar shortcuts with a single, organized menu.
View Features | View Tutorial | View Build Guide | Future Roadmap
New in v0.7.0 (StackyNG)#
- Modular Refactor: Clean, maintainable codebase split into logic-specific modules.
- Improved Stability: Fixed menu “escaping” and UI ghosting issues.
- Expanded Build Support: Native support for VS2022, CMake, Ninja , NMake, and MSBuild.
- Structured Configuration: Enhanced
stacky.jsonfor advanced shortcut overrides. - Custom Icon Overrides: Support for
.png,.ico, and other formats with transparency. - Dark Mode Support: Automatically follows system theme or allows manual override.
- Dynamic Tooltips: Hover over items to see their full path or description.
- Argument & Admin Support: Launch shortcuts with custom command-line arguments or as Administrator.
- Asynchronous Scanning: UI remains responsive while the cache is being built.
- Memory-Mapped Cache: High-performance Win32 cache I/O.
- High DPI Support: Optimized icon extraction and scaling.
Architecture Overview#
StackyNG follows an optimized scan-cache-display cycle:
- Command Line: Receives a folder path as its first argument.
- Instance Signaling: If another instance is running, signals it to show the menu and exits.
- Asynchronous Scan: Recursively scans the target folder for
.lnkfiles on a background thread. - Memory-Mapped Cache:
- Loads the icon and tree structure using memory mapping for maximum performance.
- Validates cache timestamp against filesystem modification times.
- Modern Icon Extraction: Uses Windows Shell
IImageListand WIC to extract and scale icons correctly for High DPI. - Menu Construction: Dynamically builds a hierarchical
HMENU. - Interaction: Displays the menu at the cursor position and launches the target with
ShellExecute.
Customization (stacky.json)#
StackyNG supports advanced customization via a stacky.json file. You can override names, icons, and launch arguments for individual items.
Example:
"MyGame": {
"name": "Play Modern Warfare",
"icon": "icons/mw.png",
"args": "--developer-mode",
"admin": true
}See Tutorial for full configuration details. For a setup tool see setup stacky
How to Use It#
-
Create a Folder: Place shortcuts to your programs inside it. Subdirectories can be used for organization.
-
Create a Shortcut: Make a Windows shortcut to
stacky.exe. -
Set the Target: Edit the shortcut’s target to include your folder path:
"C:\Path\To\stacky.exe" "C:\Path\To\Your\StackFolder" -
Pin to Taskbar: Drag the shortcut to the taskbar.
Compilation#
See BUILD.MD for detailed build instructions using CMake, Visual Studio, or the command line.
Build Requirements#
- Compiler: C++17 compatible (Visual Studio 2022 or later).
- Architectures: x64, x86, ARM64.
- SDKs: Windows SDK (Win32 + WIC + Common Controls APIs).
- Libraries:
user32,gdi32,shell32,ole32,comctl32,windowscodecs.
License#
StackyNG is open source and released under the Apache License 2.0. Original project by Pawel Turlejski. Modernized and maintained by B Dib.