# App Launcher

Cross-platform (Windows-first) system tray launcher for the apps, scripts, documents, and URLs you reach for constantly. Built in PyQt5 with a config studio, reusable tray window, and auto-update from this site.

Started because Windows' built-in shortcut surface is awful and I kept losing track of the dozen tools I needed at hand.

## What it does

Sits in the system tray with dynamic submenus for every entry in your config — each with its own icon, optional keyboard shortcut, and contextual actions (run as admin, reveal in Explorer, open containing folder).

It launches the things you'd otherwise hunt for: executables, scripts, registry files, AutoHotkey, JARs, URLs, documents, media. Dependencies like `java`, `autohotkey`, or `jupyter` are validated before dispatch — missing tools surface as tray notifications instead of silent failures.

## Config Studio

Drag-and-drop editor with quick-add from file, URL, or clipboard. Reorder entries, edit metadata, preview themes live. The config window can stay open across sessions — changes persist immediately and the tray updates without a restart.

## Portable or installed

Config lives beside the `.exe` in portable mode, or under `%APPDATA%/AppLauncher` when installed. Auto-start hooks toggle automatically.

## Self-updating

Frozen builds poll this site on launch and every 24 h. New releases verify against a SHA-256 manifest, install from the tray menu, and restart cleanly.

## Stack

Python 3.9+ · PyQt5 · PyInstaller. Themed Qt palettes (`midnight`, `dusk`, `light`) with matching tray-icon sets generated on demand. Runtime logs to a rotating 10 MB file in the config directory.
