Sobre o projeto

Gelly é um cliente de música desktop nativo para servidores de streaming auto-hospedados, escrito em Rust com GTK e Libadwaita. Ele se conecta tanto a backends Jellyfin quanto a backends compatíveis com Subsonic, como o Navidrome, permitindo que os usuários naveguem e reproduzam suas próprias bibliotecas de música a partir de um aplicativo Linux leve. Os recursos principais de reprodução incluem reprodução sem intervalos, suporte a ReplayGain, transcodificação e Instant Mix. O cliente integra-se ao MPRIS, de modo que controles de mídia da área de trabalho e outras ferramentas compatíveis com MPRIS podem controlar a reprodução. A exibição de letras é suportada, e a interface foi traduzida para mais de uma dúzia de idiomas por meio do Weblate. Os recursos de biblioteca e organização abrangem gerenciamento de playlists, favoritos e playlists inteligentes. Uma pequena interface de linha de comando pode enviar comandos a uma instância já em execução, incluindo próxima/anterior faixa, reproduzir/pausar, parar, atualizar biblioteca, abrir o player grande e reproduzir um álbum, artista ou música específico por ID. Os menus de contexto expõem uma ação "Copiar ID" para fornecer esses argumentos, o que possibilita scripts leves sem usar MPRIS. O suporte a tags NFC não é integrado ao próprio Gelly; um projeto complementar, Gelly-NFC, é um script Python que controla o Gelly por meio de sua CLI, possibilitando configurações como uma jukebox doméstica com cartões NFC. As opções de instalação documentadas no README incluem Flatpak (io.m51.Gelly no Flathub), Arch Linux via AUR, NixOS e ALT Linux Sisyphus. Uma limitação conhecida do Flatpak impede que aplicativos em sandbox leiam o armazenamento de certificados do host, o que pode bloquear conexões a servidores que usam certificados TLS autoassinados; o README descreve uma solução alternativa usando Flatseal para expor o arquivo de certificado e definir SSL_CERT_FILE, ou, alternativamente, usar uma instalação que não seja Flatpak. Para desenvolvimento, o projeto requer bibliotecas de desenvolvimento GTK, Libadwaita e Gstreamer, além de um compilador Rust estável, e usa bindings gtk-rs. Um justfile fornece receitas para builds de desenvolvimento e instalação de versões de lançamento. Contribuições e traduções são bem-vindas, e o README credita os contribuidores pelo trabalho na interface e no backend Subsonic.