/lutris-gamepad-ui

A simple, TV-friendly, gamepad-navigable frontend for the Lutris game launcher on Linux.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Lutris Gamepad UI

A simple, TV-friendly, gamepad-navigable frontend for the Lutris game launcher on Linux. This application provides a "10-foot UI" designed for couch gaming, allowing you to browse and launch your Lutris library entirely with a gamepad.

View Screenshots

Requirements

  • A Linux-based operating system.
  • Lutris installed and configured with your games.
  • For full functionality, a standard desktop environment with PulseAudio (for audio control) and BlueZ (for Bluetooth management) is recommended.

Installation

AppImage (Recommended)

You can download the latest .AppImage from the Releases page.

After downloading, make the file executable and run it:

chmod +x lutris-gamepad-ui-*.AppImage
./lutris-gamepad-ui-*.AppImage

Arch User Repository (AUR)

Arch Linux users (and users of Arch-based distributions) can install lutris-gamepad-ui-git from the AUR.

Features

  • Gamepad-First Interface: Navigate the entire application without a mouse or keyboard. The UI provides context-aware on-screen button prompts that adapt to your connected controller (Xbox, PlayStation, etc.) and offers audio feedback for interactions.

  • Organized Game Library: Games are automatically organized into shelves for "Recently Played," "All Games," and by categories defined in Lutris. Game cards display cover art, playtime, and last played date, with dynamically generated gradients as fallbacks for missing art.

  • Seamless Gameplay: Launch games directly from the library. While a game is running, a clean "Now Playing" screen is displayed. A global shortcut (Gamepad Home/Guide button or Ctrl+X) allows you to toggle the UI's visibility without closing your game.

  • Integrated System Controls: Access a comprehensive system menu to manage your device. This includes a universal library search, audio output and volume controls, Bluetooth device management, and system power options (reboot, shutdown).

Custom Theming Guide

You can customize the application's appearance by creating a theme.json file to override default CSS properties.

How It Works

On first launch, the application creates two files in its configuration directory:

  • theme.default.json: A reference file containing all available CSS selectors and their default properties. Do not edit this file, as it may be overwritten by updates.
  • theme.json: An empty file for your custom overrides.

Steps to Create a Custom Theme

  1. Locate the Theme Files: Navigate to the application's configuration directory:

    cd ~/.local/lutris-gamepad-ui/
  2. Identify the Element to Style: Open theme.default.json to find the CSS selector for the UI element you wish to change (e.g., :root, .game-card).

  3. Add Your Overrides: Open theme.json and add your custom styles, including only the selectors and properties you wish to modify.

  4. Apply Changes: Save the theme.json file. The application will detect the changes and apply your theme instantly, no restart required.

Example: Changing the Accent Color

To change the main accent color from red to blue:

  1. Find the --accent-color variable under the :root selector in theme.default.json.

  2. Add the following override to your theme.json file:

    {
      ":root": {
        "--accent-color": "#0078d4"
      }
    }
  3. Save the file. The UI will immediately update with the new color.

Building from Source

  1. Clone the repository:

    git clone https://github.com/andrew-ld/lutris-gamepad-ui.git
    cd lutris-gamepad-ui
  2. Install dependencies:

    npm install
  3. Run in development mode:

    npm run start
  4. Build the AppImage:

    npm run build

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.