nicedeck

Running Windows Applications with Proton on Linux

NiceDeck offers a very robust Proton layer to run Windows native games and applications.

That is great! How can I use this Proton layer?

You should install Steam and the Proton - Experimental package from Steam on your device first. Make sure to follow these requirements before trying to use the NiceDeck Proton layer.

Then, just install any Windows native only application with NiceDeck, such as Epic Games Launcher, EA App, Ubisoft Connect, Amazon Games, Battle.Net, Rockstar Games Launcher and GOG Galaxy. After installation you will see that the Proton executable and the $HOME/Games/Proton folder are available on your device, ready for use!

Running Games with Proton

To run games and applications inside your Proton environment without the need to create a new NiceDeck library shortcut, you can just open the system terminal and run the command as described below:

"$HOME/Games/Proton/run.sh" "$HOME/Games/path/to/app.exe"

This command will start the designated program executable in the Proton environment and is very useful for installing drivers or trying new things without creating a shortcut.

If everything goes right for the application or game that you are trying to run, you can later point a new shortcut for it inside NiceDeck for easier access with nice covers, etc.

For easier and more advanced cases, you can create a context menu entry in the KDE environment to let the system automatically create and run this command in the terminal for you. The process is described in the Additional Tips section.

Manually Adding Games

Here are the steps to manually add and play games that you own outside store launchers with the Proton layer:

Installing Drivers

Here are the steps to follow if you need to install additional drivers for your Proton environment (such as .NET 8.0, VcRedist 2015+, etc.):

Tweaking the Environment with Wine

Proton includes Wine components that are very powerful, and you can use them to tweak settings and apply optimizations to the Proton environment such as:

To execute Wine programs, open the terminal and run commands like:

# Request to open Wine programs
"$HOME/Games/Proton/run.sh" wine winecfg # Open WineConfig
"$HOME/Games/Proton/run.sh" wine regedit # Open RegEdit
"$HOME/Games/Proton/run.sh" wine taskmgr # Open Task Manager
"$HOME/Games/Proton/run.sh" wine explorer # Open Explorer

# Manipulate DPI size directly from CLI
# Valid values for DPI are: 96, 120, 144, 192
"$HOME/Games/Proton/run.sh" wine reg add "HKCU\\Control Panel\\Desktop" /v LogPixels /t REG_DWORD /d "192" /f

For more details, please check the official Wine documentation.

Tweaking the Environment with Extras

The Proton run script available at $HOME/Games/Proton/run.sh will be updated every time you install a program with Proton. If you want to customize the run process before launching it, create the file $HOME/Games/Proton/extra.sh and put your customizations inside it.

For reference, here are a few customizations that you can do in the $HOME/Games/Proton/extra.sh file:

#!/bin/bash

# Activate GameMode
# Debug: gamemoded -s && gamemodelist
if [[ "$1" != "wine" ]]; then
  ARGUMENTS=("gamemoderun" "${ARGUMENTS[@]}")
fi

# Replace Proton Experimental with Proton-CachyOS Latest
PROTON_SEARCH="steamapps/common/Proton - Experimental"
PROTON_REPLACE="compatibilitytools.d/Proton-CachyOS Latest"
COMMAND=("${COMMAND[@]/$PROTON_SEARCH/$PROTON_REPLACE}")
ARGUMENTS=("${ARGUMENTS[@]/$PROTON_SEARCH/$PROTON_REPLACE}")

Once you set the content in the file, the Proton layer will automatically load it before running the final launch command.

Games Compatibility with Proton

Proton is always evolving, but there are a few caveats when compared to a native Windows OS. Here is a simple example:

Some games may need specific tweaks or may not work at all. For additional tweaks, you can see the provided documentation in the Proton repository and check the community experience at ProtonDB.

IMPORTANT: Proton on Steam Flatpak

When running the Steam application with flatpak, you will have a few limitations due to the sandbox environment:

1 - Steam / Proton will see only the content that is inside your $HOME/Games folder. This is very important to understand, otherwise you will be lost - always put your Windows games and applications inside that folder.

2 - Symbolic links will not work for content that is outside of the $HOME/Games folder. If you need to let Steam and Proton access content outside of this folder, you need to run the following command to add support for additional locations:

# Specific folder
flatpak override --user --filesystem=/path/to/folder com.valvesoftware.Steam

# External drive
flatpak override --user --filesystem=/path/to/mount/point com.valvesoftware.Steam

3 - If you are not familiar with terminal commands, you can use Flatseal or the system integrated flatpak permissions management (when available) to add additional locations to the Steam flatpak application.

IMPORTANT: Layer Implementation Details

Here are a few important details that are good to know about the Proton layer provided by NiceDeck: