79 lines
4.2 KiB
Markdown
79 lines
4.2 KiB
Markdown
# OmaPhoto
|
|
|
|
OmaPhoto is a layered image editor for Linux, made first for [Omarchy](https://omarchy.org). It follows your Omarchy theme and switches with it.
|
|
|
|
It is a Linux port of [Compositor](https://github.com/robbietilton/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.
|
|
|
|
## What it does
|
|
|
|
- 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, HEIC, Photoshop files and camera RAW
|
|
- Drag a number's label to scrub its value
|
|
- Keep working while a project saves
|
|
- A project another app changes on disk reloads in place; unsaved work is never replaced without asking
|
|
|
|
### Works with AI agents
|
|
|
|
AI agents and scripts can build and edit projects directly: a `.comp` is a folder of PNG layers and a manifest, and an open project updates live as it's written. See [Writing OmaPhoto projects](docs/writing-comp-files.md) and the [project format](docs/project-format.md).
|
|
|
|
## Install
|
|
|
|
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:
|
|
|
|
```sh
|
|
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/arch.sh && bash arch.sh
|
|
```
|
|
|
|
Ubuntu 24.04 or 26.04 LTS and systems built on them (Linux Mint 22, Pop!_OS 24.04):
|
|
|
|
```sh
|
|
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/ubuntu.sh && bash ubuntu.sh
|
|
```
|
|
|
|
Each DEB names its Ubuntu release's libraries, so other Ubuntu releases and Debian build from source (below).
|
|
|
|
Fedora:
|
|
|
|
```sh
|
|
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/fedora.sh && bash fedora.sh
|
|
```
|
|
|
|
Fedora's own libheif decodes no HEVC. For HEIC import, add [RPM Fusion](https://rpmfusion.org/Configuration) and install `libheif-freeworld`; the script reminds you.
|
|
|
|
NixOS installs the release's flake into your profile:
|
|
|
|
```sh
|
|
curl -fsSLO https://raw.githubusercontent.com/ZacharyZhang-NY/OmaPhoto/main/scripts/install/nixos.sh && bash nixos.sh
|
|
```
|
|
|
|
Or 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](https://github.com/ZacharyZhang-NY/OmaPhoto/releases).
|
|
|
|
## Build from source
|
|
|
|
The build runs in Docker, so the host needs only Docker:
|
|
|
|
```sh
|
|
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 display
|
|
```
|
|
|
|
`run` 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, LibRaw, 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).
|
|
|
|
## Licence
|
|
|
|
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.
|