gearSystem Config

System Configuration

If you don't have the BrainPack, you can skip this section.

Screen Animation Service

To enable the screen animation service, install unclutter and wmctrl:

sudo apt install unclutter wmctrl

Then, add the script to /usr/local/bin/start-kiosk.sh and make it executable:

#!/bin/bash

unclutter -display :0 -idle 0.1 -root &

HOST=localhost
PORT=4173

# Wait for Docker service to listen
while ! nc -z $HOST $PORT; do
  echo "Waiting for $HOST:$PORT..."
  sleep 0.1
done

# Launch Chromium in background
chromium \
  --kiosk http://$HOST:$PORT \
  --start-fullscreen \
  --disable-infobars \
  --noerrdialogs \
  --autoplay-policy=no-user-gesture-required \
  --disable-features=PreloadMediaEngagementData,MediaEngagementBypassAutoplayPolicies \
  --no-first-run \
  --disable-session-crashed-bubble \
  --disable-translate \
  --window-position=0,0 &

CHROMIUM_PID=$!

# Wait for Chromium window to appear
sleep 3

# Force fullscreen using wmctrl (more reliable than --kiosk flag)
for i in {1..10}; do
  if wmctrl -r "Chromium" -b add,fullscreen 2>/dev/null; then
    echo "Fullscreen applied successfully"
    break
  fi
  sleep 1
done

# Keep script running to maintain the service
wait $CHROMIUM_PID

Make it executable:

Add the below script to /etc/systemd/system/kiosk.service to launch the kiosk mode automatically on boot.

Note: To stop the kiosk service, use sudo systemctl stop kiosk.service.

AEC Service

To enable the Acoustic Echo Cancellation (AEC) service, uninstall PipeWire if it's installed and install PulseAudio

Then install PulseAudio:

Next, stop the PipeWire daemon and start the PulseAudio daemon if it's not already running:

Next, add the script to prevent PulseAudio from going into auto-exit mode.

Now, you can restart the system to ensure PulseAudio is running properly.

Note: After reboot, if the audio devices are not automatically detected, you may need to manually start PulseAudio with the command:

Now, add the script to /usr/local/bin/set-audio-defaults.sh and make it executable:

Use the following command to get the list of audio sources and sinks:

Note: Replace alsa_output.platform-88090b0000.had.hdmi-stereo with your speaker source and alsa_input.usb-R__DE_R__DE_VideoMic_GO_II_FEB0C614-00.mono-fallback with mic source

Make it executable:

Create a systemd user service to run the script on login:

Add the following content:

Now, you need to export USER ID as an environment variable in your ~/.bashrc file:

to allow the docker containers to access the PulseAudio server properly. Then, reload your Bash profile to apply the changes:

Once you're done with above steps, you can proceed with OTA setup here

Last updated

Was this helpful?