Skip to content

Repository files navigation

Galman

Build

Galman is an image gallery manager. It lets you browse folders, compare sets of files, preview images, and sort or move selections. The interface focuses on fast navigation and visual comparison.

The app also supports automation scripts, and you can add your own JavaScript scripts by dropping them into the data/scripts/ folder.

Technical

Prerequisites

  • Qt 6 (Quick, Concurrent, Network)
  • Qt 6 image format plugins for extended formats such as WebP
  • CMake and Ninja
  • A C++17 compiler

On Debian or Ubuntu, ./scripts/linux/deps.sh installs the required dependencies. On Debian or Ubuntu with backports enabled, ./scripts/linux/deps-with-temporary-backports-disable.sh installs dependencies while temporarily disabling the backports suite to avoid version conflicts. On Windows, ensure Qt 6, CMake, and Ninja are in PATH.

Galman detects supported image formats through QImageReader, so formats such as WebP are available when the matching Qt image format plugin is installed.

Build

./scripts/linux/build.sh

Useful options:

  • --debug or --release (default is release)
  • -c Debug or -c Release
  • --verbose for verbose build output

Windows:

scripts\windows\build.bat

Run

./scripts/linux/run.sh

scripts/linux/run.sh triggers a build if the matching build folder (debug or release) is missing. Output is logged to temp/run.log.

Windows:

scripts\windows\run.bat

scripts/windows/run.bat triggers a build if the matching build folder (debug or release) is missing. Output is logged to temp/run.log.

Install desktop shortcut (GNOME)

./scripts/linux/install-desktop.sh

Installs a .desktop file in ~/.local/share/applications/ pointing to the release build binary.

Clean build folders

./scripts/linux/clean.sh

Removes build folders. Options:

  • --debug or -d remove only the debug build folder
  • --release or -r remove only the release build folder
  • --all or -a remove both (default)

Package (Debian)

./scripts/linux/package.sh

Version source (single source of truth):

./scripts/linux/set-version.sh 1.2.3

Interactive release helper:

./scripts/linux/release-version.sh

scripts/linux/package.sh uses the version from VERSION. Generated packages are copied to dist/.

Architecture

  • User interface (QML): qml/App/Main.qml drives the main screen. Reusable components live in qml/Components. Visual theme is defined in qml/Theme.qml.
  • Models and logic (C++): src contains the QML-exposed models (FolderBrowserModel, FolderCompareModel, VolumeModel) and copy operations through CopyWorker. ScriptEngine and ScriptManager handle script execution and discovery.
  • Integration: ComfyClient and ComfyWorkflowParser handle external workflows related to image processing.
  • Application entry: src/main.cpp initializes Qt, loads the QML scene, and exposes C++ services to the interface.

Releases

Packages

Contributors

Languages