Skip to content

justinf555/Moments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

887 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Moments

A photo management application for the GNOME desktop. Organize, browse, and manage your photo library with support for local storage and Immich servers.

Features

  • Local and Immich backends — manage photos stored on your filesystem or connect to an Immich server for cloud-based library management
  • Offline-first sync — the Immich backend caches everything locally in SQLite, so the app works fully offline and syncs when connected
  • Fast grid browsing — keyset-paginated photo grid with six zoom levels and smooth scrolling through large libraries
  • RAW format support — import and display CR2, NEF, ARW, DNG, and other RAW formats alongside standard JPEG, PNG, WebP, HEIC, and TIFF
  • Video support — import and play video files with GStreamer-based playback
  • Albums — create and manage albums to organize your photos
  • People — browse photos by person using face data synced from Immich
  • Favourites and filtering — star your best photos and filter by favourites, recent imports, or trash
  • EXIF metadata — view camera, lens, exposure, GPS, and other metadata in the detail panel

Screenshots

Moments photo grid with sidebar and albums

Moments preferences dialog with library stats

Installation

Moments is distributed as a Flatpak. There is no Flathub listing yet — for now, build from source.

Building from Source

Requirements:

  • GNOME Builder (recommended), or
  • flatpak-builder and the GNOME SDK

Using GNOME Builder:

  1. Clone the repository:
    git clone https://github.com/justinf555/Moments.git
    cd Moments
  2. Open the project in GNOME Builder
  3. Click Run (or press Ctrl+F5)

Using the command line:

git clone https://github.com/justinf555/Moments.git
cd Moments
make run

This builds and installs the Flatpak locally, then launches the app.

System Dependencies (for cargo test outside Flatpak)

If you want to run unit tests directly, you need these system libraries:

  • gtk4-devel
  • libadwaita-devel
  • gettext-devel
  • libheif-devel
  • gstreamer1-devel and gstreamer1-plugins-base-devel
  • libsecret-devel

On Fedora:

sudo dnf install cargo gtk4-devel libadwaita-devel gettext-devel \
  libheif-devel gstreamer1-devel gstreamer1-plugins-base-devel \
  libsecret-devel pkg-config

Then run:

cargo test

Experimental features

Moments ships with non-destructive rotate, flip, and crop enabled by default. The pixel-adjustment and filter editing sections ship in the binary but are hidden by default while they get more real-world testing miles. You can opt in per-feature via GSettings.

Because Moments is a sandboxed Flatpak with no dconf hole, run gsettings inside the sandbox with flatpak run --command=gsettings:

# Enable the Adjustments section (exposure, contrast, saturation,
# temperature, tint, vignette).
flatpak run --command=gsettings io.github.justinf555.Moments \
    set io.github.justinf555.Moments enable-adjustments true

# Enable the Filters section (Noir, Sepia, B&W).
flatpak run --command=gsettings io.github.justinf555.Moments \
    set io.github.justinf555.Moments enable-filters true

Restart Moments after changing either key. To revert, replace set with reset and drop the trailing value.

For development builds (make run-dev, app id io.github.justinf555.Moments.Devel), substitute that app id in both positions (the flatpak run target and the schema id).

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines on reporting bugs, suggesting features, and submitting pull requests.

For an overview of the codebase, see ARCHITECTURE.md.

Getting in Touch

License

Moments is licensed under the GNU General Public License v3.0 or later.

About

A GNOME photo management app, targeting GNOME/GTK4

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages