A guide to running the Cavalry motion graphics software on Linux using Wine.
This guide has been tested exclusively on Wine 11.
Create a new Wine prefix by creating a folder somewhere on your computer, preferably ~/.cavalry. Within that folder, run WINE_PREFIX=~/.cavalry winetricks which should initialize the prefix.
In Winetricks, select "Install a Windows DLL or component", then check dxvk and click okay. After it is installed, click "Install a font" and check the corefonts option. Go through all of the font installs. Once they are complete, click "Change settings" and select the fontsmooth=rgb option. These improvements make Cavalry run much smoother.
Open winecfg with WINEPREFIX=~/.cavalry winecfg
Go to the Libraries tab.
Under "New override for library," type icuuc and click Add. Do the same for icuin. Ensure they are both set to (Native, Builtin).
Run the Cavalry installer .msi file through Winetricks or through the command line.
Create a new .desktop file to define the Cavalry URI protocol. With the text editor of your choice, create a new file at ~/.local/share/applications/cavalry-handler.desktop. The contents should look like the following:
[Desktop Entry]
Name=Cavalry Protocol Handler
Exec=env WINEPREFIX="/home/micahlt/.cavalry" wine "/home/micahlt/.cavalry/drive_c/Program Files/Cavalry/Cavalry.exe" "%u"
Type=Application
Terminal=false
NoDisplay=true
MimeType=x-scheme-handler/cavalry;
Then run:
update-desktop-database ~/.local/share/applications
xdg-settings set default-url-scheme-handler cavalry ~/.local/share/applications/cavalry-handler.desktopYou should be good to run Cavalry, which you should be able to find from your system menu. Canva sign-in should work properly, and you should have GPU acceleration.
Hey everyone, thanks for the guide! I was having an issue on Zorin OS where following the tutorial almost worked, but after the browser redirected the auth token, it kept opening a second Cavalry window instead of completing the login on the original one. (I also tried modifying the Exec to use wine start, but that just resulted in a stack overflow loop).
Gemini helped me to find out what was happening. It turns out the root cause is related to the Working Directory breaking the IPC (Inter-Process Communication) between the Wine instances. When the system calls the handler, it executes from the home directory, so the second instance fails to locate the original process to pass the token and decides to open a fresh window.
To fix this, you just need to explicitly declare the Path variable in the .desktop file and use absolute paths instead of $USER or ~/.
Here is the .desktop configuration that finally worked perfectly for me:
Steps to apply:
1. Replace YOUR_USERNAME with your actual Linux user folder name.
2. Update the database: update-desktop-database ~/.local/share/applications
3. Important: Kill any ghost Wine processes before testing again by running wineserver -k in the terminal, otherwise the duplicated windows issue will persist from cache.
Hope this helps anyone stuck on the same loop!