Files
ssh-web-launcher/upgrade_1.md
2025-12-24 22:52:46 +01:00

5.0 KiB
Raw Blame History

upgrade_1.md

Extension GNOME Shell : Icône dans la barre + Popup configurable + YAML

Ce document définit les nouvelles directives pour faire évoluer lapplication actuelle vers une intégration complète dans GNOME Shell.


1. Objectif général

Lapplication doit désormais inclure une extension GNOME Shell qui :

  1. Ajoute une icône dans la barre supérieure (Top Bar).
  2. Ouvre, au clic sur cette icône, une fenêtre popup dédiée affichant un tableau interactif déquipements et de services.
  3. Génère ce tableau à partir dun fichier YAML, permettant de modifier les équipements sans toucher au code.
  4. Gère louverture dURL (SSH, HTTP, HTTPS…) associées à chaque service.

Ce fichier décrit également le processus à suivre pour Claude Code afin danalyser, proposer, puis implémenter les fonctionnalités.


2. Nouvelle architecture fonctionnelle

2.1 Extension GNOME Shell : icône dans la barre supérieure

Lextension 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 licô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 dattributs 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 dinté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).

Lanalyse 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 lextension.
  • Construction dinterfaces entièrement via St.BoxLayout / St.Icon / St.Button.

B : Extension + application GTK externe (WebKit)

  • Lextension déclenche une application GTK qui affiche du vrai HTML.

C : Extension GNOME Shell + navigateur en mode app

  • Lextension 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 larchitecture souhaitée.

Claude :

  • confirme limpact,
  • 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 lextension 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 souvre avec la liste des équipements.
  • Le contenu du popup provient du fichier YAML.
  • Les clics déclenchent louverture des URLs.
  • Lextension est propre, documentée, testable.

8. Résumé

Ce fichier sert de référence officielle pour diriger lanalyse et le développement par Claude Code :

  • Analyse → Choix → Implémentation → Documentation.
  • Aucun code avant UPGRADE:1 APPLY.