srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2025-10-03 22:09:00 +0200
committersrdusr <[email protected]>2025-10-03 22:09:00 +0200
commitd7031dd060ec12e6de334518aa75122c65794047 (patch)
tree7e076133bf8415263599b2ebe04c9bd53b1ed43a /README.md
parent43cba8d10ab4c30f492ec707b7fbcecef2a7c19d (diff)
downloadsrdwm-d7031dd060ec12e6de334518aa75122c65794047.tar.gz
srdwm-d7031dd060ec12e6de334518aa75122c65794047.zip
Split ipc.rs into ipc/ by concern, and fix a stale README
Codebase modularization, requested directly. Surveyed the whole workspace first: at ~38k lines it's already organized by topic (crates/core/src/manager/, crates/wayland/src/{state,udev,decoration}/ already split into small per-concern files) - crates/platform/src/ ipc.rs was the one real outlier, 1894 lines holding the socket lifecycle, every payload type, both dispatch match statements, and its own tests all in one file. Split into ipc/{mod,types,dispatch,tests}.rs by concern, matching the established pattern exactly - mod.rs keeps IpcServer itself, types.rs the response/event structs and snapshot functions, dispatch.rs handle_request/handle_set, tests.rs the existing suite moved verbatim. Extracted via exact line-range copies against git's own HEAD content (not retyped), specifically to rule out a transcription bug in a file this central. Pure reorganization: build/test/clippy clean before and after, exact same test count (29 in crates/platform) both times. README.md separately corrected: it still linked to legacy-cpp/ (deleted this shift) and described the Wayland backend as the smaller, less-done one - backwards from current reality, where Wayland is the daily-driver target and by far the more complete backend.
Diffstat (limited to 'README.md')
-rw-r--r--README.md30
1 files changed, 21 insertions, 9 deletions
diff --git a/README.md b/README.md
index 55c4b85..02f172d 100644
--- a/README.md
+++ b/README.md
@@ -5,25 +5,37 @@ like a native window manager on every platform it targets rather than a
compromise between them: real title bars with drag/resize/minimize/maximize/close
on every backend that can support them, not just a border.
-This is a Rust rewrite of an earlier C++ prototype (preserved at
-[`legacy-cpp/`](legacy-cpp/)); see [`docs/PRIOR_ART.md`](docs/PRIOR_ART.md)
-for what carried over, what got fixed, and what other window managers
-informed the design.
+This is a Rust rewrite of an earlier C++ prototype; see
+[`docs/PRIOR_ART.md`](docs/PRIOR_ART.md) for what carried over, what got
+fixed, and what other window managers informed the design. The C++
+version itself has been removed from the tree (it was actively
+misleading to keep alongside a fully working rewrite) - git history
+still has it if anyone needs it.
## Status
-Linux is the primary target and the only one verified end-to-end so far:
+Linux is the primary target and the only one verified end-to-end so far.
+The Wayland backend is the daily-driver target and by far the more
+complete of the two - a real `smithay` compositor with its own GPU
+render path, session lock, desktop icons, global menu, layer-shell
+(bars/docks), fully rendered decorations, and more:
| Backend | Status |
|---|---|
-| X11 | Working - reparenting WM with a drawn title bar (buttons, drag, resize), verified live under Xephyr |
-| Wayland | Working, smaller scope - real `smithay` compositor, verified to run; decorations have no text yet, global keybindings use a coarse heuristic |
+| Wayland | Daily-driver complete: real decorations (titlebar text, resize, snap), session lock, desktop icons with right-click menus, global menu (`com.canonical.AppMenu.Registrar`/dbusmenu), layer-shell, XWayland, an optional GPU (GBM+EGL) render path alongside the default software one, fake (headless) monitors, and a Phase-2 multi-cursor primitive (pinning a virtual pointer to one window) |
+| X11 | Working - reparenting WM with a drawn title bar (buttons, drag, resize, right-click window menu), feature-audited for parity with the Wayland backend |
| Windows | Designed, not built (no Windows target in dev sandbox) |
| macOS | Designed, not built (no macOS target in dev sandbox) |
Full detail, including exactly what's real vs. stubbed and why, is in
-[`docs/IMPLEMENTATION_STATUS.md`](docs/IMPLEMENTATION_STATUS.md). Crate
-layout and design rationale are in [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md).
+[`docs/IMPLEMENTATION_STATUS.md`](docs/IMPLEMENTATION_STATUS.md) --
+note that some of its own detail (test counts, specifically) predates
+this rewrite's later growth; `docs/TODO.md` is the actively-maintained
+list of what's pending, with `cargo test --workspace` as the actual
+current count. Crate layout and design rationale are in
+[`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md); a survey against
+comparable compositors and full desktop environments is in
+[`docs/FEATURE_GAP.md`](docs/FEATURE_GAP.md).
## Building