32 lines
1.2 KiB
INI
32 lines
1.2 KiB
INI
[Unit]
|
|
Description=Touch panel agent (Home Assistant MQTT control surface for Sway)
|
|
Documentation=file:///opt/touchpanel-agent
|
|
# A system unit, not a `systemctl --user` unit — see thinclient-agent.service's
|
|
# identical reasoning: this must be reachable over MQTT whether or not a graphical
|
|
# session is up, and must survive sway restarting. Session-scoped bits (SWAYSOCK,
|
|
# XDG_RUNTIME_DIR, DBUS_SESSION_BUS_ADDRESS) are derived at call time in
|
|
# sway_control.SwayControl.session_env().
|
|
#
|
|
# Deliberately NOT After=network-online.target: the panel must boot to a usable
|
|
# session (Spotify/HA/browser) with the container host powered off.
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=@KIOSK_USERNAME@
|
|
Group=@KIOSK_USERNAME@
|
|
WorkingDirectory=/opt/touchpanel-agent
|
|
Environment=PYTHONPATH=/opt/touchpanel-agent
|
|
Environment=PYTHONUNBUFFERED=1
|
|
EnvironmentFile=-/etc/touchpanel-agent/config.env
|
|
ExecStart=/usr/bin/python3 -m touchpanel_agent.main
|
|
Restart=always
|
|
RestartSec=5
|
|
# Sandboxing stops here on purpose: this unit's whole job is to spawn GUI child
|
|
# processes (Chromium, the Spotify flatpak, Firefox) that need the real /tmp, the
|
|
# user's home, and the session bus.
|
|
NoNewPrivileges=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|