/gali

An experimental game launcher for linux

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

gali's logo

Gali

View and start all your games from a single launcher

Supported game sources

Status Variants Name Description Links
Lutris Cemu Nintendo Wii U emulator Website | Lutris
✅ (2) Native Flatpak Citra Nintendo 3DS emulator Website | Flathub
✅ (3) Native Desktop entries Regular linux desktop entries Specification
Native Flatpak Dolphin Nintendo Wii / GameCube emulator Website | Flathub
✅ (1) Native Flatpak Heroic FOSS Epic Games Launcher alternative (GUI) Website | Flathub
Native Itch Install, update and play indie games Website
✅ (1) Native Legendary FOSS Epic Games Launcher alternative (CLI) Repository
Native Lutris Open Source gaming platform for Linux Website
Native Flatpak PPSSPP Sony PSP emulator Website | Flathub
Native Flatpak Retroarch Frontend for the libretro API Website | Flathub
✅ (1) Native Flatpak Steam PC games store Website | Flathub
✅ (2) Native Flatpak Yuzu Nintendo Switch emulator Website | Flathub
  1. Steam, Legendary and Heroic only allow starting games, not stopping or killing them
  2. Citra and Yuzu installed games are not scanned (only roms are scanned)
  3. Not available in Flatpak. In flatpak's sandbox it is not possible to get desktop entries from /var/lib/flatpak/exports/share, so none of the system-wide flatpak desktop entries are scanned. See xdg-desktop-portal#809 for a possible solution.

What are these "variants" ?

Some of the supported game sources can be distributed using multiple methods. In that case, the underlying logic is the same but the place where the games are stored and how they are launched may change.

For example, Retroarch is distributed in all of these formats:

  • Standalone, installed via your distribution's package manager
  • Snap, installed from Snapcraft
  • Flatpak, installed from Flathub
  • Appimage, downloaded manually
  • Steam, installed from Steam's client
  • Itch.io, installed from Itch.io's website or client

It's still the same source under the hood, so all of these are variants of the standalone version.

Vision

Gali is inspired by the Unix philosophy, "Do one thing and do it well". We diverge slightly by doing a few things :

  • Viewing games from a maximum of (local) sources
  • Starting all games normally
  • When possible, stopping started games

This means that every other task concerning games is left to the game sources. This means that Gali will not be able to install, move, uninstall, manage games.
Its goal is not to become the next Steam or Itch. Gali is only a frontend.

Everything is done to make adding new sources as simple as possible.

Installation

Gali is development. Please be patient !

Building from source

The build directory can be changed at will, but a build subdir of the repository is recommended.

git clone https://github.com/GeoffreyCoulaud/gali.git
cd gali/gali
meson setup ../build && cd ../build
meson compile
meson install

Then, simply start in a terminal

gali

TODO

  • Continue UI work
  • Better documentation (docstrings, wiki)
  • Decouple scanning from the main thread
  • Add Marie's new icon for Gali
  • Add a preference panel
  • Save and load user preferences
  • Sources enhancements
    • Scan Dolphin cached games
    • Differenciate between Gamecube and Wii games
    • Scan installed games in Yuzu and Citra
  • New sources
    • Bottles
    • itch.io
    • Decaf
    • Ryujinx
    • (Linux native) Cemu
    • (in Steam) Retroarch
    • (in Lutris) Origin
    • (in Lutris) Battle_net
    • (in Lutris) Uplay
    • (in Lutris) Teknoparrot