This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Lutris

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
Resources
Article status
This article has some todo items:
  • Write a guide for Installers
  • Fix image in reporting bugs

Lutris is an open source gaming platform for GNU/Linux. It makes gaming on Linux easier by managing, installing and providing optimal settings for games.

Lutris does not sell games; you have to provide your own copy of the games unless they are open source or freeware. Games can be installed anywhere on your system; Lutris does not impose anything.

Installation

Important
It's recommended to use live version of games-util/lutris since stable/testing version in repo is outdated. Changelog

Lutris is present in Gentoo repository as games-util/lutris. To install invoke following command:

root #emerge --ask =games-util/lutris-9999

Runners

Lutris relies on various programs referenced as 'runners' to provide a vast library of games. These runners (with the exception of Steam and web browsers) are provided by Lutris, you don't need to install them with your package manager.

Following runners are supported in lutris:

  • Linux (Native games)
  • Steam
  • Web
  • Wine
  • Wine + Steam
  • Libretro
  • DOSBox
  • MAME
  • MESS
  • ScummVM
  • ResidualVM
  • Adventure Game Studio
  • Mednafen
  • FS-UAE
  • Vice
  • Stella
  • Atari800
  • Hatari
  • Virtual Jaguar
  • Snes9x
  • Mupen64Plus
  • Dolphin
  • PCSX2
  • PPSSPP
  • Osmose
  • Reicast
  • Frotz
  • jzIntv
  • O2EM
  • ZDoom
  • Citra
  • DeSmuME
  • DGen
  • GOG (soon)

Installer scripts

Lutris automates installation of games using configuration scripts written in JSON or YAML, which list the various files needed to install a game and can perform a series of actions on them. The syntax of installers is described docs/installers.rst on Github, and is also available on lutris.net when writing installers.

A web UI is planned to ease the creation of these scripts.

Writing a installer script

This article is a stub. You can help by expanding it.

// Guide to make installers here.

Game Library

You can optionally create an account on lutris.net and connect this account to the client. This will allow you to sync your game library from the website to the client (not the other way around). If you wish, you can also sync your Steam library with your Lutris library on the website.

The client does not store your lutris.net credentials on your computer. Instead, when you authenticate, the website will send a token which will be used to sync your library. This token is stored in ~/.cache/lutris/auth-token.

Configuration files

The client, runner, and game configuration files are stored in ~/.config/lutris. There is no need to manually edit these files as everything should be done from the client.

  • lutris.conf: preferences for the client's UI
  • system.yml: default configuration for every game
  • runners/*.yml: runner-specific default configurations
  • games/*.yml: game-specific configurations

The game configuration can override previously defined runner and system configuration and runner configuration can override system configuration.

Runners and the game database

The data necessary to manage your library and run the game is stored in ~/.local/share/lutris.

  • pga.db: your game library, game installation status, locations on the file system, and some additional metadata, all stored in an SQLite database
  • runners/*: runners downloaded from lutris.net
  • icons/*.png and banners/*.jpg: game images

Command line options

The following command line arguments are available:

--version             show program's version number and exit
-h, --help            show this help message and exit
-v, --verbose         Verbose output
-d, --debug           Show debug messages
-i INSTALLER_FILE, --install=INSTALLER_FILE
                      Install a game from a yml file
-l, --list-games      List all games in database
-o, --installed       Only list installed games
-j, --json            Display the list of games in JSON format
--list-steam-games    List available Steam games
--list-steam-folders  List all known Steam library folders
--reinstall           Reinstall game

Additionally, you can pass a lutris: protocol link followed by a game identifier on the command line such as:

lutris lutris:quake

This will install the game if not already installed or launch the game otherwise (unless the --reinstall flag is passed).

DXVK on lutris

This article is a stub. You can help by expanding it.

// From source: https://github.com/lutris/lutris/wiki/How-to:-DXVK#installing-vulkan

Managing libraries

If Lutris/GAME/Configure/System options/Disable Lutris Runtime (in GUI) is disabled then lutris is going to use system libraries, otherwise it uses libraries in ~/.local/share/lutris/runtime/lib*.

How to locate missing libraries

One way of locating missing libraries is to use e-file command which is part of app-portage/pfl.

To install pfl invoke:

root #emerge --ask app-portage/pfl

Usage:

user $e-file <file>

Where <file> is full name of a file you are looking for (supports wild cards).

Reporting missing libraries

Important
Gentoo may require additional dependencies for lutris games to work out of the box. Those libs won't be included in lutris and has to be added manually.

Notstrider.png

Sent reports to https://github.com/lutris/buildbot/issues

Watchers

Lutris is using watchers:

DEBUG    2018-10-07 09:23:49,284 [steam]:Watching Steam folder /home/$USER/.steam/steam/steamapps

To detect games in native steam library and add them to the lutris's if enabled.

Debugging

Warning
Lutris outputs to sterr,stout seemingly on random.

The most effective way to debug lutris and its runners is to invoke lutris -d in terminal with unlimited scroll.

Using lutris -d 2>&1 lutris.txt is also recommended.

Planned Features

Here's what to expect from the future versions of Lutris:

  • Integration with GOG and Humble Bundle
  • Integration with the TOSEC database
  • Management of Personal Game Archives (let you store your games files on private storage, allowing you to reinstall them on all your devices)
  • Game saves sync
  • Community features (friends list, chat, multiplayer game scheduling)
  • Controller configuration GUI (with xboxdrv support)

Where to look for a help

Troubleshooting

Cannot find winemenubuilder.exe

INFO:
winemenubuilder.exe is used in wine to make linux menu shortcut from windows.

wine: cannot find L"C:\\windows\\system32\\winemenubuilder.exe"

This should be ignored, because lutris is going to make it's own shortcuts at the end of each installation.

POSSIBLE SOLUTION:
If you wish to remove this error message from wine console:

Note
Needs validation

// Works in wine apps, doesn't work in lutris: https://github.com/lutris/lutris/issues/1164

Open Lutris > Lutris > Manage runners > Wine > Configure > DLL overrrides > Key == winemenubuilder.exe 
> Value == d.

Which is going to disable winemenubuilder.exe.

You can set Value on b if you wish to enable winemenubuilder.exe WHICH IS NOT RECOMMENDED for reasons above.

Cannot find FreeType font lib

FreeType is written in C, designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images) of most vector and bitmap font formats.

ERROR:

Wine cannot find the FreeType font library.  To enable Wine to
use TrueType fonts please install a version of FreeType greater than
or equal to 2.0.5.
http://www.freetype.org

SOLUTION:
a) emerging media-libs/freetype

b) installing libfreetype2 library to the location that is set for a process that needs it.

c) Installing libs to lutris's runtime.

Wine version missmatch

ERROR:
wine client error:0: version mismatch 549/566.

SOLUTION:
a) This issue was resolved on lutris 0.4.19+.

b) Invoke `pkill wine && pkill wineserver`. There is a bug which results in wine missmatch if wine version is changed.

ERR_GFX_D3D_NOD3D1X_4

This error usually appear when your vulkan AND/OR DXVK is misconfigured.

IMAGE:
DirectX ERR.png

ERROR:
ERR_GFX_D3D_NOD3D1X_4 - No DirectX 10 or 11 adapter or runtime found. Please install latest DirectX runtime or install a compatible DirectX 10 or 11 video card.

SOLUTION:
a) Your vulkan or DXVK is not configured properly. Check vulkaninfo.

b) Your wine application needs DirectX libs. Use Winetricks to install them.

c) Lutris is missing libraries in it's runtime (~/.local/share/lutris/runtime/lib*).

SESSION_MANAGER variable not defined

// I have no idea why..

ERROR:

Failed to connect to session manager: Failed to connect to the session manager: SESSION_MANAGER environment 
variable not defined

SOLUTION:
Was resolved by restarting lutris (xkill && lutris)

BadWindow (invalid Window parameter)

This problem seems to appear when virtual wine window is xkill-ed.

ERROR:
X Error of failed request: BadWindow (invalid Window parameter)

SOLUTION:
Solved by invoking pkill wine

Reference