Repository navigation
✨ Features
- sidebar: Smart albums keep a search under a name (#201) (#209) (
1ccd4e1) - edit: Scale photos down, set the quality, save without a backup (#165) (#213) (
3f2eb8e) - rename: Rename a selection with search and replace and placeholders (#163) (#210) (
5a0154d) - viewer: The photo sits in the middle, the control bar above it (#211) (#214) (
7c9cea3) - faces: Unconfirmed faces: confirm suggestions, take faces out, see the photo (#212) (#216) (
efbce3e) - edit: Lens blur spreads lights into discs (#202) (#217) (
88db945) - content: Search photos by what they show (#200) (#218) (
d07049b) - gallery: Years while scrolling, month at the pointer (#228) (
678a9a9) - viewer: A zoomed photo fills the window (#229) (
b02ca26) - open-with: Started with a file, the viewer comes first (#221) (#231) (
cb9e55a) - menu: Rename, rate and rotate from the context menu (#230) (
acf86bd) - analysis: Faces and content passes look at several photos at once (#226) (
118eb23) - faces: Every unknown face and the decisions on Unconfirmed faces (#233) (
502265b) - menu: Delete from the context menu and with the Delete key (#236) (
739ab11) - dates: Fix the dates taken of a selection (#234) (
1843094) - albums: Smart albums from conditions matching all or any (#235) (
2a2daf6) - gallery: A click on the month beside the scrollbar jumps to it (#251) (
cf6d968) - faces: A group to confirm can be someone else, ignored or not faces (#254) (
c9ac667) - ui: Buttons answer the pointer, icon-only Filters and View, sparkle for content search (#255) (
940eb51) - menu: Copy a photo to the clipboard from its context menu (#257) (
4bbd631) - edit: Compare shows the photo as editing started (#258) (
610e6c4) - edit: Version history with a Versions menu and Clear version history (#262) (
e660b43) - edit: Straighten by any angle and flip (#265) (
7b1c8c6) - faces: Suggest a second person when a face is as like them (#266) (
4a9ff7a) - toolbar: Filters sit right beside the search bar (#267) (
e5f9eff) - metadata: Camera, lens and location in the index, info panel and smart albums (#279) (
26d6d15) - filters: Pick the date range on a calendar with a photo on each day (#280) (
4f84233) - places: Name the town nearest to a photo's GPS position, offline (#281) (
9b62892) - edit: Import .cube LUTs and apply them at a strength (#283) (
932b266) - map: A world map of the photos with a position (#284) (
5fe4910) - places: Places from positions take the user's name for their country (#289) (#312) (
b0686e0)
🐛 Bug fixes
- sidebar: Unconfirmed faces lead the People group (#227) (
a1d8fdf) - faces: Unconfirmed faces keeps its page, shows whole groups, explains decisions (#250) (
377ae53) - filters: The date picker marks no weekends (#268) (
fdd0c74) - toolbar: The View menu holds still while it is open (#304) (
8172b22) - indexing: Files still being written are read again later, not counted as unreadable (#287) (#305) (
269ad2f) - map: Clusters hold still while zooming, never overlap, all one bigger size (#306) (
d33241b) - places: A place replaces the place in the search (#288) (#308) (
6a7d386) - albums: Leaving a smart album starts from an empty search (#270) (#309) (
4ffa976) - search: Chips are one height and stay inside the search bar (#310) (
9d6e46b) - map: No bright lines over the land near the poles (#307) (
1c7f192) - sidebar: Places without towns line up with the others (#311) (
75ea022)
♻️ Refactoring
- app: Move five features out of state.rs into state/ modules (#298) (
088d74a) - app: Split edit.rs into an edit/ module (#301) (
2c40be6) - app: Split viewer.rs into a viewer/ module (#302) (
b704963) - app: AppState keeps renaming, date fixing and opening files in their modules (#303) (
5a7d0e3)
📝 Documentation
- Format glossary (
d4bc735) - Say where code goes, drop stale pitfalls, keep domain and meta pure (#290) (
1af591d)
🔧 Maintenance
- rename: Draw the preview before asking for it (#219) (
1d5802a) - Render the README screenshots on Windows after each release (#271) (
82d9608) - app: Run the UI tests as one binary (#286) (
6392bff) - Pin today for the UI tests, so the calendar snapshot holds (#300) (
91fc7ff)
Full changelog: v0.6.0...v0.7.0
📥 Download
| File | For |
|---|---|
| good-gallery-0.7.0-windows-x64-setup.exe | Installer: pick the folder, installs for your user |
| good-gallery-0.7.0-windows-x64-portable.zip | Portable: extract anywhere and run good-gallery.exe |
| good-gallery-0.7.0-linux-x64.tar.gz | Linux: extract, install exiftool, ffmpeg and libmpv from your distribution (see README.txt), run ./install.sh or ./good-gallery |
| good-gallery-0.7.0-linux-x64.deb | Ubuntu 24.04 or newer: sudo apt install ./good-gallery-0.7.0-linux-x64.deb brings the helpers too |
| good-gallery-0.7.0-linux-x64.rpm | Fedora: sudo dnf install ./good-gallery-0.7.0-linux-x64.rpm brings the helpers too. For all video codecs, install ffmpeg from RPM Fusion |
| good-gallery-0.7.0-web.zip | Browser version to host yourself: put the files on any static web server, served over HTTPS |
| good-gallery-0.7.0-windows-x64-setup.exe.sig | Not to open: what the app checks before it installs an update |
The Windows downloads keep the index, settings and thumbnail cache in %APPDATA%\good-gallery, the Linux one in ~/.local/share/good-gallery, so an update picks them up as they are.
The downloads aren't code-signed yet, so Windows SmartScreen may warn about them. For the installer choose More info → Run anyway. For the zip, right-click it → Properties → Unblock before extracting.