Caleb Woodbine's blog
⏪ Back
📄 Running FL Studio on Linux
Hi there! 👋 Thanks for stopping by.
Since I last made a post about how I run things in Wine, specifically FL Studio, I've changed the way I run things with Wine.
⚠️ I'd like to preface by saying that I don't advocate for running closed source software in any place; At the moment FL Studio is a tool that I depend on. Here are the processes in which I use to run the software.
🍷 My old way
Previously the way that I ran FL Studio was through Wine running inside of a Toolbx container. How I set it up was
toolbox create -c wine
toolbox run -c wine sudo dnf install -y wine
After this, I am able to save the container as an image to make it easy for recreating
podman commit wine fedora-toolbox-wine:latest
I then placed a script in my ~/bin
folder called fl.sh
#!/bin/bash
/usr/bin/toolbox run --container wine /usr/bin/env WINEPREFIX="/home/caleb/.wine" /usr/bin/wine "C:\windows\command\start.exe" /Unix "/home/caleb/.wine/dosdevices/c:/users/caleb/Start Menu/Programs/Image-Line/FL Studio 20.lnk"
This script would be called by a desktop file in ~/.local/share/applications
called FL Studio 20.desktop
[Desktop Entry]
Name=FL Studio 20 (fl.sh)
Exec=/home/caleb/bin/fl.sh
Type=Application
StartupNotify=true
Path=/var/home/caleb/.wine/drive_c/Program Files (x86)/Image-Line/FL Studio 20
Icon=79E5_FL64.0
StartupWMClass=fl64.exe
and an icon of the logo placed in ~/.local/share/icons/hicolor/{size}x{size}/apps
as 79E5_FL64.0.png
(as PNG in sizes 1024x1024 128x128 16x16 20x20 24x24 256x256 32x32 40x40 48x48 512x512 64x64 freedesktop.org spec)
This makes it display in the app menu and dock as
Next, the fonts need to be installed. Note: I don't have a documented way that I installed the fonts.
This set up works quite well. It is quite simple for myself but might not be the easiest for some folks.
🍾 My new way
I stumbled across Bottles, a project that appears to aims to make Wine more accessible by making it easy. Bottles is a manager for Wine drives, applications, Wine config, dependencies, DXVK, and many more things. It even has a snapshotting feature called versioning.
To begin, along side the deb package you'll find Bottles on Flathub or the AUR if that's your thing. I went with the Flatpak on Flathub.
After installing and launching, you'll be able to create a new Bottle (Wine drive)
For this program install, simply input a name and select Software. Now our Bottle has been created! 🎉
Entering the Bottle menu
there are a few things to do.
- 1. Install allfonts font pack
- FL Studio depends on fonts like Tahoma and a few others. This depencies will gather all normally installed.
- 2. Configure Flatpak permissions
- By default the runtime is quite lockdown and doesn't have access to your home folder. Depending on your flow, this is make it or break it. Here, the Flatpak is configured through Flatseal to allow All user files. ⚠️ IMPORTANT! You may wish to only include certain folders, if that's you do that instead of all files. The main thing is that the programs running inside can access the Documents and Music folder.
- 3. Install FL Studio
- Press on Run Executable to under Bottle Details & Utilies, providing it with your copy of FL Studio. In the installer, just press next or install on everything.
Once that's all walked through, you'll be able to launch FL Studio in Bottles.
Currently as per my experimentation, Bottles doesn't create icons of the Wine installed applications.
In order to do that you must write a .desktop
file, like this
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=FL Studio 20 (fl.sh)
Exec=flatpak 'run' 'com.usebottles.bottles' '-b' '${MY_BOTTLE_NAME}' '-e' '/var/home/${MY_USERNAME}/.var/app/com.usebottles.bottles/data/bottles/bottles/${MY_BOTTLE_NAME}/drive_c/Program Files/Image-Line/FL Studio 20/FL64.exe'
Type=Application
StartupNotify=true
Path=/var/home/${MY_USERNAME}/.var/app/com.usebottles.bottles/data/bottles/bottles/${MY_BOTTLE_NAME}/drive_c/Program Files/Image-Line/FL Studio 20
Icon=79E5_FL64.0
StartupWMClass=fl64.exe
replacing ${MY_USERNAME}
with your username and ${MY_BOTTLE_NAME}
with the name in which you gave your Bottle.
Finally, saving the desktop file in ~/.local/share/applications/FL Studio.desktop
.
Regarding the manual creation of .desktop
files, I believe this is an
already discussed relevant issue here.
Post setup; for best audio performance, I recommend using FL Studio ASIO under Tools -> Audio -> Input / Output. This paired with PipeWire on Fedora 35, I'd say it works impressively.
🔮 Future
As there is first-class support for macOS using Wine, it would be cool to see Image-Line supporting FL Studio on Linux through a Flatpak. I'm unsure about what's on the roadmap for the program. I could see Flatpak being a very stable and helpful technology if the company are interested in supporting it.
I have tried putting a Flatpak together for FL Studio with the now defunct Winepak a few years ago, here's the PR.
🚪 Closing thoughts
Bottles is very much a graphical addition to Wine with batteries included, which I find super handy. For me, it provides:
- an intuitive UI and UX
- a contained and portable runtime
- a easy and reliable way to get fonts for the Wine drive
A nice bonus is with either path of deploying (Wine in Toolbx or with Bottles) midi keyboards work!
If a F(L)OSS tool like Bottles has also helped you, please donate or sponsor them. They seem to be doing some cool stuff!
Currently I still depend on using FL Studio as an artist/musician. Workflows are super hard to change for artists.
If you're an artist who was using closed-source tools and are now using F(L)OSS tools (Ardour, Qtrackor, LMMS, etc…), I'd really love to hear from you and your journey. Contact me via email at <calebwoodbine [dot] public [at] gmail [dot] com>.
Thank you for reading! Hope this has helped you!
Updates:
- Jan 23rd
- to fix the font and UI scaling for things like file pickers, go to Bottles -> your bottle -> Details & Utilities -> Wine Config -> Graphics -> Screen resolution. For me setting this at 288 dpi works really well.
- March 12th
- in Bottles version 2022.2.28, the ability to create desktop file entries for installed applications when running in Flatpak was added. This requires tweaking the sandbox permissions. Check out: https://usebottles.com/blog/release-2022.2.28/#desktop-entries