# SSH Launcher Lanceur SSH et services via une extension GNOME Shell et une application GTK. Permet d'accéder rapidement à vos machines depuis la barre GNOME. ## Fonctionnalités - Icône dans la barre supérieure GNOME - Popup avec liste des équipements et services - Configuration via fichier YAML - Support SSH, HTTP, HTTPS, VNC... - Page HTML standalone alternative ## Architecture ``` ┌─────────────────────────────────────────────────────────┐ │ GNOME Shell │ │ ┌─────────────────────────────────────────────────┐ │ │ │ Extension (icône barre) ──► App GTK + WebKit │ │ │ └─────────────────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ config/equipements.yaml │ │ │ │ │ ▼ │ │ Interface HTML dynamique │ │ │ │ │ ▼ │ │ Clic ──► Handler système ──► Terminal/App │ └─────────────────────────────────────────────────────────┘ ``` ## Structure du projet ``` ssh-web-launcher/ ├── config/ │ └── equipements.yaml # Configuration des machines ├── extension/ │ ├── metadata.json # Métadonnées extension GNOME │ ├── extension.js # Code de l'extension │ └── stylesheet.css # Style de l'icône ├── app/ │ ├── ssh-launcher-gtk.py # Application GTK4 + WebKit │ └── ssh-launcher-gtk.desktop ├── scripts/ │ ├── ssh-url # Handler SSH │ └── install.sh # Script d'installation ├── desktop/ │ └── ssh-url.desktop # Handler SSH .desktop ├── index.html # Page standalone └── README.md ``` ## Prérequis - GNOME Shell 42+ - Python 3 - GTK3 et WebKit2 4.1 ### Installation des dépendances (Debian/Ubuntu) ```bash sudo apt install python3 python3-gi python3-yaml \ gir1.2-gtk-3.0 gir1.2-webkit2-4.1 ``` ## Installation rapide ```bash ./scripts/install.sh ``` Le script : 1. Vérifie les dépendances 2. Configure les chemins 3. Installe le handler SSH 4. Installe l'extension GNOME Shell ### Activer l'extension Après installation, redémarrez GNOME Shell (Alt+F2 → `r` → Entrée) puis : ```bash gnome-extensions enable ssh-launcher@local ``` Ou utilisez l'application "Extensions" / "Extension Manager". ## Installation manuelle ### 1. Rendre les scripts exécutables ```bash chmod +x scripts/ssh-url chmod +x scripts/install.sh chmod +x app/ssh-launcher-gtk.py ``` ### 2. Installer le handler SSH ```bash cp desktop/ssh-url.desktop ~/.local/share/applications/ xdg-mime default ssh-url.desktop x-scheme-handler/ssh update-desktop-database ~/.local/share/applications/ ``` ### 3. Installer l'extension GNOME ```bash mkdir -p ~/.local/share/gnome-shell/extensions/ssh-launcher@local cp extension/* ~/.local/share/gnome-shell/extensions/ssh-launcher@local/ ``` Redémarrez GNOME Shell et activez l'extension. ## Configuration Éditez `config/equipements.yaml` pour ajouter vos machines : ```yaml equipements: - nom: "Mon Serveur" ip: "192.168.1.100" categorie: "Serveurs" services: - nom: "SSH" icon: "utilities-terminal" url: "ssh://admin@192.168.1.100" - nom: "Web" icon: "web-browser" url: "https://192.168.1.100" ``` ### Icônes disponibles | Icône | Nom | |-------|-----| | 💻 | `utilities-terminal` | | 🌐 | `web-browser` | | ⚙️ | `applications-system` | | 🖥️ | `preferences-desktop-remote-desktop` | | 🔒 | `security-high` | | 🏠 | `go-home` | | 🖧 | `network-server` | ## Test ### Tester l'application GTK directement ```bash python3 app/ssh-launcher-gtk.py ``` ### Tester le handler SSH ```bash ./scripts/ssh-url "ssh://user@localhost" ``` ### Tester la page standalone ```bash firefox index.html ``` ## Dépannage ### L'extension n'apparaît pas 1. Vérifiez que GNOME Shell est redémarré 2. Vérifiez l'activation : ```bash gnome-extensions list gnome-extensions enable ssh-launcher@local ``` ### Erreur WebKit / écran noir Si vous avez des erreurs GPU (GBM, DRM), l'application désactive automatiquement l'accélération matérielle. Si le problème persiste, lancez avec : ```bash WEBKIT_DISABLE_COMPOSITING_MODE=1 python3 app/ssh-launcher-gtk.py ``` ### Le handler SSH ne fonctionne pas ```bash xdg-mime query default x-scheme-handler/ssh # Doit retourner : ssh-url.desktop ``` ### Logs de l'extension ```bash journalctl -f -o cat /usr/bin/gnome-shell ``` ## Désinstallation ```bash # Extension GNOME rm -rf ~/.local/share/gnome-shell/extensions/ssh-launcher@local # Applications rm ~/.local/share/applications/ssh-url.desktop rm ~/.local/share/applications/ssh-launcher-gtk.desktop update-desktop-database ~/.local/share/applications/ ``` ## Utilisation standalone (sans extension) La page `index.html` peut être utilisée indépendamment : ```bash firefox index.html ``` Elle nécessite uniquement le handler SSH (`ssh-url.desktop`). ## Mini-apps Le dossier `app/tools/` contient des petits outils autonomes comme `color-picker` : lancez-les via ```bash python3 app/tools/color-picker/color_picker.py ``` Le script `run_color_picker.py` sert uniquement pour les essais côté navigateur (il démarre un mini-serveur local). Le dashboard peut aussi démarrer ces scripts via la section `minitools` (voir `config/equipements.yaml`). ## Licence Libre d'utilisation et de modification.