Code Monkey home page Code Monkey logo

lutris-dashboard's Introduction

Lutris

LiberaPayBadge_ PatreonBadge_

Lutris helps you install and play video games from all eras and from most gaming systems. By leveraging and combining existing emulators, engine re-implementations and compatibility layers, it gives you a central interface to launch all your games.

The client can connect with existing services like Humble Bundle, GOG and Steam to make your game libraries easily available. Game downloads and installations are automated and can be modified through user made scripts.

Running Lutris

If you have not installed Lutris through your package manager and are using the source package, it is recommended that you install lutris at least once, even an older version to have all dependencies available. Once all dependencies are satisfied, you can run lutris directly from the source directory with ./bin/lutris

If you need to run lutris through gdb to troubleshoot segmentation faults, you can use the following command:

gdb -ex r --args "/usr/bin/python3" "./bin/lutris"

Installer scripts

Lutris installations are fully automated through scripts, which can be written in either JSON or YAML. The scripting syntax is described in docs/installers.rst, and is also available online at lutris.net.

Game library

Optional accounts can be created at lutris.net and linked with Lutris clients. This enables your client to automatically sync fetch library from the website. It is currently not possible to sync from the client to the cloud. Via the website, it is also possible to sync your Steam library to your Lutris library.

The Lutris client only stores a token when connected with the website, and your login credentials are never saved. This token is stored in ~/.cache/lutris/auth-token.

Configuration files

  • ~/.config/lutris: The client, runners, and game configuration files

    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 game configuration, which applies to every game
  • runners/*.yml: Runner-specific configurations
  • games/*.yml: Game-specific configurations

Game-specific configurations overwrite runner-specific configurations, which in turn overwrite the system configuration.

Runners and the game database

~/.local/share/lutris: All data necessary to manage Lutris' library and games, including:

  • pga.db: An SQLite database tracking the game library, game installation status, various file locations, and some additional metadata
  • runners/*: Runners downloaded from lutris.net <https://lutris.net>
  • banners/*.jpg: Game banners

~/.local/share/icons/hicolor/128x128/apps/lutris_*.png: Game icons

Command line options

The following command line arguments are available:

-v, --version                    Print the version of Lutris and exit
-d, --debug                      Show debug messages
-i, --install                    Install a game from a yml file
-b, --output-script              Generate a bash script to run a game without the client
-e, --exec                       Execute a program with the lutris runtime
-l, --list-games                 List all games in database
-o, --installed                  Only list installed games
-s, --list-steam-games           List available Steam games
--list-steam-folders             List all known Steam library folders
--list-runners                   List all known runners
--list-wine-versions              List all known Wine runners
-a, --list-all-service-games     List all games for all services in database
--list-service-games             List all games for provided service in database
-r, --install-runner             Install a Runner
-u, --uninstall-runner           Uninstall a Runner
-j, --json                       Display the list of games in JSON format
--reinstall                      Reinstall game
--display=DISPLAY                X display to use
--export <game>                  Exports specified game (requires --dest)
--import <game.7z)               Import games from exportfile (requires --dest)
--dest <folder>                  Specifies Export/Import destination folder

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 it is not already installed, otherwise it will launch the game. The game will always be installed if the --reinstall flag is passed.

Support the project

Lutris is 100% community supported, to ensure a continuous development on the project, please consider donating to the project. Our main platform for supporting Lutris is Patreon: https://www.patreon.com/lutris but there are also other options available at https://lutris.net/donate

Come with us!

Want to make Lutris better? Help implement features, fix bugs, test pre-releases, or simply chat with the developers?

You can always reach us on:

lutris-dashboard's People

Contributors

dependabot[bot] avatar prettydiff avatar smichel17 avatar strycore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lutris-dashboard's Issues

Add Oldest/Newest sorting

I would to be able to view installers that were the oldest to be submitted instead of newest, and be able to choose between 2 options.

After validated a submitted script, you have to reject all older submitted script versions

Hello,
when I validate a submitted script modification, I have to reject all older submitted script modifications.
Sometimes there are more than 20 modifications to reject, it takes a lot of time and it is useless as we have already validated a script.
What about to automatically reject all all older submitted script versions when a modo validated one of them?

Allow to edit installers that are under review

Very often the installers that we review can be alright but may contain a tiny mistake or an awful name, which can be easily fixed. But currently, there's no way to do that from the dashboard, you have to look for the game on the website yourself and edit the installer manually which after a few of them makes you go insane.

Dashboard: diffs are broken for some installers

Field for editing the script is too small

When reviewing an installer, if you first edit the "notes" field or any other field but "script", and then edit the "script" field, the "script' field will be very small. This hinders the reviewing process.
Observe:
Peek 2021-12-10 04-31

Sort new installer submissions by submission date

Currently, installer updates are sorted by submission date (most recent first, to form a LIFO queue). However, new installers are sorted alphabetically. Most of the current first page of submissions has something that makes them hard to approve for one reason or another (and I do not want to reject them; see #26), so this view is basically useless at the moment :(

Don't exit when accepting/removing submissions/drafts if there are still some available

Once a submission/draft is accepted/deleted the page exits back to the submissions page. Instead, it should load another draft/submission if there are any available.

With the way it is now you have to review the installer, accept/delete installer, go back to game page, reload to refresh review button, and review the remaining edits. Repeat that process until there aren't any left.

It's tedious.

Add an action between Accept and Reject

While some installers should be rejected outright (piracy, shady sources, etc), more often I want to follow up with the submitter and and questions or request changes.

For example, recently someone submitted an installer for GOG's Windows version of Another World. There is already an installer for GOG's native version, so our policy is not to accept the Windows version in that scenario… unless it has features that the native one lacks. So in this case, rather than reject outright, I'd like to ask the submitter why they wanted the Windows version when the native one already exists. Otherwise I have to choose between accepting an unnecessary installer, rejecting a useful installer, or doing the work of researching why the Windows installer may be needed (In this case I chose to do nothing, and someone else accepted the installer later, so the submission is no longer available).

It would be nice to have a third option, something like "Reject with reason" or "Request information/changes", that allows moderators to send a message to submitters and preserves the installer. The message could be sent through email or appear on the submitter's dashboard; the submission could either be included in the message or set back to draft status.

Merge installers

This happens a lot:

  1. Installer version X doesn't work
  2. Someone forks installer X and submits it as version X (fixed)

Current workaround:

  • Accept and publish installer X (fixed)
  • Delete installer X
  • Rename X (fixed) back to X

This is extra work and means that the history for installer X is lost.

It would be better if I could instead accept the X (fixed) version and then merge it into X. The merging implementation would take these actions:

  • Adds the most recent revision of X (fixed) as a revision of X.
  • Deletes X (fixed)

Add pagination

I would like to be able to see how many pages of unmoderated installers I have to deal with and browse through them.

Sorting preference is not remembered

If I switch sorting preference to "oldest", this sorting rule will reset if I review an installer, close the page or switch to another tab (like new installers). This requires pressing the button after each review which is very inconvenient.

Diffs are kinda fucked

The installer: line is not actually there in the submission at the bottom, but it's shown like it's added there
image

List of duplicates

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.