- Rust 53.6%
- TypeScript 31%
- CSS 11%
- Shell 3.5%
- HTML 0.9%
Found by editing the file the obvious way: PowerShell's `Set-Content -Encoding utf8` writes a BOM, serde_json treats it as a syntax error, and every preference silently reverted to defaults. Notepad does the same thing. The recovery path worked exactly as designed — the file was preserved as settings.json.bad rather than overwritten — but "you used the wrong editor" is not corruption, and hand-editing this file is a workflow the docs explicitly describe. The BOM is now stripped before parsing. Verified after the fix: a BOM-free file with dockCorner topLeft docks the orb at 18,18 on launch and an accentColor of #dca561 restyles the launcher, with settings.json left intact. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .hermes/plans | ||
| apps/tmux-hud | ||
| scripts | ||
| .gitignore | ||
| AGENT.md | ||
| IDEA.md | ||
| README.md | ||
local_tools
Local desktop tools for Baldur (Windows 11, user shado).
Everything here is single-host and unauthenticated by design. See AGENT.md
for the architecture and conventions.
Apps
| Name | What it does |
|---|---|
tmux-hud |
"Deck" — an always-on-top orb that expands into a launcher, with a pop-out terminal per tmux session |
Quickstart
One binary, no daemon, no container, no ports.
./scripts/build-tmux-hud.sh
./apps/tmux-hud/src-tauri/target/release/tmux-hud.exe
Or run it with hot reload while working on it:
./scripts/dev-tmux-hud.sh
The build also produces an installer at
apps/tmux-hud/src-tauri/target/release/bundle/nsis/.
Using the deck
It starts as a small orb docked above the taskbar, badged with the number of live tmux sessions. Click it to expand into the launcher; drag it to move it.
In the launcher:
- Click a session to open its active window in a pop-out.
pintoggles always-on-top,▾collapses back to the orb,✕quits.- The box at the bottom creates a new detached session;
✕on a row kills one.
The pop-out is the actual working surface: it renders the tmux window's output and takes input either by typing straight into the terminal or via the send box.
It is a monitor, not an attached terminal. It polls capture-pane and sends with
send-keys, so there's no echo until the next poll, no live cursor, and full-screen
TUIs won't be usable. That's a deliberate v1 trade — see
apps/tmux-hud/AGENT.md.
The orb is deliberately not tmux-branded: the intent is a general control deck for local tooling, with tmux as its first source.
Requirements
- Rust (stable) and VS Build Tools with the C++ workload — the build scripts expect
them at
F:/rust-toolchainandF:/vs-buildtools/BuildTools. - Node 20+.
- WebView2 (ships with Windows 11).
tmuxonPATH. SetTMUX_HUD_TMUXif the app can't find it — a GUI process launched from Explorer doesn't inherit Git Bash'sPATH.
Adding a new tool
Create apps/<name>/, give it an AGENT.md, and add scripts/dev-<name>.sh and
scripts/build-<name>.sh wrappers so nobody has to remember the toolchain setup.
Every meaningful directory gets its own AGENT.md. See AGENT.md §2.
Publishing
./scripts/publish-to-forgejo.sh
Requires $FORGEJO_TOKEN in the environment. Pushes to
https://forgejo.j4f.org.uk/hraisikai/local_tools.