summaryrefslogtreecommitdiffhomepage
path: root/.rules/plan/README.md
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-04-11 19:06:35 +0900
committerAdam Malczewski <[email protected]>2026-04-11 19:06:35 +0900
commit93f50d20a021150a0b95242be0d5dd5cae9d0185 (patch)
tree48054581d580974651260900d1ef79d370872952 /.rules/plan/README.md
downloadwinman-raylib-93f50d20a021150a0b95242be0d5dd5cae9d0185.tar.gz
winman-raylib-93f50d20a021150a0b95242be0d5dd5cae9d0185.zip
plan and researchmain
Diffstat (limited to '.rules/plan/README.md')
-rw-r--r--.rules/plan/README.md50
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