33 lines
1.1 KiB
Bash
33 lines
1.1 KiB
Bash
#!/usr/bin/env bash
|
|
# Sourced on autologin on tty1; no system service owns the compositor.
|
|
[[ "$(tty)" == /dev/tty1 ]] || return 0
|
|
[[ -z "${WAYLAND_DISPLAY:-}" ]] || return 0
|
|
export WLR_RENDERER_ALLOW_SOFTWARE=1
|
|
export XDG_SESSION_TYPE=wayland
|
|
keyboard_layout=$(python3 - /mnt/intake-data/config/workshop.json <<'PY'
|
|
import json
|
|
import pathlib
|
|
import sys
|
|
|
|
try:
|
|
value = json.loads(pathlib.Path(sys.argv[1]).read_text()).get('keyboard_layout', 'de')
|
|
except (OSError, ValueError):
|
|
value = 'de'
|
|
print(value if value in ('de', 'us') else 'de')
|
|
PY
|
|
)
|
|
export XKB_DEFAULT_LAYOUT="$keyboard_layout"
|
|
if [[ ! -w /mnt/intake-data ]]; then
|
|
printf '\nCS-R Intake: data partition not writable; no scan can be saved.\n' >&2
|
|
printf 'Press Enter for diagnostic console...'
|
|
read -r _
|
|
return 0
|
|
fi
|
|
if command -v cage >/dev/null && [[ -x /usr/local/bin/intake-gui ]]; then
|
|
cage -- /usr/local/bin/intake-gui --data /mnt/intake-data
|
|
printf '\nGUI exited. You are at the diagnostic terminal (tty1).\n' >&2
|
|
else
|
|
printf '\nCage or GUI missing. Attempting controller fallback.\n' >&2
|
|
/usr/local/bin/intake-controller --data /mnt/intake-data || true
|
|
fi
|