feat(yoga14): remote control, app management, install script

- Add keycode module: G7BTS Rii remote control support (evdev, auto-reconnect)
- Add key bindings: single/double press detection with configurable window
  - KEY_HOMEPAGE: single=VacuumTube, double=LiveboxTV
  - KEY_OK: inject Enter keypress via ydotool
  - KEY_PAGEUP/DOWN: LiveboxTV channel navigation
- Add M3U parser and channel selector for LiveboxTV (51 channels)
- Add volume entity (wpctl/PipeWire, 2s polling)
- Add app management: vacuum_tube, livebox_tv (start/stop/state via MQTT)
- Add grace period to prevent app state bounce after stop
- Fix screen ON via GNOME busctl: add SimulateUserActivity
- Fix power commands: trigger on ON, publish OFF immediately (momentary buttons)
- Disable GPU temp/usage entities
- Add install script: build, deploy to ~/pilot, systemd user service
- Fix service startup: WantedBy=graphical-session.target (full GNOME env at launch)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 17:16:12 +01:00
parent 6c4c6ee866
commit ffabf65b35
17 changed files with 2226 additions and 252 deletions

View File

@@ -1,16 +1,23 @@
[Unit]
Description=Pilot v2 MQTT Agent
After=network-online.target
Documentation=https://gitea.maison43.duckdns.org/gilles/pilot
After=network-online.target graphical-session.target
Wants=network-online.target
[Service]
Type=simple
User=pilot
WorkingDirectory=/opt/pilot
ExecStart=/opt/pilot/pilot
WorkingDirectory=%h/pilot/pilot-v2
ExecStart=%h/pilot/pilot-v2/target/release/pilot-v2
Restart=on-failure
RestartSec=5
Environment=RUST_LOG=info
Environment=XDG_RUNTIME_DIR=/run/user/%U
Environment=WAYLAND_DISPLAY=wayland-0
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%U/bus
KillSignal=SIGTERM
TimeoutStopSec=10
[Install]
WantedBy=multi-user.target
WantedBy=default.target