Eigentlich wollte ich nur mal wieder Linux ausprobieren, – der letzte Test lag ein paar Jahre zurück – weil mir die letzten Windows 11 Updates immer wieder das System zerschossen haben. Aus einem reinen Test wurde Begeisterung…
Affinity 3.3 einfach nur mal unter Linux ausprobieren – Das war das zweite Ziel, denn ich will ja auch für meine Kunden nahtlos weiter arbeiten können.
Da Affinity offiziell noch keine Linux-Version anbietet, bleibt also eigentlich nur Wine. Und damit begannl wieder eine dieser Geschichten, bei denen man sich am Anfang denkt: „Das kann doch nicht so schwer sein…“
Der erste Versuch
Mein erster naiver Versuch mit Affinity unter Wine sah zunächst gar nicht so schlecht aus. Das Programm ließ sich installieren und auch starten.
Dann allerdings der erste Absturz. In den Wine-Logs tauchten unter anderem Fehler im Zusammenhang mit .NET und der Monitor-Erkennung auf. Also erstmal die naheliegende Idee: Wine-Version ändern, Winetricks, .NET reparieren, dies, das, Ananas ausprobieren…
Wer Linux und Wine kennt, weiß wahrscheinlich schon, wo das endet… Nach einigen Versuchen habe ich mich deshalb entschieden, nicht weiter an einem alten Prefix herum zu frickeln, sondern das Ganze einmal sauber von vorne aufzubauen.
Ein eigener Wine-Prefix für Affinity
Zuerst bekam Affinity seinen eigenen Wine-Prefix übers Terminal:
export WINEPREFIX="$HOME/.wine-affinity"
export WINEARCH=win64
wineboot -u
Damit bleibt die komplette Installation vom restlichen Wine getrennt. Das ist übrigens eine Sache, die ich bei Wine inzwischen wirklich empfehlen würde. Wenn man einmal anfängt, verschiedene Windows-Programme im gleichen Prefix zu installieren, kann man sich dadurch ziemlich schön selbst die eigene IT Hölle bauen.
Wichtig: aktuelles Winetricks
Der nächste Punkt war dann tatsächlich wichtiger als gedacht.
Auf meinem Linux Mint war das normale Winetricks-Paket ziemlich alt – also habe ich Winetricks direkt aus dem offiziellen Repository geladen:
cd ~
curl -L -o winetricks https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
./winetricks --version
Die benötigten Komponenten
Für den Affinity-Prefix habe ich dann folgende Komponenten installiert:
~/winetricks --unattended --force \
remove_mono vcrun2022 dotnet48 corefonts win11
Also:
- .NET Framework 4.8
- Visual C++ 2022
- Windows Core Fonts
- Windows 11 Kompatibilität
- und Mono raus
Gerade .NET 4.8 sollte man dabei nicht nervös abbrechen. Das dauert unter Wine gerne länger und produziert während der Installation jede Menge Meldungen, bei denen man als relativ neuer Linux User erstmal denkt – toll, das bringt mehr Probleme als Lösungen. War aber gar kein Problem…
Und dann ließ sich Affinity 3.3.0 installieren
zum installieren habe ich die normale Affinity x64.exe von der Webseite von Affinity genommen. Hier muss man lediglich Enterprise wählen, da man sonst die elende Windows MSI Datei downloadet.
Dann gings los:
WINEPREFIX="$HOME/.wine-affinity" \
wine "$HOME/Downloads/Affinity x64.exe"
Die Installation selbst lief problemlos durch. Affinity 3.3. startete anschließend tatsächlich. Aber ganz fertig waren wir damit noch nicht.
Weiße Dialogfenster
Affinity lief zwar, allerdings waren einige Dialogfenster teilweise einfach weiß. Besonders schön war das bei:
Bearbeiten → Einstellungen – Das Fenster ging auf, aber viel zu sehen war dort nicht.
An dieser Stelle kam dann der entscheidende Teil, den ich nur mit Hilfe von Chat GPT lösen konnte:
Zusätzlich wurden die Windows.winmd und wintypes.dll eingebunden. Danach wurde über das winecfg Menü für wintypes – Native (Windows) eingestellt.
Und siehe da
Die Dialoge waren plötzlich da. Geil!
Vulkan und DXVK
Da noch einige Darstellungsprobleme übrig waren, habe ich anschließend auch Vulkan und DXVK aktiviert. Das wird auch von anderen Leuten ausdrücklich im Netz empfohlen.
WINEPREFIX="$HOME/.wine-affinity" \
~/winetricks --unattended --force renderer=vulkan dxvk
Mein Linux-System bringt dafür bereits einen funktionierenden Vulkan-Treiber mit. In meinem Fall läuft das Ganze über die olle und alte Intel Iris Xe und Mesa.
DXVK übernimmt dabei die Übersetzung von Direct3D nach Vulkan. Ob das für jede Affinity-Installation genauso notwendig ist, kann ich natürlich nicht sagen. Für mein Setup gehört es inzwischen dazu.
Ein kleiner Trick, den man sich merken sollte
Zwischendurch hatte ich plötzlich wieder merkwürdige Darstellungsfehler und eine Fehlermeldung, dass andere Affinity-Apps nicht erreichbar seien.
Bevor ich jetzt wieder angefangen hätte, alles neu zu installieren, habe ich einfach den Wine-Server beendet:
WINEPREFIX="$HOME/.wine-affinity" wineserver -k
Danach Affinity neu gestartet. Und plötzlich war wieder alles okay. Offenbar lief im Hintergrund noch irgendwo ein Affinity- bzw. Wine-Prozess weiter.
Das Ergebnis
Aktuell läuft bei mir also:
Affinity 3.3.0
Linux Mint 22.3
Wine 11.18
64 Bit Prefix
Winetricks 20260125-next
dazu
remove_mono
vcrun2022
dotnet48
corefonts
win11
und
Windows.winmd
wintypes.dll
wintypes = Native (Windows)
mit
Vulkan
DXVK
Affinity startet und lässt sich inzwischen tatsächlich vernünftig benutzen. Menüs funktionieren, Einstellungen funktionieren, Dialoge werden dargestellt und auch der Vollbildmodus funktioniert.
Ganz perfekt ist es natürlich noch nicht
Ein Punkt funktioniert bei mir weiterhin nicht sauber: Das Andocken bzw. Stapeln von Dialogfenstern und Panels funktioniert unter Wine nicht wie unter Windows.
Die Fenster lassen sich öffnen und verschieben, aber ich kann sie nicht so miteinander andocken bzw. stapeln, wie ich es aus der Windows-Version gewohnt bin. Für die normale Arbeit ist das bisher allerdings kein Drama.
Und dann kam (heute) das nächste Update…
Kaum lief Affinity 3.3.0 sauber, kam auch schon eine neue Version. 😀
Die neue Installationsdatei heruntergeladen, die bestehende ersetzt – und plötzlich beschwerte sich Affinity beim Start über die gespeicherten Einstellungen: Fehler beim laden der Einstellungen
Also wieder ein bisschen Debugging.
Dabei stellte sich heraus, dass Affinity seine Einstellungen hier speichert: AppData/Roaming/Affinity/Affinity/3.0/Settings
Wenn ich diesen Ordner umbenenne: Settings → Settings.backup – startet Affinity wieder und legt einen neuen Settings-Ordner an.
Der kleine Haken beim Beenden
Irgendwann fiel mir dann noch auf: Wenn ich Affinity ganz normal über das X oder über „Beenden“ schließe und anschließend wieder starte, erscheint plötzlich die Meldung: „Die anderen Affinity-Apps sind nicht erreichbar …“
Ich konnte den Fehler mehrmals hintereinander reproduzieren. Wenn ich Affinity normal beendete, kam die Meldung beim nächsten Start wieder.
Der entscheidende Unterschied – im Terminal also wieder:
WINEPREFIX="$HOME/.wine-affinity" wineserver -k
Danach ließ sich Affinity wieder problemlos starten.
Offenbar bleibt beim normalen Beenden unter Wine noch etwas im Hintergrund hängen. Mit wineserver -k wird der Wine-Server dieses Prefixes komplett beendet.
Warum jedes Mal das Terminal bemühen? Genau darauf hatte ich natürlich auch keine Lust.
Da mein Wine-Prefix ausschließlich für Affinity verwendet wird, lag die Lösung eigentlich auf der Hand: Der saubere Neustart muss automatisch passieren.
Also habe ich mir einen kleinen Starter gebaut.
Affinity über einen eigenen Starter starten
Wir schreiben ein kleines Script übers Terminal, oder wie ich es als ehemaliger frischer Windows User gewohnt bin, per rechter Maustaste im Pfad:
/home/dein username/bin (falls bin nicht existiert, Ordner erstellen).
Darin erstellen wir jetzt per rechter Maustaste ein neues leeres Dokument, welches wir später als Affinity.sh speichern. Dort tragen wir e
#!/bin/bash
export WINEPREFIX="$HOME/.wine-affinity"
export WINEARCH=win64
wine "$WINEPREFIX/drive_c/Program Files/Affinity/Affinity/Affinity.exe"
# Affinity beendet -> Wine-Prefix sauber beenden
wineserver -k
Danach gehen wir über Start → Einstellungen → Applets → Menü → Menübearbeitung
und erstellen dort einen neuen Eintrag.
Beim Befehl tragen wir den vollständigen Pfad zu unserer .sh-Datei ein:
/home/deinusername/bin/Affinity.sh
Affinity startet jetzt wie gewohnt über das neue Icon, beendet aber nach dem Schließen automatisch den Wine Server des Affinity-Prefixes.
Andere Anleitungen und Installer via Github:
https://github.com/seapear/AffinityOnLinux
Anleitung
https://github.com/ryzendew/Linux-Affinity-Installer
Der Installer automatisiert alle Schritte mit elegantem Gui. Allerdings ist dort die letzte Affinity Version aktuell 9 Monate alt.


