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.
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](http…
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.
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
Locate the Theme Files: Navigate to the application’s configuration directory:
cd ~/.local/lutris-gamepad-ui/
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).
1.
Add Your Overrides: Open theme.json and add your custom styles, including only the selectors and properties you wish to modify.
1.
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:
Find the --accent-color variable under the :root selector in theme.default.json.
1.
Add the following override to your theme.json file:
{
":root": {
"--accent-color": "#0078d4"
}
}
Save the file. The UI will immediately update with the new color.
Building from Source
Clone the repository:
git clone https://github.com/andrew-ld/lutris-gamepad-ui.git
cd lutris-gamepad-ui
Install dependencies:
npm install
Run in development mode:
npm run start
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.