Rolv-Apneseth / lib_game_detector

A Rust library for detecting and parsing data about games currently installed on the system
GNU Affero General Public License v3.0
9 stars 1 forks source link

Lutris directories not detected #14

Open winlith opened 1 day ago

winlith commented 1 day ago

Arch, lutris package from pacman

Hi, for some reason in my case Lutris creates its config and coverart files in ~/.local/share/lutris. Looking at source, lib_game_dertector doesn't include this directory in its searches and so rofi-games doesn't display any Lutris games.

Here's what the dirs look like on my machine:

❯ ls ~/.local/share/lutris
banners  coverart  games  lutris.conf  pga.db  runners  runtime
❯ ls ~/.cache/lutris
game-paths.json  installer  lutris.log  shaders  tmp  versions.json

~/.config/lutris doesn't exist.

❯ RUST_LOG=debug rofi -modi games -show games
DEBUG lib_game_detector::linux::launchers::steam::steam_base: 178: Steam dir path exists: true
DEBUG lib_game_detector::linux::launchers::steam::steam_shortcuts: 202: Steam userdata dir path exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_gog: 68: Heroic GOG installed games json file exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_epic: 31: Heroic Launcher's legendary_library json file exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_amazon: 31: Heroic Launcher's nile_library json file exists: true
DEBUG lib_game_detector::linux::launchers::lutris: 178: Lutris - using flatpak: false
DEBUG lib_game_detector::linux::launchers::lutris: 179: Lutris - games directory exists: false
DEBUG lib_game_detector::linux::launchers::lutris: 183: Lutris - games directory exists: "/home/winlith/.config/lutris/games"
DEBUG lib_game_detector::linux::launchers::lutris: 184: Lutris box art directory exists: false
DEBUG lib_game_detector::linux::launchers::lutris: 188: Lutris `game-paths.json` file exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 167: Bottles - using flatpak: true
DEBUG lib_game_detector::linux::launchers::bottles: 168: Bottles - data directory exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 172: Bottles - directory exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 173: Bottles - library yaml file exists: true
DEBUG get_detected_games:get_steam_libraries{self=Steam { path_steam_dir: "/home/winlith/.local/share/Steam", is_using_flatpak: false }}: lib_game_detector::linux::launchers::steam::steam_base: 191: Steam libraryfolders.vdf path: "/home/winlith/.local/share/Steam/steamapps/libraryfolders.vdf"
ERROR get_detected_games: lib_game_detector::linux::launchers::steam::steam_shortcuts: 267: Steam Shortcuts - No shortcuts file found in "/home/winlith/.local/share/Steam/userdata"
 WARN get_detected_games:parse_nile_library{self=HeroicAmazon { path_nile_library: "/home/winlith/.config/heroic/store_cache/nile_library.json", path_icons: "/home/winlith/.config/heroic/icons", is_using_flatpak: false }}: lib_game_detector::linux::launchers::heroic::heroic_amazon: 53: No games were parsed from the Nile library file at "/home/winlith/.config/heroic/store_cache/nile_library.json"
 WARN get_detected_games: lib_game_detector::linux::launchers::bottles: 293: No games found for Bottles launcher
DEBUG rofi_games::config: 27: Config file not found at "/home/winlith/.config/rofi-games/config.toml"

Let me know if you need any more info cheers

Rolv-Apneseth commented 1 day ago

Hmm, interesting. Looks like there's an error for steam too. Thanks for opening the issue and providing details.

What's the values of the following env variables on your system:

As for the steam error, I think that one occurs when it's trying to find a user (needed for parsing non-steam games) - were you maybe not signed in on any profile yet? Otherwise I guess those files are also somewhere different. For me, /home/rolv/.local/share/Steam/userdata contains a bunch of directories named by numbers, all of which contain a ugcmsgcache subdir, but only one which has additional subdirs (only 1 signed in user - though if there are multiple it will just take the first one it finds)

winlith commented 20 hours ago

Hey, in my case these env vars were not defined at all. I set them according to this page, removed all lutris directories and relaunched lutris, however it just recreated them in the same locations as before.

As for the steam error, I wasn't worried about it as all my steam games are detected and can be launched by rofi-games just fine. ~/.local/share/Steam/userdata contains only one number-named directory and it contains config gamerecordings inventorymsgcache ugc ugcmsgcache and a bunch of number-named dirs. Also, I don't have any non-steam games added to the library.

Rolv-Apneseth commented 19 hours ago

Well I'm stumped as to why it's putting stuff in the data dir on your system but config one on mine, but alright I'll just make sure it checks the data dir as a fallback.

And thanks for the info on the Steam error, think I know what's wrong.

Rolv-Apneseth commented 18 hours ago

That's hopefully fixed, let me know if it works with the latest version of rofi-games (just uploaded to the AUR so should be a couple minutes for v1.10.3)

winlith commented 6 hours ago

Now rofi-games says no games with sufficient data are detected. Steam error is gone.

Ofc I have the box art set in lutris: 2024-11-06-145951_hyprshot

❯ ls ~/.local/share/lutris/coverart
peggle.jpg

full log:

❯ RUST_LOG=debug rofi -modi games -show games
DEBUG lib_game_detector::linux::launchers::steam::steam_base: 178: Steam dir path exists: true
DEBUG lib_game_detector::linux::launchers::steam::steam_shortcuts: 202: Steam userdata dir path exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_gog: 68: Heroic GOG installed games json file exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_epic: 31: Heroic Launcher's legendary_library json file exists: true
DEBUG lib_game_detector::linux::launchers::heroic::heroic_amazon: 31: Heroic Launcher's nile_library json file exists: true
DEBUG lib_game_detector::linux::launchers::lutris: 184: Couldn't find games dir in config, but fallback to data dir was successful.
DEBUG lib_game_detector::linux::launchers::lutris: 192: Couldn't find coverart in cache, but fallback to data dir was successful.
DEBUG lib_game_detector::linux::launchers::lutris: 196: Lutris - using flatpak: false
DEBUG lib_game_detector::linux::launchers::lutris: 197: Lutris - games directory exists: true
DEBUG lib_game_detector::linux::launchers::lutris: 201: Lutris - games directory exists: "/home/winlith/.local/share/lutris/games"
DEBUG lib_game_detector::linux::launchers::lutris: 202: Lutris box art directory exists: true
DEBUG lib_game_detector::linux::launchers::lutris: 206: Lutris `game-paths.json` file exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 167: Bottles - using flatpak: true
DEBUG lib_game_detector::linux::launchers::bottles: 168: Bottles - data directory exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 172: Bottles - directory exists: true
DEBUG lib_game_detector::linux::launchers::bottles: 173: Bottles - library yaml file exists: true
DEBUG get_detected_games:get_steam_libraries{self=Steam { path_steam_dir: "/home/winlith/.local/share/Steam", is_using_flatpak: false }}: lib_game_detector::linux::launchers::steam::steam_base: 191: Steam libraryfolders.vdf path: "/home/winlith/.local/share/Steam/steamapps/libraryfolders.vdf"
 WARN get_detected_games: lib_game_detector::linux::launchers::steam::steam_shortcuts: 276: Steam Shortcuts - No valid shortcuts found
 WARN get_detected_games:parse_nile_library{self=HeroicAmazon { path_nile_library: "/home/winlith/.config/heroic/store_cache/nile_library.json", path_icons: "/home/winlith/.config/heroic/icons", is_using_flatpak: false }}: lib_game_detector::linux::launchers::heroic::heroic_amazon: 53: No games were parsed from the Nile library file at "/home/winlith/.config/heroic/store_cache/nile_library.json"
 WARN get_detected_games: lib_game_detector::linux::launchers::lutris: 326: No games (at least not with sufficient data) found for Lutris launcher
 WARN get_detected_games: lib_game_detector::linux::launchers::bottles: 293: No games found for Bottles launcher
DEBUG rofi_games::config: 27: Config file not found at "/home/winlith/.config/rofi-games/config.toml"
Rolv-Apneseth commented 6 hours ago

I see, well I'll have a look later to see if I can spot what's wrong. Can you also check for me if ~/.cache/lutris now contains coverart since you set those environment variables?

winlith commented 6 hours ago

Nope, coverart only exists at .local/share/lutris

❯ echo $XDG_DATA_HOME
/home/winlith/.local/share
❯ echo $XDG_CONFIG_HOME
/home/winlith/.config
❯ echo $XDG_CACHE_HOME
/home/winlith/.cache
❯ ls ~/.cache/lutris
game-paths.json  installer  lutris.log  shaders  tmp  versions.json
❯ ls ~/.local/share/lutris
banners  coverart  games  lutris.conf  pga.db  runners  runtime

BTW I really appreciate you spending time on this ❤️

Rolv-Apneseth commented 6 hours ago

No worries, thanks for reporting and providing info