5.0 KiB
upgrade_1.md
Extension GNOME Shell : Icône dans la barre + Popup configurable + YAML
Ce document définit les nouvelles directives pour faire évoluer l’application actuelle vers une intégration complète dans GNOME Shell.
1. Objectif général
L’application doit désormais inclure une extension GNOME Shell qui :
- Ajoute une icône dans la barre supérieure (Top Bar).
- Ouvre, au clic sur cette icône, une fenêtre popup dédiée affichant un tableau interactif d’équipements et de services.
- Génère ce tableau à partir d’un fichier YAML, permettant de modifier les équipements sans toucher au code.
- Gère l’ouverture d’URL (SSH, HTTP, HTTPS…) associées à chaque service.
Ce fichier décrit également le processus à suivre pour Claude Code afin d’analyser, proposer, puis implémenter les fonctionnalités.
2. Nouvelle architecture fonctionnelle
2.1 Extension GNOME Shell : icône dans la barre supérieure
L’extension doit :
- Ajouter une icône dans le panel, visible en permanence.
- Au clic, afficher un popup ou un panneau flottant contenant la liste des équipements.
- Le popup doit pouvoir être fermé, soit via un second clic sur l’icône, soit par toute action prévue par GNOME Shell.
Contenu du popup
Le popup devra afficher :
- Une liste d’équipements (PC, serveurs, VM…)
- Pour chaque équipement :
- Un label (nom)
- Une liste de services associés
- Pour chaque service :
- une icône
- un nom
- une URL à ouvrir
3. Fichier de configuration YAML
Créer le fichier :
config/equipements.yaml
Structure attendue :
equipements:
- nom: "PC Bureau"
ip: "10.0.0.24"
services:
- nom: "SSH"
icon: "terminal"
url: "ssh://gilles@10.0.0.24"
- nom: "Interface Web"
icon: "web-browser"
url: "http://10.0.0.24:8080"
- nom: "Serveur Proxmox"
ip: "10.0.0.10"
services:
- nom: "SSH"
icon: "terminal"
url: "ssh://root@10.0.0.10"
- nom: "Proxmox UI"
icon: "server"
url: "https://10.0.0.10:8006"
Notes :
- Un équipement peut contenir plusieurs services.
- Chaque service doit afficher une icône.
- Tous les champs doivent être extensibles (ajouter plus d’attributs dans le futur si besoin).
4. Contraintes techniques GNOME Shell
Il est important de tenir compte des restrictions :
- WebKitGTK est interdite dans les extensions GNOME Shell.
Impossible d’intégrer du vrai HTML directement.
Donc le popup devra être :
- soit un ensemble de widgets St.* créés depuis le YAML,
- soit une fenêtre externe GTK (possible via un script ou app séparée).
L’analyse devra tenir compte de ces contraintes.
5. Analyse obligatoire avant développement (Claude)
Claude doit impérativement produire une analyse complète avant toute modification du projet.
5.1 Ce que Claude doit analyser
Claude doit étudier plusieurs architectures possibles, notamment :
A : Popup GNOME Shell natif (widgets St)
- Parsing YAML dans l’extension.
- Construction d’interfaces entièrement via St.BoxLayout / St.Icon / St.Button.
B : Extension + application GTK externe (WebKit)
- L’extension déclenche une application GTK qui affiche du vrai HTML.
C : Extension GNOME Shell + navigateur en mode app
- L’extension ouvre une fenêtre Chromium/Webkit en mode application.
D : Serveur local + widgets GNOME Shell générés depuis un JSON/YAML
- Génération HTML ou JSON via fichier local.
Pour chaque solution, Claude doit fournir :
- avantages,
- inconvénients,
- complexité,
- compatibilité,
- performances,
- ergonomie.
Il doit produire :
- un tableau comparatif,
- une recommandation ordonnée.
Aucun code ne doit être généré avant mon choix explicite.
6. Protocole de travail imposé à Claude Code
UPGRADE:1 ANALYSE
Claude réalise :
- analyse complète,
- comparaison des options,
- pas de code.
UPGRADE:1 CHOIX <A/B/C/...>
Je choisis l’architecture souhaitée.
Claude :
- confirme l’impact,
- annonce quels fichiers seront créés ou modifiés,
- pas encore de code.
UPGRADE:1 APPLY
Claude applique :
- création et mise à jour des fichiers,
- ajout de l’extension GNOME Shell,
- parser YAML,
- popup dynamique,
- URLs fonctionnelles.
UPGRADE:1 DOC
Claude met à jour la documentation utilisateur.
7. Résultat attendu
À la fin de cette évolution :
- Une icône apparaît dans la barre GNOME.
- Un popup dynamique s’ouvre avec la liste des équipements.
- Le contenu du popup provient du fichier YAML.
- Les clics déclenchent l’ouverture des URLs.
- L’extension est propre, documentée, testable.
8. Résumé
Ce fichier sert de référence officielle pour diriger l’analyse et le développement par Claude Code :
- Analyse → Choix → Implémentation → Documentation.
- Aucun code avant
UPGRADE:1 APPLY.