Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GIMP Setup

Bash License Version

One-command installer for the complete GIMP ecosystem on Linux: Flatpak GIMP 3, plug-ins, brushes, presets and extra features such as Photoshop-style shortcuts and AI tools.

Companion project of linux-mint-setup, which runs this setup automatically as part of a full machine install. It also works standalone on any distribution with Flatpak.

Installation

Run everything with a single command:

git clone https://github.com/diegochagas/gimp-setup.git && cd gimp-setup && ./setup.sh

To preview the actions without changing anything:

./setup.sh --dry-run

The script is idempotent: run it again at any time to add what is missing. Each run writes a log to logs/.

Requirements

curl, unzip, jq, git, flatpak and python3 must be available. No sudo is required — everything installs to Flatpak and the user home.

Configuration

Optional. Copy the example file and fill in your values:

cp config.sh.example config.sh
Variable Purpose
GEMINI_API_KEY Free key for the Gemini provider — saved to the shared key files
OPENAI_API_KEY Paid key for the OpenAI provider — saved to the shared key files
WITHOUTBG_SERVER_URL WithoutBG server used by the background removal plug-in (default: local)

They are written to ~/.config/PhotoGIMP/{gemini,openai}-api-key and ~/.config/PhotoGIMP/withoutbg-server-url on the host and inside the GIMP Flatpak sandbox, where every AI plug-in finds them (see docs/AI_PLUGINS.md).

config.sh is gitignored. Every variable also falls back to an environment variable of the same name, so a parent script can export GEMINI_API_KEY=... and run ./setup.sh without creating a config.sh.

What setup.sh Does

The script stops if an unhandled command fails. It checks the dependencies, the internet connection and the Flathub remote, then installs all the features found in features/, in priority order. Everything the setup does — including the GIMP install itself — is a feature file.

Features

Every features/*.sh file is a self-contained part of the GIMP ecosystem: the GIMP install, plug-ins, resources, shortcuts, menu options. New features are added by dropping a new file into features/, without touching setup.sh.

A feature file defines:

FEATURE_NAME="My Feature"       # Display name for logs and summary
FEATURE_PRIORITY=65             # Execution order (lower runs first;
                                # optional, default 50)

feature_install() {             # The work, using setup.sh helpers:
    ...                         # run, print_info, file_exists,
}                               # install_flatpak_package,
                                # gimp_profile_dirs, SUMMARY, DRY_RUN...

Features must be idempotent and honor --dry-run (use the run helper for commands and guard direct file writes with DRY_RUN).

Included Features

Priority Feature What it installs Docs
10 gimp.sh Flatpak GIMP + G'MIC + Resynthesizer GIMP.md
30 photogimp.sh Photoshop-inspired interface and configuration PHOTOGIMP.md
40 photoshop-keymap.sh Photoshop keyboard shortcuts (shortcutsrc + controllerrc) PHOTOSHOP_KEYMAP.md
40 slos-gimpainter.sh Painting brushes, dynamics and tool presets SLOS_GIMPAINTER.md
50 linuxbeaver.sh LinuxBeaver GEGL effect plug-ins LINUXBEAVER.md
60 ai-plugins.sh The three AI plug-ins + shared API keys AI_PLUGINS.md

The order matters: GIMP is installed first; PhotoGIMP layers its configuration on top; the Photoshop keymap runs after PhotoGIMP on purpose so its shortcuts win; the AI plug-ins run last so their files survive the configuration overwrites.

GIMP (Flatpak) — features/gimp.sh

GIMP from Flathub with the G'MIC and Resynthesizer plug-ins. The plug-in branches follow the installed GIMP's major version (Flathub publishes them as branch 3, not stable). Resynthesizer adds Filters > Enhance > Heal Selection. See docs/GIMP.md.

PhotoGIMP — features/photogimp.sh

PhotoGIMP 3.0: a Photoshop-inspired interface and configuration for Flatpak GIMP. An existing GIMP 3.0 configuration is backed up to a timestamped folder first. See docs/PHOTOGIMP.md.

SLOS-GIMPainter — features/slos-gimpainter.sh

The SLOS-GIMPainter brush, dynamics and tool-preset package, registered in GIMP's gimprc. See docs/SLOS_GIMPAINTER.md.

LinuxBeaver GEGL Plug-ins — features/linuxbeaver.sh

The LinuxBeaver GEGL effect collection (Filters > Text Styling, Filters > Render > Fun, ...), with a manifest so reruns replace stale binaries cleanly. See docs/LINUXBEAVER.md.

Photoshop Keymap — features/photoshop-keymap.sh

Two layers, installed into every GIMP 3.x profile with timestamped backups (details and customization in docs/PHOTOSHOP_KEYMAP.md):

  • Photoshop keymap for GIMP — the community photoshop-keymap-for-gimp (shortcutsrc + controllerrc, pinned to a commit and sanitized of a malformed upstream line). GIMP's shortcuts follow Photoshop's and show next to the menu entries like in Photoshop: Ctrl+Alt+I Image Size, Ctrl+Alt+C Canvas Size, Ctrl+L Levels, Ctrl+E Merge Down...
  • Keymap Extras — extra bindings for GIMP-only actions, layered on top through the PHOTOSHOP_KEYMAP_EXTRAS array on shortcuts nothing else uses: Ctrl+Alt+E File > Overwrite and Ctrl+Alt+Shift+W File > Export As.

GIMP must be closed while this feature runs.

AI Plug-ins — features/ai-plugins.sh

The three AI plug-ins, installed as one feature (details and API key setup in docs/AI_PLUGINS.md):

  • WithoutBGTools > WithoutBG > Remove Background…. Cuts out the subject via the WithoutBG server set in WITHOUTBG_SERVER_URL and adds the matte as an unapplied layer mask. No key needed.
  • Generative FillFilters > AI > Generative Fill…. Fills the selection from a text prompt; also Image Generator and Layer Composite. Vendored patched GIMP AI Plugin with a provider switch: OpenAI (default), Gemini or SD WebUI.
  • AI Remove SelectionFilters > AI > Remove Selection (AI)…. Photoshop-style Remove tool from PhotoGIMP: Quick Mask-paint the object, run, gone. Backends: Gemini, IOPaint (local), SD WebUI (local).

Shared settings from config.sh (API keys and the WithoutBG server URL) are written for all of them, host and Flatpak sandbox alike.

Notes

  • If GIMP has not been opened before the setup runs, the features that need an existing GIMP profile are skipped with a warning. Open GIMP once, close it, and re-run ./setup.sh.
  • The GEGL plug-in directory must contain only .so files at its top level. Subdirectories or other file types may prevent GIMP from starting.
  • The script downloads software from third-party projects, so review the feature files before running it.

About

One-command installer for the complete GIMP ecosystem on Linux: Flatpak GIMP 3, plug-ins, brushes, presets and extra features such as Photoshop-style shortcuts and AI tools.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages