Fix breadd skel config schema; remove temp live diagnostic
All checks were successful
Mirror to GitHub / mirror (push) Successful in 6s

- breadd.toml: the shipped skel used a stale [adapters] schema
  (keyboard/mouse/touchpad/gamepad booleans); breadd 0.6.4 expects
  hyprland/udev/power/network/bluetooth structs. `bluetooth = true` collided
  with the real AdapterToggle field and aborted the daemon at startup.
- Drop the temporary bos-live-diag serial diagnostic now that the live-session
  failures are diagnosed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Breadway 2026-06-14 19:38:06 +08:00
parent 122cd39cb1
commit 2a866144f4
4 changed files with 21 additions and 31 deletions

View file

@ -1,8 +1,21 @@
# breadd daemon configuration.
# Every section is optional and every adapter defaults to enabled; this file
# just makes the defaults explicit. See the bread docs for the full schema.
[daemon]
log_level = "info" log_level = "info"
[adapters] [adapters.hyprland]
keyboard = true enabled = true
mouse = true
touchpad = true [adapters.udev]
bluetooth = true enabled = true
gamepad = true
[adapters.power]
enabled = true
[adapters.network]
enabled = true
[adapters.bluetooth]
enabled = true

View file

@ -1,21 +0,0 @@
#!/bin/bash
# TEMPORARY live-session diagnostic. Reports why the bread desktop components
# do/don't start. Runs as liveuser (Hyprland exec-once, so it has the Wayland
# env), and writes the report to the serial port via sudo (the port is
# root-only) so it can be read on the VM host.
sleep 7
{
echo "================ BOS LIVE DIAG ================"
echo "user=$(id -un) WAYLAND_DISPLAY=$WAYLAND_DISPLAY XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR"
echo "--- which bread bins ---"
for b in breadd breadbar breadbox breadbox-sync breadcrumbs breadpad bos-settings; do
printf '%s: ' "$b"; command -v "$b" || echo MISSING
done
echo "--- running bread procs ---"; pgrep -a bread || echo "(none running)"
echo "--- ldd breadbar (missing libs) ---"
ldd "$(command -v breadbar 2>/dev/null)" 2>&1 | grep -i "not found" || echo "(all libs resolved)"
echo "--- breadbar foreground test (6s) ---"; timeout 6 breadbar 2>&1; echo "breadbar rc=$?"
echo "--- breadd foreground test (4s) ---"; timeout 4 breadd 2>&1; echo "breadd rc=$?"
echo "--- tail hyprland-live.log ---"; tail -60 /tmp/hyprland-live.log 2>/dev/null
echo "================ END DIAG ================"
} 2>&1 | sudo tee /dev/ttyS0 >/dev/null

View file

@ -29,7 +29,6 @@ if ! grep -q bos-launch-calamares "$HYPR" 2>/dev/null; then
# --- live-media installer (added by bos-live-setup; absent on installed system) --- # --- live-media installer (added by bos-live-setup; absent on installed system) ---
exec-once = bos-launch-calamares exec-once = bos-launch-calamares
bind = SUPER, I, exec, bos-launch-calamares bind = SUPER, I, exec, bos-launch-calamares
exec-once = /usr/local/bin/bos-live-diag
EOF EOF
fi fi
@ -41,8 +40,8 @@ if [[ "$(tty)" == /dev/tty1 ]] && [[ -z "$WAYLAND_DISPLAY" ]]; then
export WLR_NO_HARDWARE_CURSORS=1 export WLR_NO_HARDWARE_CURSORS=1
# Log to a user-writable path (/var/log is root-only; redirecting there # Log to a user-writable path (/var/log is root-only; redirecting there
# would fail and silently keep the compositor from ever launching). # would fail and silently keep the compositor from ever launching).
Hyprland 2>&1 | sudo tee /tmp/hyprland-live.log /dev/ttyS0 >/dev/null Hyprland &>/tmp/hyprland-live.log
echo "Hyprland exited. Log: /tmp/hyprland-live.log" | sudo tee /dev/ttyS0 echo "Hyprland exited (rc=$?). Log: /tmp/hyprland-live.log"
exec bash -i exec bash -i
fi fi
EOF EOF

View file

@ -20,5 +20,4 @@ file_permissions=(
["/usr/local/bin/bos-live-setup"]="0:0:755" ["/usr/local/bin/bos-live-setup"]="0:0:755"
["/usr/local/bin/bos-launch-calamares"]="0:0:755" ["/usr/local/bin/bos-launch-calamares"]="0:0:755"
["/usr/local/bin/bos-copy-kernel"]="0:0:755" ["/usr/local/bin/bos-copy-kernel"]="0:0:755"
["/usr/local/bin/bos-live-diag"]="0:0:755"
) )