You need to edit images on Fedora, but GIMP isn't in your menu
You switched to Fedora to get a clean system, but now you need to edit a batch of images and GIMP isn't there. Or maybe you installed it, opened a PNG, and the interface looks broken under Wayland. You need a reliable image editor that respects your workflow, not one that fights your display server or leaves you hunting for plugins across random websites. Fedora provides GIMP in the default repositories, fully integrated with the system libraries and SELinux policies. You get a stable, secure editor without leaving the package manager.
What's actually happening
GIMP ships in the default Fedora repositories. This means the package is built against the system's libraries, signed by the Fedora keys, and tested for compatibility with the release. The package manager handles all dependencies automatically. You do not need to download binaries from the GIMP website. Those binaries are often outdated and lack integration with Fedora's security model.
The main friction points are usually display server compatibility or plugin management. Fedora splits plugins into separate packages to keep the base install lean. This follows the modular packaging philosophy. You install only the plugins you use. This reduces attack surface and keeps updates focused.
GIMP stores user configuration in the XDG config directory. This separates user data from system files. Package updates never touch your brushes, palettes, or tool settings. You can back up your configuration by archiving a single directory.
Install GIMP from the repositories
Install the stable version from the default repositories. This gives you the version tested for the current Fedora release.
sudo dnf install gimp
# WHY: Pulls the gimp package and all runtime dependencies from the official Fedora repos.
# WHY: Ensures the binary is signed and integrated with the system package database.
Run sudo dnf upgrade --refresh weekly to keep GIMP patched. This command updates all packages and refreshes the metadata cache. It is the standard maintenance routine. Do not confuse this with dnf system-upgrade, which is reserved for crossing major Fedora releases.
Get the latest development version
If you need features from the development branch that haven't hit the stable release cycle, enable the official COPR repository. The GIMP team maintains this repository for users who want bleeding-edge features.
sudo dnf copr enable gimp/gimp
# WHY: Adds the GIMP team's COPR repo to your dnf configuration.
sudo dnf install gimp
# WHY: Installs the version from COPR, which may override the stable repo version.
COPR packages update independently of the system. You may get new features faster, but you also accept the risk of instability. Test in a virtual machine before using COPR on a production system.
Launch and verify
Launch GIMP from the terminal to catch errors immediately. The application menu works for daily use, but the terminal shows output when something goes wrong.
gimp /path/to/image.jpg
# WHY: Opens the specified file directly in GIMP, bypassing the startup dialog.
Verify the installation by checking the version string. This confirms the package resolved correctly and tells you exactly which build is running.
gimp --version
# WHY: Prints the installed version string to confirm the package resolved correctly.
Check the journal if GIMP fails to start. The journal contains the actual error message, not just a generic crash dialog.
journalctl -xeu gimp
# WHY: Filters the system journal for GIMP-related messages and explanatory text.
# WHY: Helps identify library conflicts or missing dependencies causing the crash.
Run journalctl -xe first. Read the actual error before guessing.
Manage plugins via dnf
Install plugins through the package manager to maintain system integrity. Plugins installed via dnf stay aligned with the GIMP core libraries. Manual plugin installations can break when GIMP updates.
sudo dnf install gimp-plugin-resynthesizer
# WHY: Installs the Resynthesizer plugin for content-aware fill functionality.
# WHY: Keeps the plugin version aligned with the GIMP core libraries.
Search for available plugins using the package manager. This shows you exactly what Fedora provides without browsing external sites.
dnf search gimp-plugin
# WHY: Lists all packages with "gimp-plugin" in the name or description.
# WHY: Reveals available extensions without leaving the terminal.
If a plugin crashes GIMP, check for library mismatches. You will see a segmentation fault or a symbol lookup error in the terminal.
gimp: symbol lookup error: /usr/lib64/gimp/2.0/plug-ins/resynthesizer.so: undefined symbol: gimp_drawable_get_type
This error indicates the plugin was built against a different version of the GIMP libraries. Reinstall the plugin and GIMP to restore alignment.
sudo dnf reinstall gimp gimp-plugin-resynthesizer
# WHY: Reinstalls the package files without changing configuration.
# WHY: Fixes corruption or version drift between the plugin and core libraries.
Configure and backup settings
GIMP stores user data in ~/.config/GIMP/3.0/. This directory contains brushes, palettes, patterns, and tool settings. Back this up before major upgrades or when moving to a new system.
ls -la ~/.config/GIMP/3.0/
# WHY: Lists the configuration directory containing brushes, palettes, and tool settings.
# WHY: Verifies the directory exists and has correct ownership before you archive it.
Configuration files in ~/.config/GIMP/ are user-modified. Files in /usr/lib/gimp/ ship with the package. Edit your home directory configs. Never edit files under /usr/lib/. Package updates will overwrite manual changes in system directories.
Backup the configuration directory using tar. This preserves permissions and symlinks.
tar -czf gimp-config-backup.tar.gz ~/.config/GIMP/
# WHY: Creates a compressed archive of the GIMP configuration directory.
# WHY: Preserves file permissions and structure for restoration on another system.
Backup ~/.config/GIMP/ before the upgrade. Losing your custom brushes hurts more than losing a package.
Handle display server issues
Fedora uses Wayland by default. GIMP runs on Wayland, but some workflows require X11. Screen recording tools, certain input devices, or legacy plugins may break under Wayland.
Force X11 for a single session by setting the environment variable. This does not change the system default.
GDK_BACKEND=x11 gimp
# WHY: Forces GIMP to use the X11 backend instead of Wayland for this session.
# WHY: Resolves rendering glitches or input issues caused by Wayland compositors.
If you need X11 permanently, switch your session at the login screen. Click the gear icon and select "GNOME on Xorg". This affects all applications, not just GIMP.
Test Wayland first. Fall back to X11 only when the workflow breaks.
Fix permission and SELinux issues
SELinux protects file contexts. If GIMP cannot save files to a directory, the context may be wrong. This happens when you copy files from external drives or other systems.
Restore the default contexts for your home directory. This fixes permission denials caused by incorrect labels.
sudo restorecon -Rv /home/user/Pictures
# WHY: Restores default SELinux security contexts for files in the Pictures directory.
# WHY: Fixes permission denials caused by files copied from external drives or other systems.
Check for SELinux denials in the journal. The setroubleshoot service provides a one-line summary of the denial.
journalctl -t setroubleshoot
# WHY: Filters the journal for SELinux denial summaries generated by setroubleshoot.
# WHY: Shows the exact file and operation that was blocked by the policy.
Read the SELinux denial summary before disabling SELinux. The summary often tells you exactly how to fix the context or policy.
Batch processing from the terminal
GIMP supports non-interactive mode for batch processing. You can write scripts to process images without opening the GUI. This is useful for resizing, format conversion, or applying filters to many files.
gimp -i -b '(file-jpeg-load RUN-NONINTERACTIVE "/path/to/input.jpg" 0 0)' -b '(gimp-quit 0)'
# WHY: Launches GIMP in non-interactive mode for batch scripting.
# WHY: Executes the Scheme procedure to load the file and then quits.
Use gimp-console for scripts that do not need the GUI at all. This reduces memory usage and startup time.
gimp-console -i -b '(script-fu-resize-image 1024 768)' -b '(gimp-quit 0)'
# WHY: Runs GIMP without initializing the graphical interface.
# WHY: Executes the resize script and exits immediately.
Trust the package manager. Manual file edits drift, snapshots stay.
Common pitfalls
The dnf install gimp command will refuse to proceed and print Error: Transaction test error: package gimp conflicts with gimp-flatpak. The conflict is intentional. You cannot have both the system package and the Flatpak version installed simultaneously. Remove the conflicting package or choose one installation method. Do not force the install.
High DPI displays can make GIMP look tiny. GIMP has a scaling setting in Preferences. If the interface is unreadable, check the scaling factor. Go to Edit, Preferences, Interface, and adjust the scaling value.
If you configure GIMP's remote control feature, you must reload the firewall after adding rules. Run sudo firewall-cmd --reload immediately after any --permanent change. Otherwise the runtime configuration and persistent configuration diverge, and the rule won't take effect until the next reboot.
When to use this vs alternatives
Use the stable repository when you need a reliable editor for daily work. Use the COPR repository when you require features from the development branch. Use Wayland when you value input security and modern compositor integration. Use X11 when third-party tools or legacy plugins break under Wayland. Use Flatpak when you want a sandboxed environment isolated from system libraries. Use DNF when you prefer system integration and automatic updates via the package manager.