diff options
| author | Adam Malczewski <[email protected]> | 2026-06-14 18:10:00 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-14 18:10:00 +0900 |
| commit | f1dc82460fac283e9823e349f221036544d58e2c (patch) | |
| tree | 4d38f0f92f2870db4a4460eeddcfe138d983c59f | |
| parent | 1e1d62ec28828d11e924e5e0047041df8ed8edfc (diff) | |
| download | unbox-f1dc82460fac283e9823e349f221036544d58e2c.tar.gz unbox-f1dc82460fac283e9823e349f221036544d58e2c.zip | |
docs: add logo, refresh status, document extensions
Add the unbox logo to the README header. Replace the stale
planning/harness status with the current state (slices 0-5b done,
stage dock landed). Add an Extensions table, useful CLI flags, and
the asset hot-reload dev workflow.
| -rw-r--r-- | README.md | 50 | ||||
| -rwxr-xr-x | readme-assets/unbox_logo.png | bin | 0 -> 368049 bytes |
2 files changed, 46 insertions, 4 deletions
@@ -1,4 +1,8 @@ -# unbox +<p align="center"> + <img src="readme-assets/unbox_logo.png" alt="unbox logo" width="240"> +</p> + +<h1 align="center">unbox</h1> An experimental Wayland desktop environment for the Panasonic CF-AX3 Let's Note (touchscreen convertible, i5-4300U Haswell, 3.7 GiB RAM, Artix Linux + @@ -12,10 +16,14 @@ C++ contracts. Tiers: `kernel → core → standard`. - **Stack:** C++23 · Meson/Ninja · wlroots 0.20 (`wlr_scene`, GLES2 renderer) · RMLUi on a sibling GLES 3.2 EGL context · toml++ · doctest -- **Status:** planning / harness complete — see `tasks.md` for the live - slice status and `notes/plan.md` for the full design + rationale. +- **Status:** in active development. The kernel boots, extension host + + typed bus are in place, and core extensions exist (xdg-shell, layer-shell, + keybindings, stage-dock). Slices 0–5b are done; the Stage-Manager-style + left-edge dock (slice 10) is landed and real-seat verified on the CF-AX3. + See `tasks.md` for live slice status and `notes/plan.md` for the full + design + rationale. -## Building (slice 1 will make this real) +## Building ```sh sudo pacman -S meson ninja cmake ccache # one-time toolchain @@ -24,6 +32,40 @@ ninja -C build ./build/packages/host-bin/unbox # runs nested under labwc ``` +For UI work, run with the source assets and hot-reload armed — editing a +`.rml`/`.rcss` under `assets/` reloads the live surface (no recompile/restart): + +```sh +UNBOX_ASSET_DIR="$PWD/assets" UNBOX_DEV=1 ./build/packages/host-bin/unbox +``` + +Useful flags: `-s <cmd>` spawns a client at startup (e.g. `-s foot`), +`--config <path>` points at an explicit `unbox.toml`, `--ui-demo` loads the +throwaway demo surface. `UNBOX_HOT_RELOAD` is accepted as an alias for +`UNBOX_DEV`. + +## Extensions + +The kernel names **no** concrete feature. Everything user-facing is an +extension that talks to the kernel through typed C++ contracts (its public +header under `packages/<unit>/include/`). Each declares a tier and its +dependencies; `host-bin` is the composition root that installs them in +dependency order. + +| Extension | Tier | Depends on | What it does | +|---|---|---|---| +| **ext-xdg-shell** | core | — | Window management: the `xdg_shell` global, toplevel/popup lifecycle, click/tap-to-focus, pointer/touch routing, interactive move/resize, and the neutral hide/show minimize mechanism. Exports a `Service` with toplevel mapped/unmapped/focused events. | +| **ext-layer-shell** | core | — | `wlr-layer-shell-unstable-v1` for external clients (panels, launchers, wallpapers, OSKs). Maps protocol layers onto scene bands and keeps each output's usable area current. The anchor/exclusive-zone math is a pure core other units (e.g. tiling) can reuse. | +| **ext-keybindings** | core | xdg-shell, stage-dock | Config-driven shortcuts from `unbox.toml`, hot-reloaded live. Defaults: tap **Super** → launcher (fuzzel), **Alt+Tab / Alt+Shift+Tab** → focus rotation over all windows, **Ctrl+Alt+Backspace** → quit. A leaf consumer — exports nothing. | +| **ext-stage-dock** | standard | xdg-shell | Stage-Manager-style left-edge dock of minimized-window previews, revealed by a left-edge swipe. Snapshots windows into RMLUi textures; exports a `Service::toggle_visible()`. | + +Bindings live in `unbox.toml` (sample at the repo root; copy to +`~/.config/unbox/unbox.toml`). A missing or malformed config falls back to +the compiled-in defaults — keys never drop. + +Planned but not yet built: taskbar, launcher, on-screen keyboard, window +tiling, wallpaper, notifications. See `tasks.md` for the live roadmap. + ## Documentation - **Design & rationale:** `notes/plan.md` diff --git a/readme-assets/unbox_logo.png b/readme-assets/unbox_logo.png Binary files differnew file mode 100755 index 0000000..9b42757 --- /dev/null +++ b/readme-assets/unbox_logo.png |
