Skip to content

Add dev script, build prereq installer, and Getting Started docs - #4

Merged
Finesssee merged 4 commits into
nesszer:mainfrom
agurod42:feat/dev-scripts-and-getting-started
Feb 28, 2026
Merged

Add dev script, build prereq installer, and Getting Started docs#4
Finesssee merged 4 commits into
nesszer:mainfrom
agurod42:feat/dev-scripts-and-getting-started

Conversation

@agurod42

Copy link
Copy Markdown

Summary

  • dev.ps1 — One-command orchestrator: checks for Rust and MinGW-w64, installs them if missing via scripts/setup-windows.ps1, then builds and launches CodexBar
  • scripts/setup-windows.ps1 — Automated prerequisite installer that sets up Rust (rustup + x86_64-pc-windows-gnu target) and MinGW-w64 (WinLibs UCRT) with PATH configuration
  • README.md — Replaced the bare "Install" section with a comprehensive "Getting Started" section covering quick start (.\dev.ps1), download, and manual build paths; fixed code block language tags from bash to powershell
  • .gitignore — Added negation rules for dev.ps1 and scripts/*.ps1 so tracked project scripts aren't ignored by the existing *.ps1 rule

Motivation

Building from source currently requires undocumented prerequisites — specifically MinGW-w64 (for dlltool.exe and the GNU linker), which is needed because the project targets x86_64-pc-windows-gnu. New contributors hit cryptic errors like:

error: error calling dlltool 'dlltool.exe': program not found

This PR makes the onboarding experience a single command:

git clone https://github.com/Finesssee/Win-CodexBar.git
cd Win-CodexBar
.\dev.ps1

What dev.ps1 supports

Flag Effect
(none) Debug build + launch codexbar menubar
-Release Optimized release build
-Verbose Passes -v to CodexBar for debug logging
-SkipBuild Skip build, run last compiled binary

What setup-windows.ps1 installs

  1. Rust via rustup-init.exe (if cargo not found)
  2. x86_64-pc-windows-gnu target via rustup target add (if not installed)
  3. MinGW-w64 (WinLibs 15.x, UCRT, POSIX threads) extracted to C:\mingw64 (if dlltool not found)
  4. Adds both ~/.cargo/bin and C:\mingw64\bin to the user PATH
  5. Verifies rustc, cargo, dlltool, and gcc are all accessible

Test plan

  • Clone fresh on a Windows machine without Rust — run .\dev.ps1 and verify it installs prerequisites and builds successfully
  • Run .\dev.ps1 on a machine with Rust + MinGW already installed — verify it skips setup and goes straight to build
  • Run .\dev.ps1 -Release and confirm release binary is produced
  • Run .\dev.ps1 -Verbose and confirm debug logging output
  • Run .\scripts\setup-windows.ps1 standalone and verify all 4 tools pass verification

🤖 Generated with Claude Code

agurod42 and others added 4 commits February 27, 2026 11:45
- Add dev.ps1: one-command orchestrator that checks prerequisites,
  installs them if missing, builds, and launches CodexBar
- Add scripts/setup-windows.ps1: automated installer for Rust
  (rustup + x86_64-pc-windows-gnu target) and MinGW-w64 (WinLibs)
- Update README.md with a Getting Started section covering quick start,
  download, and manual build paths
- Update .gitignore to allow tracked PowerShell scripts (dev.ps1,
  scripts/*.ps1) while keeping local .ps1 files ignored

The GNU toolchain requires MinGW-w64 (for dlltool.exe and the linker),
which was not documented. New contributors can now clone and run
.\dev.ps1 to get a working build environment automatically.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The test_server references were added in 73a3703 (upstream port) but
the module file and declaration were never included, causing build
failures. This adds the missing module that provides a TCP-based test
input server for automated UI testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dev.ps1 now prepends known tool paths (~/.cargo/bin, C:\mingw64\bin)
to the current session PATH if the directories exist, so builds work
without requiring a terminal restart after setup. Also fixes .EXAMPLE
references from start.ps1 to dev.ps1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cargo with x86_64-pc-windows-gnu places binaries under
target/x86_64-pc-windows-gnu/{debug,release}/ instead of
target/{debug,release}/. Search both paths.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Finesssee
Finesssee merged commit 302e195 into nesszer:main Feb 28, 2026
@Finesssee

Copy link
Copy Markdown
Collaborator

Thanks for the PR! Great developer experience improvements — the one-click dev script and setup installer make onboarding much smoother. Merged.

darknight105 added a commit to darknight105/Win-CodexBar that referenced this pull request Jul 3, 2026
…Show Window

Addresses review items nesszer#3 and nesszer#4 (structure, not behavior).

The "Pop Out Dashboard" flyout and "Show Window" were two mutually-exclusive
states of the single main window, so opening one closed the other. Give the
flyout its own OS window (label "flyout", modeled on the detached settings/
floatbar windows) so the two coexist; the flyout keeps blur-to-dismiss.

StoredSize map (load_size/save_size) in geometry_store backs set_flyout_size, so
the surface command layer no longer leaks geometry-store coordinate details or
blurs size-vs-position semantics.

window rather than a "mode != TrayPanel" negative special-case threaded through
shared window-layout code.

- New shell/flyout_window.rs: builder with disable_drag_drop_handler() (required
  for the provider-grid HTML5 drag-reorder), open/toggle/hide/is_open, and its
  own Focused-blur handler porting all four anti-flicker guards.
- Tray left-click and "Pop Out Dashboard" open the flyout window; "Show Window"
  stays on the main window. Both can now be open at once.
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