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

fl icon

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)

Bottles new Bottle

For this program install, simply input a name and select Software. Now our Bottle has been created! 🎉

Bottles bottles fancy created

Entering the Bottle menu

Bottles fancy bottle

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.

Bottles fancy bottle
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.

Flatseal permissions Bottles
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.

FL Studio installer

Once that's all walked through, you'll be able to launch FL Studio in Bottles.

Launch FL Studio

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.