packaging: DEV.md — dev workflow + layout map for the fork

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
28allday 2026-06-13 20:55:11 +01:00
parent f39dc4e6c7
commit 71288e2126

34
packaging/DEV.md Normal file
View file

@ -0,0 +1,34 @@
# nosignal-shell — dev notes
NoSignal's fork of `caelestia-dots/shell`. We build this (package `nosignal-shell`,
`provides`/`conflicts` `caelestia-shell`) instead of the AUR `caelestia-shell`, so
the interface/layout is ours and pinned — `pacman -Syu`/`yay` never overwrites it.
- **Branch:** `nosignal` (cut off the `v2.0.2` tag). `main` tracks upstream
(`git remote -v``upstream` = caelestia-dots/shell). Merge upstream into
`nosignal` deliberately when wanted.
- **Install path:** `/etc/xdg/quickshell/caelestia/` (namespace stays `caelestia`
so caelestia-cli + hypr binds + `~/.config/caelestia/` keep working).
- **Shipping work:** commit to `nosignal`, then bump `NOSIGNAL_SHELL_COMMIT` in
the NoSignal builder (`~/Projects/nosignal/nosignal.sh`) to the new tip + rebuild.
## Live preview loop (edit on host → reload in a VM)
From the NoSignal builder repo: `./vm/run-dev.sh` (boots the installed disk with
this checkout shared over 9p). In the VM terminal (Super+Return):
```
curl -fsSL https://raw.githubusercontent.com/28allday/nosignal-shell/nosignal/packaging/dev-mount.sh -o /tmp/d.sh && sudo sh /tmp/d.sh
setsid sh /mnt/fork/packaging/dev-sync.sh >/dev/null 2>&1 &
pkill -9 quickshell; sleep 2; caelestia shell -d
```
Then edit `.qml` here on the host — the VM shell auto-reloads in ~2-6s.
(`dev-mount.sh` links the shell at a local copy of the fork; `dev-sync.sh` polls
the 9p mount into that local copy so quickshell's file-watcher fires — 9p itself
doesn't propagate inotify.)
## Layout map
`modules/bar/` (bar) · `modules/dashboard/` · `modules/sidebar/` ·
`modules/launcher/` · `modules/session/` · `modules/drawers/` (slide-in panels) ·
`modules/lock/` · `modules/nexus/pages/` (Settings) · `modules/notifications/` ·
`modules/osd/`. Entry point: `shell.qml`. The compiled engine is `plugin/` (C++).