OmaPhoto is a layered image editor for Linux, made first for Omarchy. It follows your Omarchy theme and switches with it.
It is a Linux port of Compositor by Wonder Assembly, a macOS app written in Swift. Compositor's source is the specification: OmaPhoto keeps its tools, its menus and its shortcuts (Ctrl for ⌘, Alt for ⌥). It reads and writes Compositor's .comp projects, so a project moves between the two apps. OmaPhoto is independent of Wonder Assembly.
- Layers, folders, masks, clipping masks, blend modes and opacity
- Selections: marquee, lasso, magic wand, load from a layer, expand and contract
- Brush, eraser, spot healing, clone stamp, smudge, blur and liquify, gradient, shapes, type
- Move, transform and distort layers and selections
- Levels, Curves, Hue/Saturation, Exposure, Gradient Map and Grain, as edits or as adjustment layers
- Layer effects: stroke, drop shadow, color overlay, inner shadow
- Filters: Gaussian and motion blur, noise, lens correction, Content-Aware Fill and Remove Background (U²-Net on ONNX Runtime, offline)
- Crop, canvas size, image size; PNG and JPEG export
- Imports JPEG, PNG, TIFF and HEIC
Each script installs the newest release. The Arch, Ubuntu and Fedora scripts download its package, check it against the release's SHA256SUMS and install it with your system's package manager; the NixOS script builds the release's flake. Packages are built for x86_64.
Arch and Omarchy:
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/arch.sh && bash arch.shUbuntu 24.04 or 26.04 LTS and systems built on them (Linux Mint 22, Pop!_OS 24.04):
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/ubuntu.sh && bash ubuntu.shEach DEB names its Ubuntu release's libraries, so other Ubuntu releases and Debian build from source (below).
Fedora:
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/fedora.sh && bash fedora.shFedora's own libheif decodes no HEVC. For HEIC import, add RPM Fusion and install libheif-freeworld; the script reminds you.
NixOS installs the release's flake into your profile:
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/nixos.sh && bash nixos.shOr add github:ZacharyZhang-NY/OmaPhoto/<tag>, a release tag, as a flake input and put its packages.x86_64-linux.default in your configuration.
The packages themselves sit on the releases page.
The build runs in Docker, so the host needs only Docker:
scripts/dev.sh build # configure and build in Ubuntu 24.04
scripts/dev.sh test # every test, headless
scripts/dev.sh run # build, then the app on your Wayland displayrun gives the container your home folder at its own path, so the app opens and saves your files and reads your Omarchy theme, and the GPU's render nodes (/dev/dri/renderD*), which Mesa's EGL wants. Files outside your home folder stay out of reach.
By hand: C++20, Qt 6.4 or later (Widgets, Concurrent, image formats), CMake, Ninja, libheif, fontconfig and ONNX Runtime. -DOMAPHOTO_MODEL=path/to/u2net.onnx installs Remove Background's model. scripts/distro-check.sh arch|fedora|nixos|resolute builds and tests on those systems (resolute is Ubuntu 26.04).
MIT, as Compositor is; see LICENSE. Remove Background uses U²-Net (Apache-2.0, licenses/U-2-Net.txt) through ONNX Runtime (MIT). Every package carries ONNX Runtime with its notices.