CO
Noctua
An image viewer application for the COSMIC™ desktop
Features
- Multi-format support: Raster images (PNG, JPEG, WebP, etc.), SVG vector graphics, and PDF documents
- Navigation: Browse through folders with keyboard shortcuts
- Transformations: Rotate, flip, and crop images
- Zoom & Pan: Flexible viewing with zoom controls and panning
- Multi-page documents: Navigate PDF pages with thumbnail previews
- Metadata display: View EXIF data and file information
- Wallpaper setting: Set images as desktop wallpaper (multi-DE support)
Architecture
Noctua follows Clean Architecture principles with clear separation of concerns.
Key Patterns:
- MVU (Model-View-Update): Elm architecture via libcosmic
- Command Pattern: Domain operations encapsulated in commands
- Dependency Inversion: Domain has no dependencies on infrastructure
- Type-Erased Documents:
DocumentContentenum for unified handling
Installation
A justfile is included by default for the [casey/just][just] command runner.
justbuilds the application with the defaultjust build-releaserecipejust runbuilds and runs the applicationjust installinstalls the project into the systemjust vendorcreates a vendored tarballjust build-vendoredcompiles with vendored dependencies from that tarballjust checkruns clippy on the project to check for linter warningsjust check-jsoncan be used by IDEs that support LSP
Dependencies
Arch Linux
sudo pacman -S poppler-glibDebian/Ubuntu
sudo apt install libpoppler-glib-devFedora
sudo dnf install poppler-glib-develOpenSUSE
sudo zypper install poppler-glib-develDocumentation
License
GPL-3.0-or-later
