Use Color Correction LUT with Flatpak Apps and Emulators on the Steam Deck

Fix poor Steam Deck factory color reproduction. Apply color correction LUTs to your Steam Deck games via vkBasalt. This tutorial will work for games installed via Heroic as well as Emulators.

Use Color Correction LUT with Flatpak Apps and Emulators on the Steam Deck
Photo by Setyaki Irham / Unsplash

Background

This is the Part 2 follow up of the previous post on applying proper color correction to games on the Steam Deck.

The Steam Deck comes with very poor color reproduction out of the box, and can be dramatically improved by applying color correction via LUTs. Previous posters have done an excellent job creating tutorials for Reshade on apps installed via Steam. However, you cannot use Reshade on native linux apps with Vulkan. That's where this amazing project comes into play – vkBasalt. Unfortunately there is no easy way without unlocking your file system on your steam deck to get vkBasalt running for every single application. However, there is a flatpak version available. This means we can use vkbasalt to apply LUTs to our flatpak apps. Most emulators are installed via Flatpak. In addition, games that we install via Heroic Games Launcher can benefit from this guide provided you installed the flatpak version.  

NOTE – This tutorial requires that you have a working LUT in a .cube or .png format as per the guide in Part 1. If you don't have it or don't have the equipment, I have made my files available for you to use and apply yourself.

Demo Video

This is a crude example shot from my iPhone. Note the colors are not 100% true to life in this video, but it shows the LUT / vkBasalt setup working and toggle-able. In real life the LUT applied looks significantly better / more accurate. Demo video is of Ratchet & Clank running on PCSX2. Noticeably the sky looks more accurate as do the grass and trees. However, the iPhone makes it look more saturated than it is in real life.

Setup Guide

Step 1: Installing vkBasalt

Open the Discover App and search for vkbasalt. Then click install on the right side. This should just take a minute and be pretty straightforward.

vkBasalt Flatpak Download

Step 2: Configuring vkBasalt

Modifying the vkbasalt config file is a little tricky because the flatpak filesystem is different than the one that is typically exposed to us.

You will need to go to the following path:

/var/lib/flatpak/runtime/org.freedesktop.Platform.VulkanLayer.vkBasalt/x86_64/21.08/active/files/etc/vkBasalt

The easiest way to do this is to just open Konsole and type in:

xdg-open /var/lib/flatpak/runtime/org.freedesktop.Platform.VulkanLayer.vkBasalt/x86_64/21.08/active/files/etc/vkBasalt

Create vkBasalt.conf within this directory. You can use my config as an example. Or you can create your own. Please remember to change the LUT path to the path where you saved your .cube LUT file, otherwise it won't work properly. Here is my lut file as an example. If you use my LUT file please update the path to where you saved the .cube file.

vkBasalt Config Directory

From a permissions standpoint if you drop the .cube file in this directory as well, you don't have to update the permissions. If you do – in the vkBasalt.conf file specify the location as /etc/vkBasalt/(YOUR LUT FILE).cube.

However, if you saved your .cube file in your Downloads or Documents folder (or basically any other location in your home directory), you will need to update the permissions. The easiest way to do this is to use Flatseal to grant access to your home directory. This is a blanket permission though so use caution. You can also use the CLI to manage the file permissions just for vkBasalt, but that isn't covered here.

Step 3: Configuring Emulators or Other Flatpak Apps

In order for your flatpak apps to take advantage of vkBasalt and the LUT configuration,  you will need to set an environment variable. The easiest way to configure the environment variable is to use Flatseal.

Jump into Flatseal and find all the emulators and apps you want to leverage vkBasalt. Scroll down to Environment and add the following line: ENABLE_VKBASALT=1. Verify your settings as per the screen shot below.

Flatseal Environment Variable Setting

As a reminder, you will need to do this for each app you would want to apply the vkBasalt LUT configuration.

Conclusion

Congrats! If you made it this far you should have a working LUT setup within your flatpak apps / emulators. To test it launch your flapak apps within Desktop Mode and you can hit the HOME key on your keyboard to toggle the effects on and off to see the difference yourself. Note that this toggle may not work in gaming mode. If you have any questions or comments feel free to leave them down below.