ScanSlicer/docs/runtime-config.md

2.2 KiB

Runtime and Configuration

Backend Resolution

CLI option:

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.