44 lines
2.3 KiB
Markdown
44 lines
2.3 KiB
Markdown
Tu es Claude Code. Tu dois creer une extension GNOME Shell (GNOME 45+) simple, pour un debutant, qui permet de piloter l'app Pilot V2 depuis GNOME Shell.
|
|
|
|
Contexte general (application) :
|
|
- Pilot V2 est un agent qui publie des capteurs (telemetry) et recoit des commandes via MQTT.
|
|
- Sa configuration principale est dans `pilot-v2/config.yaml`.
|
|
- Les sections importantes du YAML :
|
|
- `features.telemetry.enabled` + `features.telemetry.metrics.<metric>.enabled`
|
|
- `features.commands.enabled` + `features.commands.allowlist`
|
|
- `mqtt.*` pour la connexion (host, port, user, etc.)
|
|
- L'app tourne comme service systemd (fichier `mqtt_pilot.service`) et peut etre demarree/arretee.
|
|
- Objectif utilisateur : pouvoir activer/desactiver rapidement les services, chaque capteur, et chaque commande, sans editer le YAML a la main.
|
|
|
|
Objectif V1 (indispensable) :
|
|
- Tout est accessible depuis GNOME Shell.
|
|
- L'extension affiche une liste d'entites (services + capteurs + commandes).
|
|
- Chaque ligne = nom + switch ON/OFF + bouton "..." pour editer.
|
|
- Le switch active/desactive l'entite dans `pilot-v2/config.yaml`.
|
|
- Le bouton "..." ouvre un dialogue pour editer les champs essentiels :
|
|
- Telemetry: `enabled`, `interval_s`, `name`, `unique_id`
|
|
- Commands: `enabled` + gestion de l'allowlist
|
|
- Service: enable/disable global (choisir un champ clair a creer si absent)
|
|
- IMPORTANT: Toute modification doit recharger la config pour que l'app la prenne en compte
|
|
(ex: redemarrage du service systemd ou mecanisme de reload si dispo).
|
|
|
|
Details techniques :
|
|
- GNOME 45+, GJS + libadwaita (GTK4).
|
|
- Extension "panel menu" (icone en haut a droite) avec un menu qui ouvre une fenetre principale.
|
|
- La fenetre principale affiche des sections : Services, Telemetry (sensors), Commands.
|
|
- V1 = lecture/ecriture directe du YAML, pas d'API reseau, pas de base de donnees.
|
|
- Apres modification, recharger les donnees dans l'UI.
|
|
|
|
Contraintes :
|
|
- Code clair, commente pour debutant.
|
|
- Ne pas inventer d'API reseau.
|
|
- Ecrire les fichiers de l'extension avec une structure standard GNOME (metadata.json, extension.js, prefs.js, etc.).
|
|
- Donner aussi les commandes pour installer l'extension en local.
|
|
|
|
Sortie attendue :
|
|
- Arborescence des fichiers.
|
|
- Code complet des fichiers.
|
|
- Instructions d'installation et de test.
|
|
|
|
Commence par expliquer rapidement ton plan d'implementation, puis donne le code.
|