Skip to content

feat(windows): system-tray launcher for vizd.exe (vizd-tray) - #158

Merged
On1x merged 3 commits into
masterfrom
windows-vizd-tray
Aug 21, 2026
Merged

feat(windows): system-tray launcher for vizd.exe (vizd-tray)#158
On1x merged 3 commits into
masterfrom
windows-vizd-tray

Conversation

@On1x

@On1x On1x commented Aug 21, 2026

Copy link
Copy Markdown
Member

What

Adds a system-tray launcher for the Windows vizd.exe node, so closing the console window hides the node to the tray instead of stopping it.

  • vizd-tray (contrib/windows/vizd-tray/, Go, static, GUI subsystem): runs vizd.exe -d data sharing its console (keeps vizd's colored log output), tray menu Open window / Close vizd / Enable autostart / Quit. Autostart writes a HKCU\...\Run entry; closing the console (X) hides it to the tray.
  • vizd patch (programs/vizd/main.cpp): Windows-only SetConsoleCtrlHandler that survives CTRL_CLOSE_EVENT (returns TRUE), so the launcher can hide the window. CTRL_C_EVENT still falls through to the appbase SIGINT handler for a clean shutdown.
  • CI (windows-release.yml): setup-go + go build -H windowsgui step, vizd-tray.exe attached to the Windows release next to vizd.exe.

Safety

  • The vizd patch is entirely inside #ifdef _WIN32 — it is compiled out on Linux, so the vizd:latest Docker image is functionally unchanged (no consensus / no HF14 impact).
  • Verified locally: single-TU -fsyntax-only on main.cpp (Linux, EXIT 0) and CGO_ENABLED=0 GOOS=windows go build + go vet on the launcher.

Note

The desktop bundle (start-viz.bat, config.ini, bundled clients) still lives on the pm branch; master's Windows release is bare vizd.exe + cli_wallet.exe. This PR ships vizd-tray.exe alongside them.

🤖 Generated with Claude Code

On1x added 3 commits August 21, 2026 10:46
Add a Windows-only SetConsoleCtrlHandler that returns TRUE on
CTRL_CLOSE_EVENT so the tray launcher can hide the console window
instead of vizd being terminated when the user closes it. CTRL_C_EVENT
still falls through to the appbase SIGINT handler for a clean shutdown.
A tiny static Go launcher (GUI subsystem) that runs vizd.exe sharing its
console so vizd keeps its colored log output, and adds a tray icon with
Open window / Close vizd / Enable autostart / Quit. Closing the console
hides it to the tray instead of stopping the node.
Add a setup-go + go build step (static, -H windowsgui) and attach the
resulting vizd-tray.exe to the Windows release next to vizd.exe.
@On1x
On1x merged commit c81640c into master Aug 21, 2026
2 checks passed
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.

1 participant