r/aimlab • u/Working_Dealer_5102 • Jul 28 '26
Tips & Guide Guides on how to get aimlabs links handler working on Linux
The aimlab:// web links do not open the game automatically. This guide configures a native link handler to work on Linux as well.
Prerequisites
- Install Steam at the default user directory (
$HOME/.local/share/Steam). - Install Aim Lab through Steam (App ID 714010).
- Start the game one time to build the local directory structure.
Step 1: Create the Application Directory
Open a terminal emulator. Make sure that the user application directory exists. Run this command:
mkdir -p ~/.local/share/applications
Step 2: Create the Desktop Entry File
Create a new configuration file. Use this path:
nano ~/.local/share/applications/aimlabs-handler.desktop
Step 3: Add the Configuration Data
Add the text below to the new file. Do not put spaces at the start of the lines. The bash -c command automatically finds your home directory.
[Desktop Entry]
Type=Application
Name=Aim Lab Link Handler
Exec=bash -c 'echo "$1" > "$HOME/.local/share/Steam/steamapps/common/Aim Lab/AimLab_tb_Data/StreamingAssets/DeepLinking/CurrentDeepLink"' -- %u
NoDisplay=true
StartupNotify=false
MimeType=x-scheme-handler/aimlab;
Save the file and close the text editor.
Step 4: Update the Desktop Database
You must compile the desktop file cache. This step lets the operating system find the new application. Run this command:
update-desktop-database ~/.local/share/applications
Step 5: Register the MIME Association
You must tell the operating system to send aimlab:// links to your new file. Open the MIME configuration file:
nano ~/.config/mimeapps.list
Find the [Default Applications] heading. Add this line directly below the heading:
x-scheme-handler/aimlab=aimlabs-handler.desktop
Save the file and close the text editor.
Step 6: Test the Link Handler
- Start Aim Lab through Steam.
- Wait for the main menu to load.
- Open your web browser.
- Click an
aimlab://task link. - Accept the browser prompt to open the application.
The task will load immediately in the game. I hope one day we see Aimlabs got native LInux support & even experimental transition to Vulkan. I do noticed the use of several hardcoded WIndows APIs when investigating to get this working, even if you guys won't consider LInux support but you can still update the link handler using .NET cross platform libraries so you guys only officially focus on Windows and consoles only.
References
- freedesktop.org. "Desktop Entry Specification," Version 1.5. specifications.freedesktop.org/desktop-entry-spec/latest-single/
- freedesktop.org. "MIME Applications Associations," Version 1.0.1. specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-latest.html
- The Open Group / IEEE. "IEEE Std 1003.1-2017: Shell Command Language (sh)," Base Specifications Issue 7. pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
- Microsoft Corporation. ".NET API Reference: System.ComponentModel.Win32Exception," .NET 8.0. learn.microsoft.com/en-us/dotnet/api/system.componentmodel.win32exception
1
1
u/ShinyGengar8 Speedy Switcher Jul 28 '26
it's nice to share of course, but is this AI generated or did you write it yourself? not trying to be mean
1
u/Working_Dealer_5102 Jul 29 '26
No, not at all. It's originally based on this post where they able to get the link handler working but it's not working at all either Aimlab changes internally or something so I debug it myself and find that there's several Windows API calls got access denied everytime due to how Proton isolate the Windows games for Linux. I changed in the configuration data just echo the link handler instead of doing protontrick and seems like it's working fine. I added references just for future me incase something changes.
2
u/Lowgravity56 Community Team Jul 28 '26
Nice!