Isolate nested IPC sockets and define session ownership policy

This commit is contained in:
Samuel Onoja committed 2026-10-07 08:03:30 +01:00
1 parent 97026a0db7
commit ce024d4794
42 files changed
+635 -147

No files matched your search

+11 -4
View File
@@ -45,19 +45,26 @@ its target in this order:
3. `$XDG_RUNTIME_DIR/ferese/control.sock`
```sh
feresectl --socket /tmp/ferese-preview/ferese/control.sock outputs
FERESE_SOCKET=/tmp/ferese-preview/ferese/control.sock feresectl theme get -j
feresectl --socket "$XDG_RUNTIME_DIR/ferese/instances/12345-abcdef/control.sock" outputs
FERESE_SOCKET="$XDG_RUNTIME_DIR/ferese/instances/12345-abcdef/control.sock" feresectl theme get -j
```
`--socket` selects an existing server; it does not create one or change where the
compositor listens. A nested compositor uses its own runtime directory.
compositor listens. DRM uses `$XDG_RUNTIME_DIR/ferese/control.sock`. Nested
instances use `$XDG_RUNTIME_DIR/ferese/instances/<id>/control.sock`; copy the
actual path from the compositor's startup log. Each instance removes its own
socket and directory on normal shutdown. A forced kill can leave the directory
behind; later instances allocate a different one.
Clients launched by a nested compositor inherit its `FERESE_SOCKET`, so
`feresectl outputs` inside that session connects to that instance.
`autostart` launches desktop entries locally and does not use IPC.
## Follow changes
```sh
feresectl event-stream
feresectl --socket /tmp/ferese-preview/ferese/control.sock event-stream
feresectl --socket "$XDG_RUNTIME_DIR/ferese/instances/12345-abcdef/control.sock" event-stream
```
`event-stream` writes one JSON value per line and flushes each line. It always