ScanSlicer/docs/runtime-config.md

87 lines
2.2 KiB
Markdown

# Runtime and Configuration
## Backend Resolution
CLI option:
```text
scanslicer --backend {auto,wayland,x11}
```
Resolution order when `--backend auto`:
1. `QT_QPA_PLATFORM` explicit hint (`wayland`, `xcb`, `x11`)
2. `XDG_SESSION_TYPE` (`wayland` or `x11`)
3. Wayland socket presence (`XDG_RUNTIME_DIR` + `WAYLAND_DISPLAY`)
4. `DISPLAY` presence (X11)
5. fallback to Wayland
## Backend Validation
- Wayland requires:
- `XDG_RUNTIME_DIR`
- `WAYLAND_DISPLAY`
- existing socket at `$XDG_RUNTIME_DIR/$WAYLAND_DISPLAY`
- X11 requires:
- `DISPLAY`
On startup failure, ScanSlicer prints backend-specific hints to stderr.
## Qt Environment Adjustments
- For Wayland mode:
- sets `QT_QPA_PLATFORM=wayland`
- unsets `DISPLAY` to avoid accidental XWayland routing
- For X11 mode:
- sets `QT_QPA_PLATFORM=xcb`
- In Flatpak/Snap:
- defaults `QT_QPA_PLATFORMTHEME=xdgdesktopportal`
- In AppImage:
- defaults `QT_QPA_PLATFORMTHEME=gtk3`
- sets `QT_NO_XDG_DESKTOP_PORTAL=1`
- In container (`/.dockerenv`):
- defaults `QT_QPA_PLATFORMTHEME=gtk3`
## Persistence Paths
### Defaults and presets
- Defaults JSON:
- host: `~/.config/scanslicer/defaults.json`
- container: `/work/.scanslicer/defaults.json`
- override: `SCANSLICER_DEFAULTS_PATH`
- Presets JSON:
- host: `~/.config/scanslicer/presets.json`
- container: `/work/.scanslicer/presets.json`
- override: `SCANSLICER_PRESETS_PATH`
### Auto-tune feedback
- host: `~/.config/scanslicer/autotune-feedback.json`
- container: `/work/.scanslicer/autotune-feedback.json`
- override: `SCANSLICER_FEEDBACK_PATH`
### Status log
- host: `~/.config/scanslicer/status.log`
- container: `/work/.scanslicer/status.log`
- override: `SCANSLICER_STATUS_LOG_PATH`
Legacy override names are still accepted for backward compatibility.
Status log behavior:
- new app launch truncates and starts a fresh session log
- batched flushing by time and queue size
## Container Runtime Notes
`docker-compose.yml` expects desktop/session wiring:
- `UID`, `GID` for correct file ownership
- `XDG_RUNTIME_DIR`, `WAYLAND_DISPLAY`
- mounted Wayland socket and DBus session bus
- host home mounted at `/host-home`
- project mounted at `/work`
See `.env.example` for a baseline.