| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- [Unit]
- Description=Dune Weaver Touch Interface
- After=multi-user.target
- After=network-online.target
- After=systemd-user-sessions.service
- Wants=network-online.target
- [Service]
- Type=simple
- User=pi
- Group=pi
- WorkingDirectory=/home/pi/dune-weaver-touch
- # TTY allocation for proper console/GPU access
- TTYPath=/dev/tty1
- StandardInput=tty
- StandardOutput=journal
- StandardError=journal
- # EGLFS platform - direct framebuffer, no X11/Wayland needed
- Environment=QT_QPA_PLATFORM=eglfs
- Environment=QT_QPA_EGLFS_WIDTH=800
- Environment=QT_QPA_EGLFS_HEIGHT=480
- Environment=QT_QPA_EGLFS_INTEGRATION=eglfs_kms
- Environment=QT_IM_MODULE=qtvirtualkeyboard
- # DRM/GPU access
- Environment=XDG_RUNTIME_DIR=/run/user/1000
- # Kiosk mode flag
- Environment=KIOSK_MODE=1
- # Wait for backend to be available before starting
- ExecStartPre=/bin/bash -c 'until curl -s http://localhost:8080/serial_status > /dev/null 2>&1; do sleep 2; done'
- ExecStart=/home/pi/dune-weaver-touch/venv/bin/python /home/pi/dune-weaver-touch/main.py
- # Restart policy
- Restart=always
- RestartSec=10
- StartLimitInterval=200
- StartLimitBurst=5
- [Install]
- WantedBy=multi-user.target
|