kiapanahi / kiapanahi/KuriousLabs.WindowsTilingWindowManager
Implement Bastion-owned workspaces (SW_MINIMIZE hide/show, workspace-switch journal ordering)
- Dominant language
- C#
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## Problem / goal
Implement Bastion-owned workspaces: `SW_MINIMIZE`-based hide/show for outgoing/incoming window sets, with proper write-ahead journal ordering for a full workspace switch (not just the single-window hide/restore the v0.1 journal issue covers).
## References
- `DESIGN.md` §4 (Workspace Model in full) — why `SW_MINIMIZE` wins over cloaking/`SW_HIDE`/off-screen parking; the exact switch sequence: write-ahead journal -> minimize outgoing set -> per-window `SetWindowPlacement` into tile -> one Defer batch.
- `DESIGN.md` §3.7 (Workspace Manager).
- Depends on the v0.1 write-ahead-journal issue (extends its schema to multi-workspace) and the Placement Executor issue (`SetWindowPlacement`-into-tile reuse).
## Acceptance criteria
- [ ] Switching workspaces minimizes the outgoing window set via `ShowWindowAsync(SW_MINIMIZE)` by default, with per-rule `SW_HIDE`/`ITaskbarList` curation as an opt-in.
- [ ] The v0.1 journal schema is extended (not replaced) to record window -> workspace assignment, still written before any hide call.
- [ ] Incoming windows restore directly into their tile via `SetWindowPlacement` (reusing the Executor's coordinate-space conversion), landing with no flash at stale geometry.
- [ ] `bastion restore-windows` (v0.1) continues to work correctly against the multi-workspace journal schema.
- [ ] Bastion maintains an independent, persistent layout tree per (native-desktop GUID x monitor) per DESIGN.md §4 — this issue covers native-desktop coexistence (never cloaking foreign windows, never depending on the specific cloak reason flag), not the full per-desktop-partition mechanism (that's its own v0.4 issue) — a single native desktop's worth of Bastion-owned workspaces is in scope here.
Contributor guide
Research direction
Start with DESIGN.md §4 and §3.7 to understand the workspace model, switch sequence, and Workspace Manager. Then inspect the dependent v0.1 write-ahead-journal issue and Placement Executor issue, since this work extends the journal schema and reuses coordinate conversion. Done means multi-workspace switching meets every acceptance criterion, including restore-windows compatibility and native-desktop coexistence.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- desktop, operating-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100