diff options
| author | Adam Malczewski <[email protected]> | 2026-04-11 19:06:35 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-04-11 19:06:35 +0900 |
| commit | 93f50d20a021150a0b95242be0d5dd5cae9d0185 (patch) | |
| tree | 48054581d580974651260900d1ef79d370872952 /.rules/plan/README.md | |
| download | winman-raylib-93f50d20a021150a0b95242be0d5dd5cae9d0185.tar.gz winman-raylib-93f50d20a021150a0b95242be0d5dd5cae9d0185.zip | |
plan and researchmain
Diffstat (limited to '.rules/plan/README.md')
| -rw-r--r-- | .rules/plan/README.md | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/.rules/plan/README.md b/.rules/plan/README.md new file mode 100644 index 0000000..a50dabf --- /dev/null +++ b/.rules/plan/README.md @@ -0,0 +1,50 @@ +# winman-raylib — Implementation Plan + +A compositing X11 window manager powered by raylib, written in C. + +Each step is atomic: it produces something you can build, run, and visually +verify before moving to the next step. Each phase is documented in its own +file below. + +--- + +## Phases + +| Phase | File | Summary | +|-------|------|---------| +| 0 | [phase-00-skeleton.md](plan/phase-00-skeleton.md) | Project skeleton & dev environment | +| 1 | [phase-01-raylib-window.md](plan/phase-01-raylib-window.md) | Raylib window inside Xephyr | +| 2 | [phase-02-window-manager.md](plan/phase-02-window-manager.md) | Become a window manager | +| 3 | [phase-03-compositing.md](plan/phase-03-compositing.md) | Redirect & capture window contents | +| 4 | [phase-04-input.md](plan/phase-04-input.md) | Input & focus | +| 5 | [phase-05-lifecycle.md](plan/phase-05-lifecycle.md) | Window lifecycle polish | +| 6 | [phase-06-effects.md](plan/phase-06-effects.md) | Visual effects | +| 7 | [phase-07-ewmh.md](plan/phase-07-ewmh.md) | EWMH basics | +| 8 | [phase-08-zero-copy.md](plan/phase-08-zero-copy.md) | GLX texture-from-pixmap (zero-copy) | +| 9 | [phase-09-cursor.md](plan/phase-09-cursor.md) | Cursor rendering | +| 10 | [phase-10-robustness.md](plan/phase-10-robustness.md) | Robustness & cleanup | + +--- + +## Future Phases (not yet planned in detail) + +- **Phase 11** — Multi-monitor support (XRandR) +- **Phase 12** — Virtual desktops / workspaces +- **Phase 13** — Window animations (open, close, minimize) +- **Phase 14** — Blur and advanced shader effects +- **Phase 15** — RmlUi integration for HTML/CSS-driven decorations/panels +- **Phase 16** — Configuration system (keybinds, rules, themes) +- **Phase 17** — Composite Overlay Window (COW) for production use outside Xephyr +- **Phase 18** — Tiling layout modes + +--- + +## Architecture Decisions + +- **Language:** C +- **Build system:** Make +- **Rendering:** raylib (creates the GL context and window) +- **X11 plumbing:** raw Xlib + GLX alongside raylib in the same process +- **Dev environment:** Xephyr nested X server on `:1` +- **Compositing surface:** raylib's own window (not the COW), suitable for Xephyr dev; COW migration in Phase 17 +- **Initial texture path:** CPU copy via `XGetImage` (Phase 3), upgraded to zero-copy `GLX_EXT_texture_from_pixmap` in Phase 8 |
