You are not logged in.
Hi everyone,
I’m happy to share a project I’ve been working on to solve a personal frustration with keeping my Lutris library looking clean. After running into several issues with Python-based artwork downloaders breaking due to modern environment management (PEP 668) and the removal of legacy modules like distutils in Python 3.12+, I decided to build a native solution from the ground up.
LutrisArtFetcher is a remake of the original lutris-art-downloader by Deytron, but rewritten entirely in Rust with a TUI powered by Ratatui.
GitHub Repo: https://github.com/PerkyZZ999/LutrisArtFetcher
Why use this?
No Runtime Dependencies: No more virtual environments or broken pip packages. Just a single binary.
Fast & Concurrent: Leverages Rust's async ecosystem to download covers, banners, and icons in parallel.
Modern TUI: A clean terminal interface to manage and preview your library artwork.
Database Safety: Directly queries the Lutris SQLite database (pga.db) for accuracy.
Getting Started:
If you have the Rust toolchain installed, you can clone and build it directly:
git clone https://github.com/PerkyZZ999/LutrisArtFetcher
cd LutrisArtFetcher
cargo build --releaseAdd to PATH
To run `lutrisartfetcher` from anywhere, add the release directory to your shell's PATH:
# Bash
echo 'export PATH="$HOME/path/to/LutrisArtFetcher/target/release:$PATH"' >> ~/.bashrc
source ~/.bashrc# Zsh
echo 'export PATH="$HOME/path/to/LutrisArtFetcher/target/release:$PATH"' >> ~/.zshrc
source ~/.zshrc# Fish
fish_add_path $HOME/path/to/LutrisArtFetcher/target/releaseI've been testing this on CachyOS, and it has significantly simplified my workflow for manually added games. I’d love to get some feedback from the community, and if anyone runs into any edge cases with their Lutris database schema, please let me know or open an issue on the repo!
Cheers! ![]()
Offline