Putting the Affinity graphics suite on Linux

Art Time

© Photo by Birmingham Museums Trust on Unsplash

© Photo by Birmingham Museums Trust on Unsplash

Article from Issue 300/2025
Author(s):

Affinity is an award-winning photo editing, graphic design, and page layout tool suite that will run on Linux – with a little help from Wine.

The Adobe Suite is the most popular tool for digital artists of all kinds, including photographers, creators, and illustrators. It works well, but it becomes more bloated with each release. Also, the Adobe Suite requires an expensive subscription, and most importantly, Adobe has ignored Linux for decades. The suite does not offer Linux support, and performance under Wine is subpar. Gimp (GNU Image Manipulation Program [1] ) is developed slowly, and CMYK color model support [2] was introduced only in Version 3. Krita [3] is very promising but is optimized primarily for digital painting. Are Gimp and Krita good enough to serve as professional tools on Linux for book or digital media illustration, wedding album creation, or private club invitations? It depends on the tasks and workflow, but I'd expect a lot of pitfalls and painful surprises. Luckily, a user-friendly alternative for Linux is now available.

The Affinity Suite [4] is a toolkit for photo editing, graphic design, and page layout that normally runs on macOS, Windows, and iPad systems. Affinity and the open source community have undertaken a long-term effort to get Affinity applications working in Linux using Wine [5]. Currently, this solution requires a patched Wine-staging (experimental Wine fork), but hopefully it will eventually be able to work with stable Wine, which will make installation easier and allow average users to get it up and running in a few clicks. Sadly, at this time, the installation takes a little more effort.

System Requirements

To fully realize the potential of Affinity on Linux, you'll need the following hardware:

  • A 64-bit PC or laptop with a mouse or equivalent input device
  • A Vulkan-compatible graphics card with hardware acceleration
  • 8GB of RAM
  • 1GB of available hard drive space, with more required during installation

These requirements are very affordable. The average installation file size is nearly 1.5GB, whereas Adobe Photoshop version 26 requires 10GB of available hard-disk space. Wine on Linux uses Vulkan rendering, so good Vulkan performance is necessary for large projects. Affinity also works with integrated graphics that support Vulkan – all screenshots were taken on Intel HD Graphics.

Console Installer

The easiest way to install Affinity on Linux is with the console installer. If you encounter any problems, you will also find an alternative version with a graphical installer. The installation scripts are available on GitHub [6]. Install the required dependencies, Wine, winetricks, 7z, Wget, curl, and tar, using your current package manager. The script will print a warning if a dependency isn't enabled. Then, use the search query in your package manager to find the package name. Listing 1 shows how to install the entire Affinity Suite for Linux.

Listing 1

Installing Affinity Suite

# Affinity Photo
bash -c "\
$(curl -s https://raw.githubusercontent.com/ryzendew/AffinityOnLinux/\
refs/heads/main/AffinityScripts/AffinityPhoto.sh)"
# Affinity Designer
bash -c "\
$(curl -s https://raw.githubusercontent.com/ryzendew/AffinityOnLinux/\
refs/heads/main/AffinityScripts/AffinityDesigner.sh)"
# Affinity Publisher
bash -c "\
$(curl -s https://raw.githubusercontent.com/ryzendew/AffinityOnLinux/\
refs/heads/main/AffinityScripts/AffinityPublisher.sh)"
# Whole Affinity suite
bash -c "\
$(curl -s https://raw.githubusercontent.com/ryzendew/AffinityOnLinux/\
refs/heads/main/AffinityScripts/AffinityLinuxInstaller.sh)"
# Affinity Updater:
bash -c "\
$(curl -s https://raw.githubusercontent.com/ryzendew/AffinityOnLinux/\
refs/heads/main/AffinityScripts/AffinityUpdater.sh)"

This installation method provided on GitHub is dangerous because the script can be intercepted and modified by a malicious user. It is better to clone the repository, manually check the scripts, especially the download links, and then run the scripts manually. After you successfully launch the script, the application icon will appear, and the next step is the standard move: Click to launch! The first launch can take 10-15 seconds, much shorter than the time it takes to prepare a Wine prefix. The installation directory is ~/.AffinityLinux. Make sure the directory is writable and has 5GB of free space, just in case. OpenCL (an open standard for parallel programming across a wide range of devices) [7] is recommended for fully utilizing GPU hardware acceleration. Search for opencl using your package manager, and make sure to select the correct version for your GPU vendor. Verifying GPU hardware acceleration is easy: open an Affinity application and check the Preferences menu, then find Hardware Acceleration.

Graphical Installer

Graphical installation is a great option for people who prefer a GUI. Boxes [8], a graphical configuration tool for Wine and Proton, supports Flatpak, and it is easy to configure security permissions using Flatseal [9]. Proceed as follows:

  1. Install Bottles from Flatpak:

    $ flatpak install flathub <C><C>com.usebottles.bottles
  2. Download the runner wine-tkg-affinity-fedorabuilt.tar.zst from GitHub [10] and rename the extracted folder wine-tkg-affinity.
  3. Move the renamed folder to ~/.var/app/com.usebottles.bottles/data/bottles/runners/wine-tkg-affinity/.
  4. Run the Bottles application:

    $ flatpak run com.usebottles.bottles
  5. Create the new bottle with name Affinity using wine-tkg-affinity runner – the configuration should be similar to Figure 1.

    Figure 1: Configuring Affinity Suite with Bottles.
  6. Install the required dependencies into the bottle: allfonts dotnet40 dotnet35sp1 vcrun2022 using the Dependencies menu. The installation will takes 10 minutes or longer, depending on your hardware.
  7. Click on the button labeled Run executable and select the Affinity application installed with the name Installer_affinity-photo-msi-2.6.3.exe (or similar), which you can download from the Affinity website. After installation, choose No for the question Create a desktop shortcut for this application. If you encounter installation errors, re-run the installation and select Repair.
  8. Choose Dedicated graphic map in the Display menu and choose Yes if you have a dedicated graphics card.
  9. Select Advanced display settings and choose Renderer – Vulkan. Set Virtual Desktop Activation to Yes, and enter Width and Height settings for the display size in pixels.
  10. Under Compatibility, select Windows 10 as the Windows version.
  11. Also in Settings, choose the latest versions of the DXVK and VKD3D translation layers, which let you run 3D applications in Wine. Some people also recommend using the VKD3D-proton fork from Valve. However, on my hardware, VKD3D works well without any issues.

Extract the WinMetadata archive [11] to ~/.var/app/com.usebottles.bottles/data/bottles/bottles/Affinity/drive_c/windows/system32/. Wine needs this metadata to successfully run Affinity applications on Linux.

The final step is to click on the Bottle hamburger menu and choose Add a desktop entry.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • WineTools

    WineTools is an installation program that helps users set up Windows software on Linux without wasting time with experiments.

  • Device Tricks Intro

    Linux is getting much better at managing devices, and the versatility of open source software leads to some interesting innovations.

  • CrossOver

    If Wine has thrown you into the impenetrable depths of operating system arcana, you might try CrossOver, a commercial application that contributes to the Wine project.

  • Optimizing Linux Performance

    When you're tuning up Linux performance, you need to keep an eye on a number of components and parameters. This article describes some techniques for optimizing performance by tuning TCP/IP, reducing latency, and configuring NUMA-aware systems. You'll also learn about CPU scheduling and memory management tuning.

  • Home Laser

    With the FLUX Beamo laser and a Raspberry Pi Board B10001, you can execute your own laser cutting projects on a wide range of materials.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News