Skip to content

Add fun visual-effect commands (Confetti, Fireworks, Snow, Rain) + expanded tray menu#631

Open
temperatio wants to merge 3 commits into
SuperCmdLabs:mainfrom
temperatio:feat/feat-confetti
Open

Add fun visual-effect commands (Confetti, Fireworks, Snow, Rain) + expanded tray menu#631
temperatio wants to merge 3 commits into
SuperCmdLabs:mainfrom
temperatio:feat/feat-confetti

Conversation

@temperatio

Copy link
Copy Markdown

Summary

  • Adds four native "fun" system commands modeled after Raycast's built-in Confetti extension: Confetti, Fireworks, Snow, and Rain. Each renders via a shared transparent, always-on-top overlay window helper (showFullScreenOverlayEffect) and shows up in the command palette like any other system command.
  • Bursts stack instead of replacing one another — retriggering a command while a previous burst is still animating layers a new overlay window on top rather than closing the old one, matching Raycast's actual behavior.
  • Expands the menu-bar tray menu with Extension Store..., SuperCmd Settings..., a Launch at Login checkbox, and Check for Updates... — previously it only had Open/Quit.
  • Fixes an npm install failure on single-architecture Macs (e.g. Apple Silicon-only): @esbuild/darwin-x64 / @esbuild/darwin-arm64 were pinned as hard dependencies, causing EBADPLATFORM instead of being skipped like normal optional platform packages. Moved to optionalDependencies — the existing postinstall script already backfills whichever platform binary is missing for universal builds.

Details

  • system-confetti: multi-burst rectangle particles tuned for wide screen coverage.
  • system-fireworks: staggered rocket launches with trails that explode into radial showers.
  • system-snow: continuously-recycled snowfall with sway, density scaled to screen size.
  • system-rain: wind-angled streaks with ground splashes, same density scaling.
  • Refactored the app-updater check/download/restart flow and the open-at-login apply+persist pairing into standalone functions (runAppUpdaterCheckAndInstall, setOpenAtLogin) so the new tray items and their existing IPC handlers share the same code instead of duplicating it.

Test plan

  • npm run build:main / build:renderer / build:native all succeed
  • Verified end-to-end with a Playwright _electron driver against an isolated --user-data-dir profile (never touched a real user profile): each command appears in the palette with correct title/icon, executing it spawns the real overlay window, and windows auto-close with no leaks
  • Verified bursts stack (firing twice in quick succession keeps both overlay windows alive simultaneously)
  • Verified the three new tray actions by calling the exact functions/IPC channels they invoke (setOpenAtLogin, system-open-extension-store, app-updater-check-and-install) — no crashes, expected results
  • Packaged and manually installed an unsigned arm64 DMG locally to confirm the effects look right on a real display
  • Manual review of visual density/timing tuning (subjective, may want further tweaks)

@esbuild/darwin-arm64 and @esbuild/darwin-x64 were pinned as regular
dependencies, so npm install failed with EBADPLATFORM on any single-
architecture Mac (e.g. arm64-only) instead of just skipping the
mismatched one. The postinstall script already backfills whichever
platform binary is missing for universal builds, so the hard pin was
both redundant and breaking fresh installs.
Adds four native "fun" system commands modeled after Raycast's built-in
Confetti extension, each rendering via a shared transparent always-on-top
overlay window helper (showFullScreenOverlayEffect):

- Confetti: multi-burst rectangle particles, tuned for wide screen coverage
- Fireworks: staggered rocket launches with trails that explode into
  radial showers
- Snow: continuously-recycled snowfall with sway, density scaled to
  screen size
- Rain: wind-angled streaks with ground splashes, same density scaling

Bursts stack instead of replacing one another — retriggering a command
while a previous burst is still animating layers a new overlay window on
top rather than closing the old one, matching Raycast's behavior.
…menu

The menu bar tray only offered Open/Quit. Adds direct access to SuperCmd
Settings, the Extension Store, a manual "Check for Updates..." action, and
a "Launch at Login" checkbox toggle — all standard menu-bar app affordances.

Extracted the app-updater check/download/restart flow and the open-at-login
apply+persist pairing into standalone functions (runAppUpdaterCheckAndInstall,
setOpenAtLogin) so the tray items and their existing IPC handlers share the
same code instead of duplicating it.
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