A Jellyfin client for the modern desktop
|
|
||
|---|---|---|
| .devcontainer | ||
| data | ||
| Sources | ||
| .gitignore | ||
| .swift-format | ||
| dev.bscubed.Luminate.json | ||
| LICENSE.md | ||
| Package.swift | ||
| README.md | ||
Luminate
Luminate is a modern and robust Jellyfin client for the Linux desktop.
It aims to provide an elegant and immersive browsing experience for any Jellyfin server with features rivaling that of the default Jellyfin Media Player, all while feeling right at home in your Linux desktop environment.
Building
Linux (Native)
swift build
swift run
Requires libadwaita-devel (Fedora) or libadwaita (Ubuntu/Debian) and the Swift 6 toolchain.
Flatpak
flatpak-builder --force-clean build-dir dev.bscubed.Luminate.json
flatpak-builder --run build-dir dev.bscubed.Luminate.json Luminate
macOS (Development)
brew install libadwaita
swift build
swift run
macOS builds are supported for development but the target platform is Linux/Flatpak.
Release Build
swift build -c release
Contributing
Contributions to Luminate are welcome! Refer to the project roadmap below to get an idea of what's currently being worked on before jumping in if you'd like, or you can check out the current issues for something to tackle.
Project Roadmap
Implemented Features
- Server login with Jellyfin authentication
- Persistent session storage (auto-login across restarts)
- Home screen with Continue Watching, Next Up, and Recently Added rows
- Library grid browsing with folder navigation
- Movie detail view (backdrop, poster, metadata, cast, similar items)
- TV show detail view with season picker and episode list
- Search with debounced text input and result display
- Playback recording (start/progress/stop reporting to server)
- Favorites (toggle favorite on movie detail)
- Mark played/unplayed
- Image caching (memory + disk)
- WebSocket client for server events
- Dependency injection system
- Stack-based navigation
- Initial localization support (en/de)
In Progress
- Video player widget (planned mpv + GtkGLArea integration)
- Connecting detail views to navigation stack
- Migrating library views to
@Injecteddependency injection
Planned
- Real video playback with seeking and progress tracking
- Unified search integration
- Continue Watching resume from home screen
- Keyboard shortcut improvements
- Error handling UI for failed network requests
- Unit and UI testing
- CI/CD pipeline
- Flatpak publishing on Flathub
- Multi-user support
- Offline/download support
- Quick login
License
GPL-3.0