mirror of
https://github.com/RetroDECK/Wiki.git
synced 2025-04-10 19:15:16 +00:00
412 lines
11 KiB
Markdown
412 lines
11 KiB
Markdown
# Launching Desktop Games & Apps with RetroDECK
|
|
|
|
This experiment was initiated by the user **murkl** and later expanded upon by the RetroDECK Team. **murkls** goal was to explore the possibility of launching external desktop games and apps within RetroDECK.
|
|
|
|
**Note:** RetroDECK was never intended to be used in this manner, so things like inputs may work as expected.
|
|
|
|

|
|
|
|
### Disclaimer on Experiments
|
|
|
|
These experiments are created by the RetroDECK Team and/or Community. The guides are intended for people with technical knowledge and a passion for tinkering. Using these guides *might* put RetroDECK and your data at risk. The RetroDECK Team can't provide any support for these experiments or fix any issues they might cause on your system or RetroDECK installation.
|
|
|
|
## Prerequisites
|
|
|
|
### Flatpak Spawn Permission
|
|
|
|
**Information:**
|
|
|
|
This experiment requires the `flatpak-spawn` permission, which breaks the sandbox environment that RetroDECK operates in. Therefore, we do not recommend attempting this unless you are confident in your understanding of the process and its implications.
|
|
|
|
You can enable it by running this command in the terminal.
|
|
|
|
```
|
|
flatpak override --user --talk-name=org.freedesktop.Flatpak net.retrodeck.retrodeck
|
|
```
|
|
|
|
### Add RetroDECK to Steam
|
|
|
|
We also recommend that you add RetroDECK to Steam to utilize Steam Input as there is a higher chance of inputs working from the external source.
|
|
|
|
Also some RetroDECK built-in hotkeys in the radials like `Alt+F4` might help you close windows.
|
|
|
|
|
|
## Folder structure
|
|
|
|
| Type | Folder | Comment |
|
|
| :---: | :---: | :---: |
|
|
| Windows Roms Folder | `retrodeck/roms/windows/` | |
|
|
|
|
|
|
|
|
## How-to Make .desktop files
|
|
|
|
Make an empty file with the `<gamename>.desktop`.
|
|
|
|
**Example:**
|
|
|
|
`Ultima I.desktop` and put it into the `retrodeck/roms/windows/` folder.
|
|
|
|
## How-to: Launch Lutris Games
|
|
|
|
### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
### Step 2: Get Identifier and Internal ID
|
|
|
|
1. Open Lutris.
|
|
2. In Lutris, `Right Click` the game -> `Configure` and make a note of your `Internal ID` under `Identifier`.
|
|
3. Make a note of the `Identifier` as well.
|
|
|
|
|
|
**Example:** Ultima I
|
|
|
|
<img src="../lutris.png" width="800">
|
|
|
|
**Internal ID:** 2
|
|
|
|
**Identifier:** ultima-i
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
The files are different if you have the native version of Lutris installed or the Flatpak version.
|
|
|
|
### Step 3a: Lutris (Native)
|
|
|
|
This for Lutris that is installed natively.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=lutris_IDENTIFIERHERE
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host lutris lutris:rungameid/INTERNALIDHERE
|
|
Categories=Game
|
|
```
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** lutris_IDENTIFIERHERE
|
|
- **Exec=** rungameid/INTERNALIDHERE
|
|
|
|
**Example: Ultima I.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Ultima I
|
|
Icon=lutris_ultima-i
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host lutris lutris:rungameid/2
|
|
Categories=Game
|
|
```
|
|
|
|
### Step 3b: Lutris (Flatpak)
|
|
|
|
This for Lutris that is installed via Flatpak.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=lutris_IDENTIFIERHERE
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host flatpak run net.lutris.Lutris lutris:rungameid/INTERNALIDHERE
|
|
Categories=Game
|
|
```
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** lutris_IDENTIFIERHERE
|
|
- **Exec=** rungameid/INTERNALIDHERE
|
|
|
|
**Example: Ultima I.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Ultima I
|
|
Icon=lutris_ultima-i
|
|
Exec=env LUTRIS_SKIP_INIT=1 flatpak-spawn --host flatpak run net.lutris.Lutris lutris:rungameid/2
|
|
Categories=Game
|
|
```
|
|
|
|
## How-to: Launch Steam Games
|
|
|
|
### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
|
|
### Step 2: Get the Steam AppID
|
|
|
|
1. Open Steam.
|
|
2. In Steam, go to `Library` -> `Right Click` the game -> `Properties` -> `Updates`.
|
|
3. Make a note of the `AppID`.
|
|
|
|
|
|
**Example:** ASTLIBRA Revision
|
|
|
|
<img src="../steam.png" width="800">
|
|
|
|
**App ID:** 1718570
|
|
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
The files are different if you have the native version of Steam installed or the Flatpak version.
|
|
|
|
### Step 3a: Steam (Native)
|
|
|
|
This for Steam that is installed natively.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=G NAMEHERE
|
|
Icon=steam_icon_APPIDHERE
|
|
Exec=flatpak-spawn --host steam -silent steam://rungameid/APPIDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** steam_APPIDHERE
|
|
- **Exec=** rungameid/APPIDHERE
|
|
|
|
**Example: ASTLIBRA Revision.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=ASTLIBRA Revision
|
|
Icon=steam_icon_1718570
|
|
Exec=flatpak-spawn --host steam -silent steam://rungameid/1718570
|
|
Categories=Game
|
|
```
|
|
|
|
### Step 3b: Steam (Flatpak)
|
|
|
|
This for Steam that is installed via Flatpak.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=G NAMEHERE
|
|
Icon=steam_icon_APPIDHERE
|
|
Exec=flatpak-spawn --host flatpak run com.valvesoftware.Steam -silent steam://rungameid/APPIDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** steam_APPIDHERE
|
|
- **Exec=** rungameid/APPIDHERE
|
|
|
|
**Example: ASTLIBRA Revision.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=ASTLIBRA Revision
|
|
Icon=steam_icon_1718570
|
|
Exec=flatpak-spawn --host flatpak run com.valvesoftware.Steam -silent steam://rungameid/1718570
|
|
Categories=Game
|
|
```
|
|
|
|
## How-to: Launch Flatpak Games
|
|
|
|
You can either copy and edit the desktop files or make your own.
|
|
|
|
<img src="../discover.png" width="800">
|
|
|
|
**Tips on Applications with Launchers:**
|
|
|
|
If the application has a launcher and you don't want to boot into it.
|
|
|
|
When editing the `Exec=` in the `.desktop` files, check the applications documentation if there is a way to launch it without the launcher via cli.
|
|
|
|
Add that to the `Exec=` command.
|
|
|
|
**Example:** Steam uses `-silent` and Heroic `--no-gui`.
|
|
|
|
### Copy and Edit .desktop files (Recommended)
|
|
|
|
#### Step 1: Find the files
|
|
|
|
**Note:** All files here are symlinks, but the export folders contains them all in a conventient way.
|
|
|
|
Depending if you how you have installed the application they can either be under:
|
|
|
|
- **System Wide:** `/var/lib/flatpak/exports/share/applications/`
|
|
- **Local User:** `~/.local/share/flatpak/exports/share/applications/`
|
|
|
|
#### Step 2: Show Target
|
|
|
|
`Right Click` on the symlinked `.desktop` file in the folder and press `Show Target`.
|
|
|
|
This will take you to the real `.desktop` shortcut.
|
|
|
|
Example `eu.vcmi.VCMI.desktop`:
|
|
|
|
- **System Wide:** `/var/lib/flatpak/app/eu.vcmi.VCMI/current/active/export/share/applications/`
|
|
- **Local User:** `~/.local/share/flatpak/app/eu.vcmi.VCMI/current/active/export/share/applications/`
|
|
|
|
#### Step 3: Copy the .desktop file
|
|
|
|
Copy the `.desktop` file to `retrodeck/roms/windows/`
|
|
|
|
#### Step 4: Rename the file
|
|
|
|
Rename the file to something more fitting.
|
|
|
|
**Examples:**
|
|
|
|
`net.openra.OpenRA.desktop` -> `OpenRA.desktop` or `Red Alert.desktop`
|
|
|
|
`eu.vcmi.VCMI.desktop` -> `VCMI.desktop` or `Heroes of Might and Magic III.desktop`
|
|
|
|
#### Step 5: Edit the file
|
|
|
|
Open the `.desktop` file and edit the **Exec=** values so they are changed to `flatpak-spawn --host flatpak run`.
|
|
|
|
**Example VCMI.desktop:**
|
|
|
|
- **Before:** `Exec=/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=vcmilauncher eu.vcmi.VCMI`
|
|
- **After:** `Exec=flatpak-spawn --host flatpak run --branch=stable --arch=x86_64 --command=vcmilauncher eu.vcmi.VCMI`
|
|
|
|
### Make your own desktop files
|
|
|
|
#### Step 1: Create an empty desktop file
|
|
|
|
First, create the `.desktop` file as mentioned above with the game name and put it in the `retrodeck/roms/windows/` folder.
|
|
|
|
#### Step 2: Get the Run Command and Full Flatpak Name.
|
|
|
|
**Find them on Desktop**
|
|
|
|
Note this was done in KDE
|
|
|
|
- `Right Click` in on the Application in the `Application Launcher Menu` and press `Edit Application`.
|
|
- `Command-line arguments` should contain the `Full Flatpak Name` and `Run Command`.
|
|
|
|
**Find them on Flathub:**
|
|
|
|
- Go to [Flathub](https://flathub.org/).
|
|
- On flathub go to a the application you want to add, press the `Down Arrow` next to `Download Button` to get the `Run Command` and `Full Flatpak Name`.
|
|
|
|
**Example: OpenRA.desktop**
|
|
|
|
[OpenRA - Flathub](https://flathub.org/apps/net.openra.OpenRA)
|
|
|
|
<img src="../openra.png" width="800">
|
|
|
|
- **Run command:** flatpak run net.openra.OpenRA
|
|
- **Full Flatpak Name:** net.openra.OpenRA
|
|
|
|
### Step 3: Populate the .desktop file
|
|
|
|
Open the `.desktop` file and populate it.
|
|
|
|
Copy this:
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=NAMEHERE
|
|
Icon=FULLFLATPAKNAMEHERE
|
|
Exec=flatpak-spawn --host flatpak run RUNCOMMMANDHERE
|
|
Categories=Game
|
|
```
|
|
|
|
Change the values of:
|
|
|
|
- **Name=** NAMEHERE
|
|
- **Icon=** FULLFLATPAKNAMEHERE
|
|
- **Exec=** RUNCOMMMANDHERE
|
|
|
|
**Example: OpenRA.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=OpenRA
|
|
Icon=net.openra.OpenRA
|
|
Exec=flatpak-spawn --host flatpak run net.openra.OpenRA
|
|
Categories=Game
|
|
```
|
|
|
|
|
|
|
|
## How-to: Launch Heroic Games
|
|
|
|
#### Step 1: Create and move .desktop file from Heroic
|
|
|
|
1. Open Heroic.
|
|
2. Install the game .
|
|
3. Go to the `Library` -> `Your Game` -> Press the `Three Dotted Menu`.
|
|
4. Press `Add Shortcut`.
|
|
5. A shortcut will now be created on the Desktop.
|
|
6. Move or copy that to `retrodeck/roms/windows/`.
|
|
|
|
<img src="../heroic-shortcut.png" width="800">
|
|
|
|
### Step 2: Edit the .desktop file
|
|
|
|
Open the `.desktop` file and edit it.
|
|
|
|
The files are different if you have the native version of Heroic installed or the Flatpak version.
|
|
|
|
### Step 2b: Heroic (Flatpak)
|
|
|
|
Edit the file original file.
|
|
|
|
- **Exec=** Add the `flatpak-spawn --host flatpak run com.heroicgameslauncher.hgl --no-gui --no-sandbox` instead of `xdg-open`.
|
|
|
|
**Example: Original - Flight of the Amazon Queen.desktop**
|
|
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Name=Flight of the Amazon Queen
|
|
Exec=xdg-open heroic://launch?appName=1207659723&runner=gog
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=/home/deck/Games/Heroic/Flight of the Amazon Queen/goggame-1207659723.ico
|
|
Categories=Game;
|
|
```
|
|
|
|
**Example: Edited - Flight of the Amazon Queen.desktop**
|
|
|
|
```
|
|
[Desktop Entry]
|
|
Name=Flight of the Amazon Queen
|
|
Exec=flatpak-spawn --host flatpak run com.heroicgameslauncher.hgl --no-gui --no-sandbox heroic://launch?appName=1207659723
|
|
Terminal=false
|
|
Type=Application
|
|
Icon=/home/deck/Games/Heroic/Flight of the Amazon Queen/goggame-1207659723.ico
|
|
Categories=Game;
|
|
```
|
|
|
|
## The Last Step: Launch the Games via RetroDECK & Scrape
|
|
|
|
|
|
<img src="../windows-es-de.png" width="100">
|
|
|
|
After the `.desktop` files have been created and everything is working as expected, RetroDECK will recognize the `.desktop` file the next time you start it.
|
|
|
|
The games will appear under the Windows tab in ES-DE. If you have named the games correctly, there is a good chance that the scraper will identify them.
|