À propos du projet

Kyanite est un spin de Fedora Kinoite conçu comme un bureau au quotidien, distribué sous forme d’image bootc immuable (conteneur amorçable). Il est livré avec KDE Plasma et retire l’image de marque de l’entreprise tout en éliminant les aspérités du Kinoite standard. Les principales différences par rapport au Kinoite standard incluent Firefox via le Flatpak officiel de Mozilla, Bazaar remplaçant Discover, Flathub configuré au premier démarrage avec suppression des dépôts Flatpak de Fedora, Fish comme shell par défaut, des fonds d’écran dynamiques, fcitx5 pour la saisie CJK, et une pile de codecs plus complète via negativo17 pour la lecture h264/h265/AV1. Les composants lourds comme Docker, la virtualisation, Steam et ROCm sont séparés dans des sysexts optionnels plutôt que dans l’image de base. Des chaînes de filtres PipeWire sont incluses pour les configurations DSP des haut-parleurs d’ordinateur portable, et les Quadlets Ollama sont prêts pour des LLM locaux sur CPU, ROCm ou Vulkan. L’installation est simple pour les systèmes bootc existants : basculez vers l’image avec `sudo bootc switch ghcr.io/alyraffauf/kyanite:stable` puis redémarrez. Le cadre de commandes `ujust` (emprunté à Universal Blue) fournit des recettes personnalisées pour gérer le système. Des sysexts optionnels sont disponibles sous forme de charges utiles systemd-sysext dans un dépôt séparé, notamment Docker CE avec buildx et compose, AMD ROCm avec HIP et OpenCL, Steam natif avec Gamescope et MangoHud, Syncthing, le VPN maillé Tailscale, et la virtualisation QEMU/KVM. Ils se mettent à jour automatiquement via systemd-sysupdate.timer et peuvent être installés ou supprimés avec `ujust install-sysext` et `ujust remove-sysext`. Pour les LLM locaux, trois unités Quadlet exécutent Ollama en tant que service systemd au niveau utilisateur avec des runtimes GPU dans le conteneur. Les backends CPU, ROCm et Vulkan sont mutuellement exclusifs et partagent le volume ollama-data afin que les poids des modèles ne soient pas retéléchargés lors du changement. Le backend ROCm fonctionne avec les cartes AMD officiellement prises en charge, tandis que Vulkan couvre les cartes que ROCm ne prend pas en charge. Syncthing est disponible en tant que sysext natif avec une interface graphique sur 127.0.0.1:8384, en reprenant la configuration existante depuis ~/.local/state/syncthing/. Les modèles Quadlet sont fournis dans /usr/share/kyanite/quadlets/ et sont copiés vers ~/.config/containers/systemd/ par les recettes ujust afin que les mises à jour du système n’écrasent pas les modifications de l’utilisateur. Le podman-auto-update.timer s’exécute par défaut et actualise chaque nuit les quadlets avec AutoUpdate=registry. La personnalisation est déclarative via des fichiers JSON : packages.json pour les paquets par variante, services.json pour les unités systemd, files/ pour les fichiers système propres à la variante, brew/ pour les bundles Homebrew, flatpaks/ pour les Flatpaks préinstallés, et ujust/ pour les recettes personnalisées. Un squelette de variante existe pour construire différentes versions, mais seule la variante principale kyanite est actuellement construite. La construction locale nécessite Podman et Just. Les commandes incluent `just build` pour le conteneur, `just build-qcow2` pour tester en VM, `just build-iso` pour une ISO complète (environ 10 Go, 30 minutes ou plus), et `just run-vm` pour démarrer le qcow2 dans QEMU. Les ressources de bureau partagées proviennent d’une couche OCI kyanite-common épinglée par digest. Une expérience de base NVIDIA est disponible en définissant BASE_IMAGE sur une image kinoite-nvidia. La sécurité est gérée par la signature cosign avec une clé publique publiée. Les images peuvent être vérifiées avec `cosign verify`. Le passage au transport signé nécessite un amorçage en deux étapes : d’abord une bascule non signée pour obtenir la politique et la clé, puis un rebase vers ostree-image-signed: afin d’activer la vérification automatique de chaque image tirée avant que les octets ne touchent le système de fichiers. Le projet est sous licence Apache 2.0 et est basé sur Fedora Kinoite avec KDE Plasma, inspiré par Universal Blue.