limo-app / limo

A simple Qt based mod manager
GNU General Public License v3.0
111 stars 2 forks source link

Feature Request: Optional Soft Linking mod directories instead of Hard Linking #3

Closed WMan22 closed 2 months ago

WMan22 commented 2 months ago

Reason: Storage space saving. Command Tutorial

limo-app commented 2 months ago

Could you clarify what you mean by that? The video appears to say that hard links take up more space than soft links, since ls -l shows space requirements for the hard link are the same as the original file. But this is misleading, a hard link takes up almost no space at all. If you create a file on disk, the data for that file is stored somewhere and what you see as a file is basically a hard link to the data location. If you now create another hard link, that link ONLY contains the location of the data, not the data itself. Soft links have another advantage: They work across file systems. The downside is that they don't behave exactly like the original file does, so i'm not sure if modding with soft links would work at all.

WMan22 commented 2 months ago

What I mean is being able to store files on an external drive, but run a game off an internal drive, with those mods on the external drive loaded.

An example would have been:

  1. I install Fallout: New Vegas on the internal NVME of my Steam Deck.
  2. I store the mods for FO:NV on a MicroSD card.
  3. The vanilla game itself is loaded from the NVME, the mods are loaded from the MicroSD.
limo-app commented 2 months ago

Sorry for the initial confusion. I did some testing and soft links should work for most cases. My only concern is that they behave differently when overwritten by the target application, at least in some instances. The next update will include a check for externally overwritten links which should also help with soft links. I will add soft links in a later update and probably add an info that they might cause issues in rare cases and therefore should only be used when storing mods on a different drive/ partition.

WMan22 commented 2 months ago

I think a good way to do things is when down the line it's ready to be implemented, provide a warning message before you're allowed to do it about how, and why something might break if you use a soft link, and that if bugs are going to be reported about it, it should include a log file detailing the background process so it can be determined if it's user error or something with the app.

That way we can have the feature but with less inconvenience to you, the developer.

limo-app commented 2 months ago

Sym links have been added in https://github.com/limo-app/limo/commit/de92404dd89ecb2ddd0e2843a7c292e882bde9d2 which is part of 1.0.6 and should be live on flathub in a few hours.

WMan22 commented 2 months ago

Sym links have been added in de92404 which is part of 1.0.6 and should be live on flathub in a few hours.

Excellent, thank you.