
Tout a commencé par un panneau Conky dans un coin de l’écran : l’heure, la charge, la météo. Puis un deuxième panneau avec l’agenda. Puis l’état des conteneurs Docker, les serveurs de jeu, la préprod des clients… Au bout de quelques mois, le « coin de l’écran » était devenu l’endroit où l’on regardait en premier le matin. On a décidé d’en faire un vrai logiciel : ad-cockpit.
Ce qu’il affiche
Un kanban qui mélange Google Tasks et Microsoft Planner / To Do — parce que notre vie professionnelle est chez Microsoft et notre vie perso chez Google, et qu’on refuse d’ouvrir deux applis pour savoir quoi faire. L’agenda, les mails suivis, l’état des machines (Docker, serveurs de jeu, préprods), une vue Carte branchée sur notre serveur Traccar, et une vue Windows qui ouvre la machine virtuelle en un clic quand il faut vraiment lancer Office.
Les choix techniques
Le natif est écrit avec AGS (GTK4 + TypeScript) et tourne comme un service utilisateur sous Hyprland et KDE. La version web sert les mêmes widgets sur n’importe quel écran. Le cap, c’est la symétrie : une seule bibliothèque de widgets, les mêmes comportements des deux côtés, même si les technologies diffèrent. Les réglages vivent dans un simple fichier JSON, modifiable depuis une icône ⚙ ; la mise à jour se fait en un clic.
Ce qu’on a appris
- Un processus lancé par le cockpit doit survivre à son redémarrage : sous systemd, ça veut dire
systemd-run --scope, passetsid. On l’a appris en voyant nos terminaux disparaître. - Ne jamais écrire dans la configuration d’un autre programme. Notre script de thème a un jour vidé le fichier de config du shell graphique : depuis, règle absolue.
- Les permissions d’entreprise sont une contrainte produit : l’agenda Outlook déclenche un mur d’approbation chez l’employeur, donc il est optionnel. Planner et To Do, déjà consentis, marchent sans rien demander.
Et ensuite
Une mise sur GitHub avec un installateur « à vide » testé sur une machine neuve, une version Windows (widgets + interface web), et l’intégration des espaces Google Chat. La fiche complète est dans l’Espace membres.