- Zero-config organization: Your folder structure is the tagging system.
- Blazingly fast: Virtualized grid smoothly handles 50,000+ files without stutter.
- Read-only by design: Browses your existing files; never edits, moves, or deletes them.
- Keyboard-driven: Navigate your entire media collection without touching a mouse.
- Unified visual grid for images and videos across multiple source directories.
- Real-time filtering by folder-derived tags and fast text search.
- Native, borderless media viewer with zoom, pan, and looping video playback.
- Additive selection and multi-selection with persistent session state.
- Gracefully ignores
.git,node_modules, and respects local.galleryignorefiles. - Polished Linux desktop integration built on GTK4 and Libadwaita.
Vesper requires ffmpeg and ffprobe to be installed on your system for video playback support and thumbnail generation:
- Ubuntu/Debian:
sudo apt install ffmpeg
- Fedora:
sudo dnf install ffmpeg
- Arch Linux:
sudo pacman -S ffmpeg
Ubuntu / Debian / Mint:
Download the .deb package from the Releases page and install it:
sudo apt install ./vesper_*.debThis native package handles all desktop integration and system caches automatically.
Other Distributions (Tarball):
Download the vesper-linux-x86_64.tar.gz and install it using the provided Makefile:
tar -xzf vesper-linux-x86_64.tar.gz
cd vesper-linux-x86_64
sudo make installEnsure you have Rust and Cargo installed, along with GTK4 and SQLite dependencies.
# Fedora
sudo dnf install gtk4-devel libadwaita-devel pkg-config sqlite-devel
# Ubuntu/Debian
sudo apt install libgtk-4-dev libadwaita-1-dev pkg-config libsqlite3-dev
git clone https://github.com/TheRealShek/vesper.git
cd vesper
cargo run --releaseWhen developing Vesper, please ensure you configure the pre-commit hooks to run linters automatically. We provide a make target to set this up:
make setupThis configures Git to use the shared hooks in the .githooks/ directory, running cargo clippy and cargo fmt prior to commits.
- Open Vesper for the first time.
- Click Add Source Directory and select a folder containing your media.
- Vesper instantly begins indexing in the background. Your folder names become your tags.
- Use the sidebar to filter by tags, or the top bar to search and sort.
- Single-click any image or video to open the native viewer.
| Shortcut | Action |
|---|---|
Tab / Shift+Tab |
Move focus between UI regions |
Arrow keys |
Navigate grid or change file in viewer |
Enter |
Open selected cell in viewer |
Escape |
Close viewer, exit selection, or clear search |
Ctrl+A |
Select all in current view |
Ctrl+Click / Shift+Click |
Add cell to selection / Range select |
F |
Toggle fullscreen (in viewer) |
I |
Toggle info panel (in viewer) |
Space |
Toggle video play/pause (in viewer) |
- Language: Rust
- UI Framework: GTK4 + Libadwaita (via
gtk4-rsandlibadwaita-rs) - Database: SQLite (via
rusqlite) for fast metadata querying and persistence. - Concurrency:
tokiofor non-blocking I/O, database queries, and thumbnail generation. - Filesystem:
notifyfor real-time filesystem watching.
Status: v1 Locked.
Vesper v1 is focused exclusively on creating a smooth, read-only browsing experience. There are no plans to introduce file editing, cloud sync, rating systems, or facial recognition. The application is feature-complete according to its primary scope.
