VGallery — A professional photo gallery application for Linux built with Flutter, combining fast image browsing and an integrated photo editor with a modern glassmorphism design.
Built on the VAXP Ecosystem using Clean Architecture.
- Smart sidebar for navigating folder trees
- Quick access to common folders (Pictures, Downloads, Documents, Desktop)
- Display image count for each folder
- Expand and collapse subfolders with a click
- Display images in a customizable grid (2 to 8 columns)
- Automatic thumbnail generation with disk caching
- Animated hover effects with filename and size display
- Support for multiple formats: JPG, PNG, WebP, BMP, GIF, TIFF
- Instant name search while typing
- Sort by name, date, or size (ascending/descending)
- Display favorites only with one click
- Add and remove images from favorites
- Automatically save favorites in a local JSON file
- Quick filter to display only favorites
- Full-screen view with zoom, pan, and drag (PhotoView)
- Navigate using arrow keys or navigation buttons
- Bottom thumbnail strip for quick navigation
- Slideshow with adjustable speed
- Display image dimensions and size
- Color Adjustments: Brightness, contrast, saturation — with smooth sliders
- Transformations: Rotate (90°, 180°), flip horizontally and vertically
- Crop: Free or fixed aspect ratios (1:1, 16:9, 4:3, 3:2) with manual dimension input
- Resize: Enter width and height with option to maintain aspect ratio
- 8 Ready-made Filters: Grayscale, Sepia, Classic, Cool, Warm, Dramatic, Faded
- Undo/Redo: Complete history for all operations
- Reset: Restore original image with one click
- Save over the original file
- Save as a new copy (avoid overwriting files)
- Export in different formats: PNG, JPG, BMP
- Control image quality when exporting to JPG
- Display file information (name, size, dimensions, type, modification date)
- Read EXIF data (camera, ISO, aperture, shutter speed, focal length)
| Shortcut | Function |
|---|---|
← → |
Navigate between images |
Space |
Start/stop slideshow |
E |
Open editor |
F |
Toggle favorites |
Escape |
Go back |
Backspace |
Parent folder |
- Image processing in separate isolates — Never freeze the UI
- Thumbnail caching on disk with cache validity checking
- Parallel thumbnail generation (4 images at a time)
- Lazy loading with pagination
The application follows the Clean Architecture pattern:
lib/
├── core/ # VAXP core components (Theme, Colors, Layout)
├── domain/ # Models (PhotoItem, FolderItem, EditOperation)
├── infrastructure/ # Image processing in isolates
├── data/ # Services (file system, thumbnails, favorites, editor)
├── application/ # State management (Gallery, Viewer, Editor)
├── presentation/ # User Interface
│ ├── gallery_page.dart
│ ├── photo_viewer_page.dart
│ ├── photo_editor_page.dart
│ └── widgets/ # Reusable components
└── main.dart
- Flutter SDK
^3.9.2 - Linux system
# Clone the project
git clone https://github.com/VAXPAPPS/vgallery
cd vgallery
# Install dependencies
flutter pub get
# Run in development mode
flutter run -d linux
# Build production version
flutter build linuxThe built version is located at: build/linux/x64/release/bundle/
| Package | Purpose |
|---|---|
photo_view |
Zoom, pan, and drag images |
image |
Image processing (resize, crop, filters, export) |
exif |
Read EXIF data from images |
path_provider |
Access app folders (thumbnail cache, favorites) |
path |
File path handling |
window_manager |
Control application window |
venom_config |
VAXP settings system |
This project is part of the VAXP Ecosystem.