sfs-select
一年多了作者只更新了readme文件 大家可以自行去查看
SFS-SELECT
a small tool to manage Steam Family Sharing
https://steamcommunity.com/groups/familysharing/discussions/1/
3068621701744549116/
https://www.unix-ag.uni-kl.de/~t_schmid/sfs-select/
Copyright 2014-2020 by Thomas Schmidt (PsyBlade) Licensed under GPL-3.0-or-
later
ABOUT
When you get the same game from multiple sources steam selects which one to
use. With often less than optimal results (i.e. chosing an much used source
over a rarely used one). This makes an manual selection method desireable.
Despite customer complaints since fall 2013 this has not yet implemented by
Valve. sfs-select tries to offer that possibility.
It allows you to temporatrily disable single sharing sources. That way you can
disable a "in use" library in favor of unused ones. Additionally it can tweak
the way steam uses to assign games to the active sources.
It has both a GUI (for casual use) and a CLI (scripting, desktop shortcuts,
...) mode. The full sourcecode (python 3) is included for everyone who is
cautious, curious or wants to help.
IMPORTANT
? a. I have no idea what valve thinks of sfs-select, but since it's posted in
? ? ?their forum since spring 2014 it would be extremely easy to voice their
? ? ?oppinion.
? b. sfs-select only allows you to reorder or temporarily disable a PC
? ? ?authorisation. It can not do anything else to them e.g. copy them to other
? ? ?PCs or create new ones.
DOWNLOAD
Use a -full file for new installs. To update to a newer version simply copy the
new files over the old ones. Updates form recent enough versions can be done
with the smaller -update downloads too.
Be sure to read the included readme for further instructions.
PRINCIPAL MODE OF OPERATION
The steam client stores a list of accounts which authorized this client (aka
"machine"). It asks the server for permission to show and play games from these
accounts. This list is stored in a plain text file called config/config.vdf. If
you remove accounts from this list the cteam client will never ask for (and
thus never recieve) permission to show that account. If you put an previosly
deleted account back into the file it will work again. If you change the order
it influences how source libraries are assigned to individual games. Those
three things are everything sfs-select actually does.
If you want to you can even edit that file by hand instead. Information on how
to do so is in manual-editing.txt. (Please refrain from adding random accounts
that did not actually autorize you. The server won't grant permission anyway.)
INSTALL
? 1. copy the sfs-select FOLDER into your steam folder
? 2. make a backup of Steam/config/config.vdf (thats the only steam file this
? ? ?tool edits)
? 3. if it complains about missing dlls you might need to install the Microsoft
? ? ?Visual C++ 2015 Redistributable Package (x86) e.g. https://
? ? ?www.microsoft.com/en-us/download/details.aspx?id=48145 but you probably
? ? ?have at least one game that has already installed it
GUI USagE
? 1. Stop Steam
? 2. run sfs-select/windows/sfs-select.exe
? 3. toggle checkboxes / change priority numbers
? 4. click OK
? 5. start Steam
BASIC CLI USagE
? 1. open command prompt
? 2. "cd" into sfs-select folder
? 3. "cd" into the windows folders
? 4. run "sfs-select.exe --list" to make sure it finds the steam config
? 5. run "sfs-select.exe --help" to get more up to date usage hints
? 6. Stop Steam
? 7. run sfs-select with whatever options you see fit
? 8. start Steam
CLI HINTS
* --help prints a more complete parameter expalnation
* --list prints a list of the people you can get games from
* --enable / --disable manages individual shares
* --enable-others / --disable-others manages all other shares at once
* --high-priority / --low-priority manages source assignment priority
* you can use either the name or id to manage a share
* there are short (-e) and long (--enable) names for the same options
* you can manage multiple users at once by listing multiple
* you can list multiple options (even the same one if you want)
EXAMPLES
? sfs-select.exe
? ? ? start the gui
? sfs-select.exe --list
? ? ? get a list of all lenders
? sfs-select.exe --disable PsyBlade
? ? ? disable lending games from PsyBlade
? sfs-select.exe --enable PsyBlade --disable Foo
? ? ? re-enable lending games from PsyBlade and disable from Foo
? sfs-select.exe --enable Foo Bar --disable-others
? ? ? enable lending games from Foo and Bar, disable from everybody else
? sfs-select.exe --high-priority blub
? ? ? to prefer blubs games when possible
? sfs-select.exe --high-priority blah blub
? ? ? to place blah on highest, blub on second highest priority
? sfs-select.exe --low-priority blub
? ? ? to place blub on lowest priority
ADVANCED USagE
* to create shortcuts on you Desktop that switch to your favorite settings
* use the CLI arguments in them to specify your wishes
* ! take care to stop steam before using them !
NOTE ON PRIORITY CHANGES
sfs-select can change the priority order in which accounts are scanned for
games. In general a game with multiple sources will be available from the
sharing partner who comes first in the priority list. But because of how Steam
does this it does not always work as expected.
In the Steam client you see individual games listed but thats not how steam
handles that internally. Your account does not have any games assinged to it,
instead it only has packages. A package can contain a single game or many of
them. Basically it is a single item you put in the shopping cart or a single
key you activated. When Steam starts it simply looks up which games belong to
your packages and adds them to a the list of your games. A game can be in a lot
of different packages: BatmanAagotY for example came (among others) as a single
Steam purchase, Batman+JustCause Steam bundle or a retail CDkey.
A full list of packages containing BatmanAagotY can be seen at http://
steamdb.info/app/35140/subs/ When assigning the game to a shared library Steam
looks on this list. Starting with the lowest package id it scans all your
sharing partners for that package. The first package that has at least one
active partner wins. Unless you disable all of those partners you can only get
the game from someone with that exact package. Of the active partners with this
package Steam selects the one that comes first in the priority list.
In my case Batman+JustCause wins over the version retail. Since only one of my
friends got that package BatmanAA gets assigned to him, no matter what priority
the others with the retail version have.
Finding out who has which package is bit tricky. First you need the appid of
the game you are want. Look at its store or commuinty page. The number in the
url is the appid. For Batman its 35140. Now open a command line and cd to the
folder where you installed sfs and run "sfs-select.exe --locate-source 35140"
It will print a list of sharing partners with packages containing Batman. They
are shown in the order in which steam trys to assign the game to them. Thus the
topmost partner with sharing "on" will get it assigned to him. Note that the
files sfs-select parses to find that info are only updated when that person
logs in at your computer. Thus it can be severly out of date.
By default both CLI and GUI sort by priority. High priority == listed first ==
low number.
FUTURE
If there is demand I can work out any kinks. I'm open to suggestions too.
REQUIREMENTS OF PYTHON VERSION
(you don't need this for the exe version)
* python3
* python3-psutil
* python3-pyqt5