Skip to content

BDib/stacky-NG

Repository files navigation

StackyNG v0.7.0.5

A 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.

it's an improved version of the now defunct 7stacks, though I used both 7Stacks and the original Stacky v0.3.1, This version adds many features and updated tooling for windows 11.


From v0.4

  • Hierarchical Menus: Recursively scans subdirectories and displays them as submenus.
  • Smart Filtering: Only directories containing Windows shortcuts (.lnk files) are displayed.
  • Modern C++: Refactored to use C++17 standards (std::filesystem, RAII, etc.).
  • Command-Line Build: Added support for compiling using Visual Studio Build Tools without the IDE.
  • Real-time Monitoring: Automatically detects changes in the target folder while the menu is active.
  • Centralized Logging: Diagnostic information saved to `!stacky.log
  • CMake Build System: Added support for cross-architecture builds (x86, x64, ARM64).

Documentation

You can find our full documentation, including roadmaps and guides, at the link below:

https://bdib.github.io/stacky-NG/docs/


New in v0.7.0.5 (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.json for 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:

  1. Command Line: Receives a folder path as its first argument.
  2. Instance Signaling: If another instance is running, signals it to show the menu and exits.
  3. Asynchronous Scan: Recursively scans the target folder for .lnk files on a background thread.
  4. Memory-Mapped Cache:
    • Loads the icon and tree structure using memory mapping for maximum performance.
    • Validates cache timestamp against filesystem modification times.
  5. Modern Icon Extraction: Uses Windows Shell IImageList and WIC to extract and scale icons correctly for High DPI.
  6. Menu Construction: Dynamically builds a hierarchical HMENU.
  7. 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
}

How to Use It

  1. Create a Folder: Place shortcuts to your programs inside it. Subdirectories can be used for organization.

  2. Create a Shortcut: Make a Windows shortcut to stacky.exe.

  3. Set the Target: Edit the shortcut’s target to include your folder path:

    "C:\Path\To\stacky.exe" "C:\Path\To\Your\StackFolder"
    
  4. Pin to Taskbar: Drag the shortcut to the taskbar.

look in Tools for some helper tools, Binaries provided in Latest Releass.


Compilation

See Build 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.

About

StackyNG 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.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors