WIP gallery for linux
  • QML 47.5%
  • C++ 30.5%
  • JavaScript 21.1%
  • CMake 0.7%
  • Shell 0.2%
Find a file
Alex 38f69b3f4f fix(privacy): hidden-cover was showing inside the Hidden view too
Tile.qml compared filterMode against TimelineModel.HiddenMode, but
enum constants don't resolve through a plain context-property
instance in QML — it read as undefined, so filterMode !== undefined
was always true and the privacy cover rendered everywhere, including
on the Hidden page itself. Every other call site in the codebase
already compares filterMode against plain integer literals; do the
same here (HiddenMode = 3).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 16:59:42 +02:00
assets UI: Implement animations overhaul for sidebar 2026-06-17 20:39:21 +02:00
include style(m3): token-driven Material 3 compliance pass 2026-07-02 16:45:12 +02:00
qml fix(privacy): hidden-cover was showing inside the Hidden view too 2026-07-02 16:59:42 +02:00
src fix(dashboard): granular delete, no more full-list reset 2026-07-02 11:24:39 +02:00
.gitignore chore: gitignore .serena/ and src/build-pkg/ tool dirs 2026-07-02 11:22:52 +02:00
CMakeLists.txt fix(dialogs): restore XDG portal file/folder dialogs 2026-07-02 11:22:46 +02:00
kader.desktop feat: trash management, ignored folders management, and UI polish 2026-05-23 19:37:36 +02:00
PKGBUILD feat(viewer): standalone fast-path window for file-manager launches 2026-07-02 11:11:37 +02:00
README.md feat: RAW support, new app icon, improved README 2026-05-24 23:07:37 +02:00

Kader icon

Kader

A fast, modern photo gallery for Linux — built with Qt 6, QML Material 3, and C++.


Features

  • Timeline — mosaic grid with automatic monthly separators and variable density
  • Albums — folder-based with pinning, custom covers, and virtual album creation
  • Videos — dedicated view with an integrated player (FFmpeg backend), looping, volume, seeking
  • Places / Map — geotagged photos plotted on an OpenStreetMap with reverse-geocoded pin cards
  • Favorites, Hidden, Trash — smart views; hidden photos are password-protected
  • Viewer — zoom/pan, EXIF info panel, keyboard navigation, fullscreen, copy to clipboard
  • RAW camera support — thumbnail extraction via LibRaw for NEF, CR2, CR3, ARW, DNG, RAF and more
  • Encrypted thumbnails — AES-256-CBC per-machine key, cached on disk
  • Fast scanning — parallel directory walk using Linux getdents64, Exiv2 EXIF parsing, batch SQLite writes in WAL transactions
  • Storage overview — sidebar card showing photos, video, and other disk usage

Tech Stack

Layer Technology
UI QML + Qt 6 Quick + QmlMaterial
Backend C++17, Qt 6 Core / Sql / Concurrent / Multimedia
Thumbnails libvips (images), ffmpegthumbnailer (video), LibRaw (RAW)
Metadata Exiv2
Database SQLite 3 (WAL mode)
Encryption OpenSSL AES-256-CBC

Building

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/kader

Dependencies: Qt 6 (Core Gui Qml Quick Sql Positioning Location Concurrent Multimedia), libvips, Exiv2, LibRaw, OpenSSL, ffmpegthumbnailer

On Arch Linux:

makepkg -si

Usage

kader                        # open gallery
kader /path/to/photo.jpg     # open a single file directly
kader file:///path/to/photo  # XDG / .desktop %U handler