lazyBoy/image/computer/start.sh

47 lines
1.3 KiB
Bash
Raw Normal View History

2026-09-03 12:46:14 +00:00
#!/usr/bin/env bash
# Boot a real Linux desktop in the computer container.
# Primary screen is DISPLAY :1. Extra Team bots get their own screens via lazyboy-screen.
# Do not switch this back to a kiosk, --app, or HTML landing page.
set -uo pipefail
export DISPLAY="${DISPLAY:-:1}"
export HOME="${HOME:-/home/lazyboy}"
export SHELL=/bin/zsh
export TERM="${TERM:-xterm-256color}"
export LANG="${LANG:-zh_TW.UTF-8}"
export LC_ALL="${LC_ALL:-zh_TW.UTF-8}"
export LANGUAGE="${LANGUAGE:-zh_TW:zh:en}"
export GTK_MODULES="${GTK_MODULES:-atk-bridge}"
export GTK_A11Y="${GTK_A11Y:-atspi}"
export GNOME_ACCESSIBILITY="${GNOME_ACCESSIBILITY:-1}"
export NO_AT_BRIDGE="${NO_AT_BRIDGE:-0}"
2026-09-03 12:46:14 +00:00
mkdir -p "$HOME" /tmp/lazyboy /tmp/.X11-unix
2026-09-04 09:08:56 +00:00
rm -f /tmp/lazyboy/ready
2026-09-03 12:46:14 +00:00
export PATH="$HOME/.local/bin:/usr/local/bin:$PATH"
cd "$HOME"
2026-09-06 03:43:38 +00:00
python3 /usr/local/bin/lazyboy-rotate-logs &
2026-09-03 12:46:14 +00:00
if [[ -n "${LAZYBOY_CONTROL_TOKEN:-}" ]]; then
2026-09-06 03:43:38 +00:00
lazyboy-controld >>/tmp/lazyboy/control.log 2>&1 &
2026-09-03 12:46:14 +00:00
fi
if command -v dbus-launch >/dev/null 2>&1; then
eval "$(dbus-launch --sh-syntax)"
fi
lazyboy-screen boot-primary || exit 1
2026-09-04 09:08:56 +00:00
touch /tmp/lazyboy/ready
2026-09-03 12:46:14 +00:00
pid=""
if [[ -f /tmp/lazyboy/xvfb-1.pid ]]; then
pid="$(cat /tmp/lazyboy/xvfb-1.pid)"
fi
if [[ -z "$pid" ]]; then
echo "Xvfb pid missing" >&2
exit 1
fi
while kill -0 "$pid" 2>/dev/null; do
sleep 2
done
echo "Xvfb exited" >&2
exit 1