Random image viewer for collections
A cross-platform desktop application for viewing random images from folders or collections. Useful for reference studies, browsing large image libraries, and rediscovering artwork.
- β¨ Features
- π¦ Installation
- π Quick Start
- π― Use Cases
- β¨οΈ Keyboard Shortcuts
- π±οΈ Mouse Controls
- π οΈ Advanced Features
- ποΈ Technical Details
- π¨ Screenshots
- π Inspiration
- π€ Contributing
- π License
- Organize multiple folders into collections
- Flexible sorting options: Random (shuffle), Alphabetical (name), Full path, File size, Date modified
- Natural sorting: Handles numbered files intelligently (image1.jpg, image2.jpg, image10.jpg)
- Ascending/descending order for all sort methods except random
- Override collection sort settings when viewing
- Quick shuffle mode for single folders
- History navigation with thumbnail panel
- Auto-advance with custom intervals (30 seconds to hours)
- Play/pause/stop controls
- Manual browsing mode
- Zoom and pan support
- Image transformations (flip, grayscale)
- Configurable backgrounds (black, gray, adaptive)
- Dark theme
- Keyboard shortcuts and right-click menu
- Minimal UI design
- Multi-folder collections with professional startup dialog
- Persistent storage between sessions
- Collection editing, deletion, and organization
- Quick folder location access
- Cross-platform support (Windows, macOS, Linux)
Platform | File | Installation |
---|---|---|
Windows | glimpse-viewer-*.exe |
Download and run directly |
macOS | glimpse-viewer-*.dmg |
Download, mount, and drag to Applications |
Linux | glimpse-viewer-*.deb |
sudo dpkg -i glimpse-viewer-*.deb |
Linux | glimpse-viewer-*.tar.gz |
Extract and run ./glimpse |
Prerequisites:
- Python 3.13+
- uv (fast Python package manager) - Install with:
pip install uv
Run from Source:
# Clone the repository
git clone https://github.com/radioactiveorange/glimpse.git
cd glimpse
# Install dependencies and run (uv handles venv automatically)
uv pip install pyside6
# Run the application
uv run main.py
Build Your Own Executable:
# Install build dependencies
uv pip install pyinstaller pyside6
# Build standalone executable using the spec file
pyinstaller glimpse.spec
# Find your executable in the dist/ folder
- Create a collection by clicking "New Collection" and selecting folders
- Configure timer settings (or disable for manual browsing)
- Click "Open Collection" to start viewing
Alternatively, use "Quick Shuffle Folder" to browse any folder immediately.
- Reference image studies
- Portfolio reviews
- Browsing large image libraries
- Visual research and inspiration
Shortcut | Action |
---|---|
β β |
Navigate previous/next image |
Space |
Play/pause timer |
Ctrl + |
Zoom in |
Ctrl - |
Zoom out |
Ctrl 0 |
Reset zoom and center image |
F |
Flip image horizontally |
G |
Toggle grayscale mode |
B |
Cycle background modes (black/gray/adaptive) |
H |
Toggle history panel |
Esc |
Switch collection/folder |
Right-click |
Open context menu |
- Left-click + Drag: Pan image when zoomed
- Mouse Wheel: Zoom in/out
- Right-click: Context menu with all options
- Professional startup dialog with ShuffleBird-inspired design
- Smart sorting system: Choose between random shuffle or organized viewing (name, path, size, date)
- Natural/Human sorting: Properly orders numbered files (image1, image2, image10 instead of image1, image10, image2)
- Flexible sort orders: Ascending/descending options for structured browsing
- Sort override: Change sorting when opening collections without editing the collection
- Edit collections (rename, manage folders, update sort preferences)
- Delete collections with confirmation
- Auto-sorted by recent usage
- Quick folder location access button
- Async loading for large collections (72K+ images tested)
- Supported formats: JPG, JPEG, PNG, BMP, GIF
- Recursive search in subfolders
- Image transformations: flip horizontal/vertical, grayscale
- Smart image caching for performance
- Background modes: Black, Gray, Smart Adaptive Color
- Timer intervals: 30s, 1min, 2min, 5min, 10min, 30min, or custom
- Configurable history panel with thumbnails
- Professional button styling with SVG icons
- Framework: PySide6 (Qt for Python)
- Architecture: Clean modular structure with UI/core separation
- Collection Storage: JSON files in platform-appropriate directories:
- Linux:
~/.local/share/glimpse/collections/
- Windows:
%LOCALAPPDATA%/glimpse/collections/
- macOS:
~/Library/Application Support/glimpse/collections/
- Linux:
- Image Processing: Optimized pixmap caching and async loading
- UI Components: Custom widgets with professional dark theme
- Icons: SVG-based with coded fallbacks for consistency
- Settings: QSettings with cross-platform persistence
- Threading: Worker threads for large collection operations
- Build System: PyInstaller with optimized spec file for all platforms
- Package Management: Debian (.deb), DMG (macOS), and portable binaries
Platform | Minimum | Recommended |
---|---|---|
Windows | Windows 10 | Windows 11 |
macOS | macOS 10.15 | macOS 12+ |
Linux | Ubuntu 20.04 / equivalent | Ubuntu 22.04+ |
RAM | 2GB | 4GB+ |
Storage | 50MB | 100MB+ |
Professional startup dialog for managing collections and quick folder access
Comprehensive collection management with multi-folder support and sorting options
Clean image viewing interface with history panel and media controls
Timer controls for auto-advance functionality with play/pause/stop
Right-click context menu with image transformations and viewing options
This project was inspired by and references several excellent applications:
-
ShuffleBird - Random image viewer with clean interface design. Glimpse's startup dialog and professional UI aesthetic draw inspiration from ShuffleBird's polished approach to image collection management.
-
GestureSesh - Figure drawing application with timer functionality. The timer system and media-style controls in Glimpse were influenced by GestureSesh's focus on timed practice sessions.
We believe in building upon the excellent work of the open source community. These projects provided valuable insights into user experience design for image viewing applications and helped shape Glimpse's approach to collection management and viewing workflows.
This project was built collaboratively with Claude Code. We welcome:
- π Bug reports - Open an issue
- π‘ Feature requests - Suggest improvements
- π§ Pull requests - Fork and contribute code
- π Documentation - Help improve docs and examples
- π§ͺ Testing - Try on different platforms and report findings
- Fork the repository
- Follow the Development Installation steps
- Make your changes
- Test on your platform
- Submit a pull request
When reporting bugs, please include:
- Operating system and version
- Python version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if relevant
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
Glimpse - Random glimpses of your visual world β¨
Built for artists, by artists (and AI) π¨π€