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)
sudo apt install python3 python3-gi python3-yaml \
gir1.2-gtk-3.0 gir1.2-webkit2-4.1
Installation rapide
./scripts/install.sh
Le script :
- Vérifie les dépendances
- Configure les chemins
- Installe le handler SSH
- Installe l'extension GNOME Shell
Activer l'extension
Après installation, redémarrez GNOME Shell (Alt+F2 → r → Entrée) puis :
gnome-extensions enable ssh-launcher@local
Ou utilisez l'application "Extensions" / "Extension Manager".
Installation manuelle
1. Rendre les scripts exécutables
chmod +x scripts/ssh-url
chmod +x scripts/install.sh
chmod +x app/ssh-launcher-gtk.py
2. Installer le handler SSH
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
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 :
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
python3 app/ssh-launcher-gtk.py
Tester le handler SSH
./scripts/ssh-url "ssh://user@localhost"
Tester la page standalone
firefox index.html
Dépannage
L'extension n'apparaît pas
- Vérifiez que GNOME Shell est redémarré
- Vérifiez l'activation :
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 :
WEBKIT_DISABLE_COMPOSITING_MODE=1 python3 app/ssh-launcher-gtk.py
Le handler SSH ne fonctionne pas
xdg-mime query default x-scheme-handler/ssh
# Doit retourner : ssh-url.desktop
Logs de l'extension
journalctl -f -o cat /usr/bin/gnome-shell
Désinstallation
# 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 :
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
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.