Lightweight user account switcher/login keeper for steam
Project description
Steam account switcher - lightweight program to switch between steam accounts without having to reenter password/2FA.
works on windows and linux
one click to login the corresponding user
works on the first start using your existing login
waits in the background while steam is running
close steam and directly login another user via the tray menu
automatically shows a list of users previously logged in on this machine by reading steam config files
has buttons to delete saved logins and/or remove users from the list
never comes in contact with any of your passwords
includes a simple command line interface
Installation
Install the latest version from PyPI:
pip install --user steam-acolyte
Alternatively, if you want this application to live independently from other python packages, I recommend using pipx rather than pip:
pip install --user pipx pipx install steam-acolyte
For windows, an all-inclusive .exe file can be created using PyInstaller from the development files as follows:
pip install -U pyinstaller pyinstaller steam-acolyte.spec
This .exe can also be downloaded from the github releases page. Expect that on the first execution windows shows a warning dialog along the lines of “Windows Defender SmartScreen prevented an unrecognized app from starting. Running this app might put your PC at risk”. Click “More info” and then “Run anyway” to acknowledge the warning. This is normal because I didn’t buy a code signing certificate.
Usage
Simply run steam-acolyte instead of steam.
In order to switch users, exit steam via the “Exit” option, or use acolyte’s tray menu.
Optionally, modify your steam launchers to execute steam-acolyte.
How it works
acolyte does not inspect or store any password or login tokens at all. It only tells steam which user to login when starting. Steam uses its own mechanism to store login information. This has the following consequences:
the login token can be used to login without having to re-enter 2FA (whereas for password-based login manager you would need to redo 2FA)
you can mix using steam with or without acolyte
active logins expire if unused for a several weeks
selecting “Change Account” from the steam menu or “Log Out User” in Big Picture mode UI invalidates the login and you will have to reenter your password for the logged out user
CHANGES
0.10.0
Date: 04.08.2024
make window scrollable and resizeable
0.9.0
Date: 25.05.2023
no longer modify/replace config.vdf (see #28)
remove obsolete “logout” button
the files in steam/acolyte/*/config.vdf that were created by previous versions of the program no longer have any purposes
0.8.1
Date: 09.10.2022
new build to trigger PyPI/AUR deployment… It turns out, using schedule: in a GitHub Actions seems to prevent it from being run on push (or at least that seems to be the case after it has been disabled due to inactivity…)
0.8.0
Date: 09.10.2022
add command line option --prefix to better support flatpack steam
try to autodetect whether to use the default, native, or the flatpack version of steam (unreliable)
0.7.9
Date: 31.05.2022
new build to trigger deployment after fixing AUR deployment
0.7.8
Date: 31.05.2022
fix UnicodeDecodeError on systems with a preferred encoding different from UTF-8 (#13)
0.7.7
Date: 27.04.2021
fix exception due to case-sensitive handling of steam config files (#10)
0.7.6
Date: 30.01.2021
add workaround for trayicon not showing in plasma (#8)
AUR package: fix incorrect usage of Version entry in desktop file
AUR package: install desktop icon to /usr/share/pixmaps
AUR package: rename desktop app to “Steam Acolyte”
0.7.5
package: fix unexpanded version in desktop file in AUR package
0.7.4
package: fix bug in AUR package
0.7.3
package: add .desktop entry to AUR package
0.7.2
bugfix: another deadlock when stopping or restarting steam
0.7.1
bugfix: exception when clicking “Exit Steam” menu item
bugfix: possible crash at program exit when closing via menu
0.7.0
bugfix: failing to restart steam, waiting indefinitely
add --logfile option to redirect steam output
add --verbose option to print debug messages
require pyinstaller 3.6
some internal code improvements
0.6.3
maintenance release with no code changes: fixup AUR version format
0.6.2
maintenance release with no code changes: automate AUR package update
0.6.1
built windows exe against newest pyqt
migrate builds to github actions
0.6.0
add menu item for shutting down steam
add menu items for direct user switching without showing the GUI
0.5.0
add CLI option –exe for setting steam executable
0.4.5
fix exception that occurs if loginusers doesn’t exist on startup or is empty
0.4.4
fix tooltips being shown in unreadable colors
fix exception if loginusers doesn’t exist on startup
0.4.3
use python’s builtin importlib.resources if available
0.4.2
fix FileNotFoundError from acolyte.lock
0.4.1
align context menu with tray icon
0.4.0
store current login on program start
show a tray icon to inform users when acolyte is running
fix an issue where the mouse hover effects stop working after hiding and showing the window
trigger buttons when mouse is released, not already when pressed. This better emulates normal button behaviour
highlight button being pressed in a different color
0.3.5
fix deadlock on windows after running steam
fix file descriptor leakage on linux after running steam
0.3.4
fix AttributeError due to missing os.sched_yield on windows (actually merge the fix intended for the previous release this time;)
0.3.3
fix AttributeError due to missing os.sched_yield on windows
0.3.2
fix OSError on startup if a process with the given PID exists but the pipe is not currently writable (linux)
address an unlikely race condition during program startup
call activateWindow only a single time on the first acolyte window, when a second steam/acolyte is started
0.3.1
fix broken usage of single-acolyte-instance-lock
0.3.0
learned to wait in the background for steam to exit when started after steam
add single instance for acolyte to lock to guard against multiple acolyte instances waiting in the background at the same time
more user friendly program exit upon Ctrl+C without showing a traceback
add limited safeguards against exceptions due to missing keys in steam config
remove –theme command line argument
remove steam (original) theme
remove scanning for steam in so far unencountered locations on linux
0.2.0
add remove button that removes user from list
engage in steam’s single instance locking mechanism:
while running, block steam from being started
avoid actions while steam is running
this prevents a common way of invalidating logins
0.1.1
fix exception after closing steam
0.1.0
fix incorrect steam path on ubuntu
avoid storing config if obviously logged out
refactor into package
add version information to windows EXE
add icon to windows EXE
use our own acolyte icon theme
0.0.9
fix broken EXE due to bug in pyinstaller with pyqt 5.12.3
sort user list by user display name
0.0.8
fix button appearing as standalone window for brief moment at startup
fix the autodeployed .exe name to include the version tag
0.0.7
fix backward incompatible syntax with py3.5
automatic releases
provide .exe
0.0.6
support windows
allow installing on python>=3.5
0.0.5
hide “logout” button if action is not available
update user list after steam exits
fix mouseover highlighting not working after steam exits
0.0.4
more modern dark theme
show username along display name
show tooltip with user ID
steal some icons from steam application files
add button for logging out
add button to login with new account
fix exception in except-handler ;)
0.0.3
fix TypeError due to missing positional argument
fix TypeError when started via the entry point
read userinfo from loginusers.vdf
0.0.2
fix not starting due to reassignment of __name__
fix KeyError ‘SteamID’ when chosing user who was not logged in previously
exit application on exception
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file steam-acolyte-0.10.0.tar.gz
.
File metadata
- Download URL: steam-acolyte-0.10.0.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25e117f37deae6bebd2bd60ca87098497a203d9aa1b69460bb99c85b32aa4d29 |
|
MD5 | 1ad7f9578a16e73427202c2ab2018439 |
|
BLAKE2b-256 | e2943c78079f3424842fcd56bbb5113b6bb994c1dd211049a118f4c13d0b5ca9 |
File details
Details for the file steam_acolyte-0.10.0-py3-none-any.whl
.
File metadata
- Download URL: steam_acolyte-0.10.0-py3-none-any.whl
- Upload date:
- Size: 28.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd8230b2397274a8177891dd49089ead6e2738cc04ca2f134e89bb1964afb036 |
|
MD5 | f7270b83e2cbbd15ed4e932632f4371b |
|
BLAKE2b-256 | 3b9308859dc1e4dab74a5a33895e7076aaa31abb1e9537cf98511b1155555b61 |