A fast, clean photo and video gallery for Linux desktops and Linux phones (Phosh / FuriOS), built with GTK 4 and libadwaita.
Yaga is a gallery app that feels right at home on a modern GNOME desktop and adapts to Linux phones running Phosh (FuriOS, Droidian, UBports). It scans your media folders, ensures consistently smooth performance thanks to a thumbnail cache and an SQLite index, and stays out of your way while doing so. It now also includes a built-in Camera that captures photos and video — on phones running Halium / gst-droid the camera taps directly into the hardware (flash, torch, sensors). In addition to several editing features, it allows you to effortlessly integrate your Nextcloud Photos.
- Multiple libraries
separate tabs for Photos, Pictures, Videos, Screenshots, and any extra folders you add - Built-in camera
capture photos and record video without leaving the app; swipe the shutter between photo and video modes. On Halium / gst-droid phones (FuriOS, Droidian, …) the camera drives the HAL directly:- optional geotagging via GeoClue2, with EXIF written in place — no JPEG re-encode
- self-timer (3 / 10 s), pinch-to-zoom, tap-to-focus, flash for photos, video light / torch for recording, JPEG quality presets, video quality presets
- handedness toggle (right / left / neutral) so the shutter button sits under your thumb
- Mobile-adaptive UI
narrow-window breakpoints hide / re-order desktop-only chrome on phones; pull-to-refresh replaces the title-bar refresh icon - Nextcloud sync
browse your Nextcloud photo library directly, no FUSE or GVFS mount needed; thumbnails load on demand - QR code scanner
scan Nextcloud app-password QR codes straight from the camera to connect your account instantly - Date grouping
sort by date and photos are grouped under clear section headers (day / week / month / year). Long galleries use a sliding window: only the visible months stay in memory so jumping forward through years stays fast. - Built-in editor
crop, rotate, adjust brightness / contrast / colour channels, add frames for holidays and occasions, drop stickers - Video playback
watch videos directly in the app or hand them off to any external player - Selection mode
long-press any photo to enter multi-select, then delete or move a whole batch at once - Folder view
drill into subfolders; folder tiles show a 2×2 preview mosaic
One-time install — adds a launcher and a desktop entry, no root required:
bash install.shThen launch Yaga from your app menu, or type yaga in a terminal.
Run directly without installing:
python3 -m yagaUninstall:
bash uninstall.shFor camera release checks on phones and desktops, see docs/camera-validation.md.
Open Settings → Diagnostics to copy a compact report for bug reports. It includes runtime versions, storage paths, media-folder settings, Nextcloud connection state, GStreamer camera plugins, and detected torch sysfs paths. It does not include passwords or app tokens.
For camera debugging from a terminal, run:
YAGA_CAMERA_DEBUG=1 python3 -m yaga- Open Settings → Nextcloud
- Enter your server URL and username
- Either paste an app password or tap Scan QR code — go to Nextcloud → Settings → Security → App passwords, create one, and scan the QR code with your camera
- Hit Connect
Photos are streamed directly over WebDAV. Thumbnails are cached locally; full files are only downloaded when you open them.
- Privacy: local-first, no telemetry. See PRIVACY.md for what is stored where and how to wipe it.
- License: MIT.
