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
7 stars 0 forks source link

lib_game_detector only detects steam library. #6

Closed g1i7ch closed 6 months ago

g1i7ch commented 6 months ago

I'm not sure if this is an issue, or just my ignorance.

I'm not able to get lib_game_detector to detect anything other than the steam library using with rofi-games.

I'm posting the issue here, as rofi-games seems to be working fine for steam games, so i'm assuming it's a configuration issue on my part or possibly an issue with my environment?

If I understand correctly, as long as the portrait game art is set in lutris, the games should display? i've tried changing to several different variants found at https://www.steamgriddb.com/grids to no avail.

I'm running Arch Linux with Hyprland, currently using the lbonn fork of rofi, though ive tried all different variants with no luck.

Is there something i'm missing? Do i need to add a specific library to my PATH?

Any help would be greatly appreciated.

Rolv-Apneseth commented 6 months ago

Hi, thanks for opening this.

If I understand correctly, as long as the portrait game art is set in lutris, the games should display? i've tried changing to several different variants found at https://www.steamgriddb.com/grids to no avail.

In theory yes, it works for me. It is very possible I've made some assumptions that aren't true for all cases though.

First thing that comes to mind, do you have Lutris installed through pacman or something else like flatpak?

Also, you're setting the image on the left here right?

epic_lutris

Otherwise could you run rofi-games with the following command and give me the output?

RUST_LOG=debug rofi -modi games -show games -show-icons
g1i7ch commented 6 months ago

Thanks for taking the time, and the quick response!

I currently have it installed with pacman, but I've tried the flatpak as well.

Yes, i'm setting the image on the left.

Output of: RUST_LOG=debug rofi -modi games -show games -show-icons

DEBUG lib_game_detector::linux::launchers::steam: 173: Steam dir path exists: true DEBUG lib_game_detector::linux::launchers::heroic::heroic_gog: 69: Heroic GOG installed games json file exists: false DEBUG lib_game_detector::linux::launchers::heroic::heroic_epic: 27: Heroic Launcher's legendary_library json file exists: false DEBUG lib_game_detector::linux::launchers::heroic::heroic_amazon: 27: Heroic Launcher's nile_library json file exists: false DEBUG lib_game_detector::linux::launchers::lutris: 141: Lutris games directory exists: false DEBUG lib_game_detector::linux::launchers::lutris: 142: Lutris box art directory exists: false DEBUG lib_game_detector::linux::launchers::lutris: 146: Lutrisgame-paths.jsonfile exists: true DEBUG lib_game_detector::linux::launchers::bottles: 157: Bottles data directory exists: false DEBUG lib_game_detector::linux::launchers::bottles: 161: Bottles directory exists: false DEBUG lib_game_detector::linux::launchers::bottles: 162: Bottles library yaml file exists: false DEBUG get_detected_games:get_steam_libraries{self=Steam { path_steam_dir: "/home/g1i7ch/.local/share/Steam" }}: lib_game_detector::linux::launchers::steam: 183: Steam libraryfolders.vdf path: "/home/g1i7ch/.local/share/Steam/steamapps/libraryfolders.vdf"

Looking at this definitely indicates the lutris game directory doesn't exist. I assume that's the culprit.

DEBUG lib_game_detector::linux::launchers::lutris: 141: Lutris games directory exists: false DEBUG lib_game_detector::linux::launchers::lutris: 142: Lutris box art directory exists: false

Rolv-Apneseth commented 6 months ago

I see yeah, maybe I assumed it would always be in one location but it's not. Do you have anything under ~/.config/lutris? Or maybe $XDG_CONFIG_HOME/lutris? Otherwise we're going to have to find where your Lutris config lives.

g1i7ch commented 6 months ago

That's a negative. Is that something that has to be manually setup with Lutris? it works otherwise.

I created the ~/.config/lutris directory and populated the files...

However I'm still not seeing the Lutris games populate.

Ran the debug command again:

RUST_LOG=debug rofi -modi games -show games -show-icons

DEBUG lib_game_detector::linux::launchers::lutris: 141: Lutris games directory exists: true DEBUG lib_game_detector::linux::launchers::lutris: 142: Lutris box art directory exists: false

Rolv-Apneseth commented 6 months ago

No, it should be automatic as far as I know. I think it's storing the config somewhere else. We need to find where that is. Can you give me the output of the following command:

sudo find $HOME -type d -name "lutris"
Rolv-Apneseth commented 6 months ago

created the ~/.config/lutris directory and populated the files...

Oh. What do you mean populated the files?

g1i7ch commented 6 months ago

created the ~/.config/lutris directory and populated the files...

Oh. What do you mean populated the files?

Apologies, I ran lutris to generate the files. :D

g1i7ch commented 6 months ago

sudo find $HOME -type d -name "lutris"

/home/g1i7ch/.local/share/lutris /home/g1i7ch/builds/lib_game_detector/tests/file_system_mocks/linux/.cache/lutris /home/g1i7ch/builds/lib_game_detector/tests/file_system_mocks/linux/.config/lutris /home/g1i7ch/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lib_game_detector-0.0.3/tests/file_system_mocks/linux/.cache/lutris /home/g1i7ch/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lib_game_detector-0.0.3/tests/file_system_mocks/linux/.config/lutris /home/g1i7ch/.var/app/net.lutris.Lutris/data/lutris /home/g1i7ch/.var/app/net.lutris.Lutris/cache/lutris /home/g1i7ch/.config/lutris /home/g1i7ch/cache.backup/.cache.backup/lutris /home/g1i7ch/.cache/lutris

Rolv-Apneseth commented 6 months ago

So after you created the folder, it added those files by itself? Weird, wonder why it didn't do that until you created the folder.

The box art directory it's talking about should be at ~/.cache/lutris/coverart or $XDG_CACHE_HOME/lutris/coverart

Rolv-Apneseth commented 6 months ago

/home/g1i7ch/.var/app/net.lutris.Lutris/data/lutris /home/g1i7ch/.var/app/net.lutris.Lutris/cache/lutris

I'm assuming these are from the flatpak install? Maybe that's where it's putting things. Can you give me an ls of those?

Rolv-Apneseth commented 6 months ago

I could potentially just have it check both locations

g1i7ch commented 6 months ago

ls /home/g1i7ch/.var/app/net.lutris.Lutris/data/lutris
 .  banners  games  pga.db  runtime  ..  coverart  lutris.conf  runners
ls /home/g1i7ch/.var/app/net.lutris.Lutris/cache/lutris  .  game-paths.json  lutris.log  tmp  ..  gog  shaders  ubisoft  egs  installer  steam  versions.json

I created the coverart folder in ~/.cache/lutris/lutris/coverart and it didn't do anything for me. FYI.

g1i7ch commented 6 months ago

With your help, I've found the solution to my problem. I'm going to go ahead and close.

I had to uninstall my lutris games/remove them from library, and delete the ~/.var/app/net.lutris.Lutris/data/lutris directory that my previous install of flatpak had created. Then create the default pacman lutris data directory ~/.config/lutris and restart lutris. (This recreates the config files in ~/.config/lutris)

For some reason unknown to me, the pacman version of lutris failed to create the default ~/.config/lutris directory, due to it defaulting to an old flatpak install's default data directory ~/.var/app/net.lutris.Lutris/data/lutris

Rolv-Apneseth commented 6 months ago

Glad it was worked out. I'll try make a patch to support the flatpak version to avoid this issue in the future, probably need to do that with the other sources too