Sobre o projeto

Kyanite é uma variante do Fedora Kinoite projetada como desktop de uso diário, distribuída como uma imagem bootc (contêiner inicializável) imutável. Ela vem com KDE Plasma e remove a marca corporativa enquanto suaviza arestas do Kinoite padrão. As principais diferenças em relação ao Kinoite padrão incluem Firefox via Flatpak oficial da Mozilla, Bazaar substituindo o Discover, Flathub configurado no primeiro boot com os remotes flatpak do Fedora removidos, Fish como shell padrão, papéis de parede dinâmicos, fcitx5 para entrada CJK e uma pilha de codecs mais completa via negativo17 para reprodução de h264/h265/AV1. Componentes pesados como Docker, virtualização, Steam e ROCm são separados em sysexts opcionais em vez de estarem na imagem base. Cadeias de filtros PipeWire estão incluídas para configurações de DSP em alto-falantes de laptops, e Quadlets do Ollama estão prontos para LLMs locais em CPU, ROCm ou Vulkan. A instalação é simples para sistemas bootc existentes: alterne para a imagem com `sudo bootc switch ghcr.io/alyraffauf/kyanite:stable` e reinicie. O framework de comandos `ujust` (emprestado do Universal Blue) fornece receitas personalizadas para gerenciar o sistema. Sysexts opcionais estão disponíveis como pacotes systemd-sysext em um repositório separado, incluindo Docker CE com buildx e compose, AMD ROCm com HIP e OpenCL, Steam nativo com Gamescope e MangoHud, Syncthing, Tailscale mesh-VPN e virtualização QEMU/KVM. Eles são atualizados automaticamente via systemd-sysupdate.timer e podem ser instalados ou removidos com `ujust install-sysext` e `ujust remove-sysext`. Para LLMs locais, três unidades Quadlet executam o Ollama como um serviço systemd em nível de usuário com runtimes de GPU dentro do contêiner. Os backends CPU, ROCm e Vulkan são mutuamente exclusivos e compartilham o volume ollama-data para que os pesos dos modelos não sejam baixados novamente ao alternar. O backend ROCm funciona com placas AMD oficialmente suportadas, enquanto o Vulkan cobre placas que o ROCm não suporta. Syncthing está disponível como um sysext nativo com GUI em 127.0.0.1:8384, aproveitando a configuração existente de ~/.local/state/syncthing/. Os modelos Quadlet são fornecidos em /usr/share/kyanite/quadlets/ e copiados para ~/.config/containers/systemd/ pelas receitas ujust para que as atualizações do SO não sobrescrevam as edições do usuário. O podman-auto-update.timer executa por padrão, atualizando os quadlets com AutoUpdate=registry todas as noites. A personalização é declarativa por meio de arquivos JSON: packages.json para pacotes por variante, services.json para unidades systemd, files/ para arquivos de sistema específicos da variante, brew/ para pacotes Homebrew, flatpaks/ para Flatpaks pré-instalados e ujust/ para receitas personalizadas. Existe um scaffold de variante para construir diferentes sabores, embora apenas a variante principal kyanite seja atualmente construída. A construção local requer Podman e Just. Os comandos incluem `just build` para o contêiner, `just build-qcow2` para testes em VM, `just build-iso` para um ISO completo (aproximadamente 10GB, 30+ minutos) e `just run-vm` para iniciar o qcow2 no QEMU. Os recursos de desktop compartilhados vêm de uma camada OCI kyanite-common com digest fixado. Um experimento com base NVIDIA está disponível definindo BASE_IMAGE para uma imagem kinoite-nvidia. A segurança é tratada por assinatura cosign com uma chave pública publicada. As imagens podem ser verificadas com `cosign verify`. A alternância para transporte assinado requer um bootstrap em duas etapas: primeiro uma alternância não assinada para obter a política e a chave, depois um rebase para ostree-image-signed: para habilitar a verificação automática de cada imagem baixada antes que os bytes toquem o sistema de arquivos. O projeto é licenciado sob Apache 2.0 e é baseado no Fedora Kinoite com KDE Plasma, inspirado pelo Universal Blue.