kiapanahi / kiapanahi/KuriousLabs.WindowsTilingWindowManager

Implement Bastion-owned workspaces (SW_MINIMIZE hide/show, workspace-switch journal ordering)

Open
#15 0 comments 0 reactions 0 assignees View on GitHub
area:win32 type:feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.