Instantané du 29 octobre 2026. Ce dossier décrit les quatre dépôts tels qu'ils étaient ce jour-là ; les projets ont continué d'avancer depuis, et les dépôts font foi. Les liens soulignés mènent aux sources, figées à leur état de ce jour. La suite vit sur gnu6dotlive.github.io.

Dossier 3 · le compagnon

Calix

Une seule fenêtre pour installer, mettre à jour et inventorier les logiciels d'un Arch Linux — sans jamais cacher d'où vient chaque paquet.

Pre-1.0 v0.3.1 Licence GPL-3.0 Arch Linux x86_64

Sur cette page
  1. En une image
  2. Le problème, puis la réponse
  3. Ce qui marche, ce qui reste ouvert
  4. La frontière de privilège
  5. Pourquoi la provenance est le vrai sujet
  6. Une vraie machine, pas une démonstration
  7. Historique : la version qui a mesuré l'espace
  8. Projections : une porte encore plus étroite
  9. Ce que ce n'est pas
  10. Ce que ça change, selon qui vous êtes
  11. Pour aller plus loin
6écosystèmes de paquets réunis dans une seule liste
1 803paquets installés dans un seul tableau, sur la machine de l'auteur (29 octobre 2026)
4programmes distincts : interface, moteur, service d'inventaire, notifications
0appel à sudo : l'élévation passe par un seul chemin polkit

En une image #

L'analogie

Imaginez un guichet unique qui accepte les colis de six transporteurs différents. Vous n'avez plus qu'un seul comptoir, un seul suivi, une seule file d'attente.

Mais chaque colis garde son étiquette d'origine : untel vient de la poste, untel d'un coursier privé. Le guichet ne prétend pas que tous les transporteurs sont identiques — il vous évite seulement de courir après six comptoirs.

Le problème, puis la réponse #

Six sources de logiciels à gauche, un inventaire versionné au centre, et à droite des lignes qui gardent la provenance de chaque logiciel.
Ranger n'est pas confondre. Calix réunit six écosystèmes dans un même document, mais chaque entrée dit d'où elle vient. Un lecteur qui ne comprend pas la version du document le refuse, au lieu de l'afficher à moitié.

Sur Arch Linux, installer un logiciel veut dire passer d'un outil à l'autre : pacman pour les dépôts officiels, un assistant pour l'AUR, flatpak pour les paquets isolés, et « ce qui traîne » pour les AppImages. Chacun a sa sortie, sa propre idée de ce qui est installé, et son propre chemin vers les droits d'administrateur.

Calix réunit tout cela dans une seule application native : pas de page web embarquée, pas de navigateur caché. L'interface est écrite en Rust avec GPUI — le même socle que gnosix — et la gestion des paquets en Zig.

Capture de Calix : recherche « ripgrep », dix-huit résultats, trois des dépôts Arch et quinze de l'AUR, chacun avec sa source affichée.
Capture de Calix : inventaire des paquets installés, 1 803 paquets répartis entre dépôts officiels, Cargo, NPM et versions suivies, avec version, source, taille et statut.

Deux vues réelles de Calix. La première, une recherche, mêle dépôts Arch et AUR : chaque ligne garde sa source, et l'AUR est signalé comme « recettes à compiler, pas des binaires ». La seconde montre l'inventaire des 1 803 paquets de la machine de l'auteur, onglet par écosystème ; Cargo et NPM sont « listés, non interrogés ». Captures du 29 octobre 2026, version installée r5022.

Ce qui marche, ce qui reste ouvert #

DomaineÉtat publié par le dépôtCe que cela ne dit pas
Interface Interface principale, en développement actif Pas un design figé ; la mise en page peut encore changer.
Inventaire unifié ALPM, AUR, Flatpak, AppImage, Cargo, NPM et versions suivies Inventorier n'est pas savoir installer : voir la ligne suivante.
Actions depuis l'interface ALPM, AUR et Flatpak seulement Cargo et NPM sont listés, pas encore modifiables depuis l'interface.
Recherche ALPM, AUR, Flatpak et AppImages déjà installées Les autres sources restent en inventaire seul.
Service d'inventaire Répond à la demande, seul écrivain de l'état Pas encore d'ordonnanceur : rien ne se met à jour tout seul.
Suivi des versions Registre et contrôles de provenance en Zig Un moteur Python gelé écrit encore le fichier d'observation.
Notifications Livrées et vérifiées sur une session réelle Installées, mais pas activées par défaut.
Plateforme Arch Linux, x86_64 Aucune autre distribution n'est prise en charge.
Tableau : ALPM, AUR et Flatpak permettent inventaire, recherche, installation et mise à jour depuis l'interface ; AppImage est partiel ; Cargo et NPM sont seulement inventoriés.
Un inventaire, pas encore un guichet complet. Les six sources sont inventoriées ; trois seulement se modifient depuis la fenêtre. AppImage est géré par le moteur, pas encore par l'interface.
La règle du dépôt

Le dépôt publie un tableau d'état et précise que, si un autre document de l'arbre le contredit de façon plus optimiste, c'est ce tableau qu'il faut croire. C'est une discipline rare, et c'est ce qui rend la lecture utile.

La frontière de privilège #

C'est le point le plus intéressant pour qui finance ou évalue le projet. Un gestionnaire de paquets a besoin des droits d'administrateur : il modifie le système. La question n'est pas « faut-il ces droits ? » mais « combien de code les reçoit ? ».

Chez Calix, l'interface, le service d'inventaire et le pont de notifications tournent sans privilège. L'élévation passe par un seul chemin étroit, explicite, via polkit. Le projet interdit explicitement sudo, su et doas — y compris dans sa documentation d'installation.

À gauche, l'interface, le service d'inventaire et les notifications, sans privilège. Au centre, polkit, seule porte. À droite, le moteur Zig relancé via pkexec pour les transactions.
Une seule porte. Les trois programmes du quotidien tournent sous le compte de l'utilisateur. Seules les commandes qui modifient le système relancent le moteur Zig via pkexec, pour l'une des trois actions polkit déclarées : installer, retirer, mettre à jour.
Ce que ça change

Un programme qui plante sans privilège ne casse pas le système. Un programme qui demande les droits au dernier moment, pour une opération précise, réduit la surface d'un incident. C'est une décision d'architecture, pas une précaution décorative.

Pourquoi la provenance est le vrai sujet #

Le fil rouge de ces quatre dépôts, c'est la topologie : rendre explicite où se trouve chaque chose, et ce que cette position autorise. Calix en donne une version très concrète.

Un logiciel installé depuis les dépôts officiels et le même nom venu de l'AUR ne sont pas le même objet. L'un est signé par la distribution, l'autre par un mainteneur communautaire. Les confondre dans une liste sans étiquette serait une faute, pas une simplification. Calix garde donc l'étiquette, et va jusqu'à versionner le format du document : un consommateur qui ne connaît pas la version refuse de lire.

L'analogie

Une étiquette de colis ne dit pas si le contenu est bon. Elle dit qui l'a envoyé, et donc à qui vous aurez affaire si quelque chose ne va pas. C'est exactement ce que fait Calix avec un paquet.

Une vraie machine, pas une démonstration #

Le graphique vient d'une capture de Calix sur la station de travail de l'auteur : 1 803 paquets, presque tous des dépôts officiels. C'est à quoi ressemble un Arch Linux ordinaire, vu en une fois.

L'inventaire Calix d'une vraie machine, par écosystème Barres : 1 773 paquets des dépôts officiels, 20 Cargo, 9 NPM, 1 version suivie, et zéro pour l'AUR, Flatpak et AppImage. CALIX · INVENTAIRE Une vraie machine, pas une démonstration La station de travail de l'auteur, vue par Calix le 29 octobre 2026 au matin. 0 500 1 000 1 500 ALPM dépôts officiels 1 773 Cargo bibliothèques Rust 20 NPM bibliothèques JavaScript 9 Suivies versions suivies 1 AUR dépôts communautaires 0 — rien de cette source sur cette machine Flatpak paquets isolés 0 — rien de cette source sur cette machine AppImage fichiers autonomes 0 — rien de cette source sur cette machine 1 803 paquets dans un seul tableau. Les zéros sont affichés comme des zéros : l'inventaire ne gonfle rien. Source : capture de la vue « Installed » de Calix (version installée r5022), le 29 octobre 2026.
Les zéros sont des informations. Ni AUR, ni Flatpak, ni AppImage dans l'inventaire ce jour-là ; Cargo et NPM sont listés sans être interrogés. Un inventaire honnête n'invente pas de diversité.

Historique : la version qui a mesuré l'espace #

Avant la v0.3.0, avec le journal ouvert, la liste des paquets tombait à 6,5 pixels de haut pendant que sa propre légende en gardait 260. La v0.3.0 a écrit qui a droit à l'espace — et l'a mesuré : 170,5 pixels dans la même bande.

La version spatiale de Calix : l'espace mesuré À gauche, dans une bande de 372 pixels avec le journal ouvert, la liste des paquets passe de 6,5 à 170,5 pixels. À droite, la largeur minimale additionnée : 495 + 22 + 143 + 56 = 716, arrondie à 720. CALIX · v0.3.0 La version qui a mesuré l'espace L'essentiel d'abord : la liste des paquets ne doit plus céder la place à sa propre légende. UNE BANDE DE 372 PX, JOURNAL OUVERT légende 260 px 6,5 px avant v0.3.0 170,5 px depuis v0.3.0 orange : la liste des paquets LA FENÊTRE MINIMALE, CALCULÉE 495 px — cinq colonnes fixes de la ligne 22 px — icône 143 px — le nom, pour 90 % des paquets réels 56 px — barre de navigation repliée = 716 → 720 px de large Avant : 1024 × 680, un nombre que personne n'avait justifié. Annoncé : 720 × 480. Mesuré sur la machine de l'auteur le 29 octobre : 720 × 520. Source : notes de version v0.3.0 de gnu6dotlive/calix et docs/gpui/CONTRACT-01-SPACE-AUDIT.md ; mesure de fenêtre faite le 29 octobre 2026.
L'essentiel d'abord. Trois couches dans l'ordre : la navigation et les actions, puis la liste des paquets, puis les surfaces de contexte. Avant cette version, l'ordre était inversé, et c'était mesurable.

La même version a remplacé une taille de fenêtre minimale que personne n'avait justifiée (1024 × 680) par une taille calculée : les cinq colonnes fixes d'une ligne, l'icône, la place du nom pour 90 % des paquets d'une vraie machine et la barre repliée font 716 pixels, arrondis à 720. Le cas qui échouait à 560 pixels est gardé dans les tests. Mesurée sur la machine de l'auteur le 29 octobre, la fenêtre minimale fait 720 × 520 ; la note de version annonce 480 de haut.

Neuf versions, une chose chacune

Les neuf versions de Calix, du 20 septembre au 22 octobre 2026 Frise : v0.1.0 le 20 septembre, six versions de v0.2.0 à v0.2.5 le 20 octobre, v0.3.0 le 21, v0.3.1 le 22, chacune avec son sujet. CALIX · HISTORIQUE Neuf versions, une chose chacune Chaque version annonce un sujet et le prouve dans ses notes ; les correctifs disent ce qui était cassé. 20 sept. 1er oct. 11 oct. 20 oct. 22 oct. v0.1.0 première version, sous le nom Shelly v0.2.0 renommage en Calix, coupure nette v0.2.1 notifications de bureau v0.2.2 correctifs : utilisable sur un Arch normal v0.2.3 la vue Mises à jour se charge enfin v0.2.4 la marque et sa couleur v0.2.5 la navigation dit où l'on est v0.3.0 l'espace, écrit et mesuré v0.3.1 tourne sur la machine six versions le 20 octobre Source : pages des versions de gnu6dotlive/calix sur GitHub (v0.1.0 à v0.3.1).
Six versions en un jour. Le 20 octobre, le projet change de nom (de Shelly à Calix, sans couche de compatibilité), puis enchaîne les notifications, deux séries de correctifs, la marque et la navigation. Chaque note dit ce qui était cassé avant.

La dernière, v0.3.1, est « la version qui tourne sur la machine » : l'interface passe à la génération actuelle de sa bibliothèque graphique — vingt-quatre erreurs de compilation ramenées à zéro, et aucune mesure de mise en page n'a bougé. Là où les documents et le code divergeaient, ce sont les documents qui ont été corrigés.

Capture des réglages de Calix : sources de paquets, gestion des paquets, apparence, avec le choix de la couleur de la marque entre orange et bleu.
Capture de Calix à sa taille minimale : la barre de navigation repliée en icônes, la liste des paquets toujours lisible.

Deux vues de plus. Les réglages, avec la couleur de la marque au choix, orange ou bleu (v0.2.4) ; la fenêtre à sa taille minimale, où la barre de navigation se replie pour laisser la place à la liste (v0.3.0). Cette seconde capture a été prise après des mises à jour, dans un état où l'inventaire officiel ne s'affichait pas : elle montre la mise en page, pas les chiffres. Captures du 29 octobre 2026.

Projections : une porte encore plus étroite #

Le chantier le plus parlant touche au privilège : un assistant root dédié et des actions polkit plus fines, pour que l'interface demande exactement l'opération dont elle a besoin — et rien de plus.

Le dépôt classe cinq chantiers par valeur, sans date :

  1. Finir la requalification de la navigation : les clics que le pointeur synthétique n'a pas pu exercer, et le focus qui doit suivre un changement de lieu.
  2. Porter le reste en Zig : quatre commandes du suivi des versions sont encore en Python.
  3. Brancher le flux applicatif : un assistant root dédié et des actions polkit plus étroites — la porte ci-dessus.
  4. Combler le trou des mutations : installer et retirer des paquets Cargo et NPM depuis l'interface, chercher dans les sources aujourd'hui seulement inventoriées.
  5. Couper le moteur Python gelé, une fois le suivi des versions entièrement natif.

Ce que ce n'est pas #

Les limites, sans détour
  • Pas fini. Le projet est explicitement pre-1.0 ; la version 0.3.1 est une étape, pas un aboutissement.
  • Pas universel. Arch Linux et x86_64 uniquement. Ce n'est pas un gestionnaire de paquets pour Debian, Fedora ou macOS.
  • Pas encore automatique. Le service répond à la demande : il n'y a pas d'ordonnanceur, donc pas de mise à jour de fond.
  • Pas tout modifiable. Cargo et NPM apparaissent dans l'inventaire mais ne s'installent pas encore depuis l'interface.
  • Pas entièrement natif. Un moteur Python gelé écrit encore le fichier des versions suivies ; le remplacer fait partie des chantiers annoncés.
  • Pas requalifié sur les gestes. La requalification de la navigation reste ouverte : les clics n'ont pas pu être exercés par le pointeur synthétique.

Ce que ça change, selon qui vous êtes #

Utilisateur d'Arch Linux

Une seule fenêtre au lieu de quatre outils, et une liste qui ne vous ment pas sur l'origine d'un paquet. Les mises à jour restent manuelles pour l'instant.

Développeur

Un exemple complet d'interface GPUI native, un backend Zig qui parle à libalpm, un protocole JSON-lines versionné sur socket Unix, et une frontière polkit écrite noir sur blanc.

Décideur ou financeur

La valeur n'est pas « un magasin d'applications de plus » : c'est un modèle de provenance et de privilège, réutilisable partout où plusieurs sources doivent cohabiter sans se confondre.

Pour aller plus loin #

Technique — les mots du dépôt

ALPM : la bibliothèque derrière pacman, le gestionnaire de paquets d'Arch. AUR : les dépôts communautaires d'Arch, où les paquets sont des recettes compilées localement. Flatpak : des applications empaquetées avec leurs dépendances, isolées du système. AppImage : un fichier exécutable autonome. polkit : le mécanisme qui demande l'autorisation à l'utilisateur, au moment de l'action, pour une opération précise.

Langages : Rust et GPUI pour l'interface ; Zig 0.16 pour le moteur, le service et les notifications. Licence : GPL-3.0-only — une licence qui impose de partager les modifications si le programme est distribué.

Vérifier par soi-même

Chaque version publiée fournit une archive et son empreinte SHA-256 : on télécharge les deux, on vérifie l'empreinte, puis on regarde le contenu. L'archive n'est pas un installeur, c'est une arborescence à inspecter.

Depuis les sources, il faut Zig 0.16 et une chaîne Rust stable : make zig construit les trois binaires, make run lance l'interface contre le backend du dépôt. L'installation du paquet passe par pkexec pacman -U, jamais par sudo.