Steam Achievement Manager For Linux. Rewritten in C++.
Go to file
William Pierce b4ca9a4482 Fix asynchronous app icon loading
In the downloader, silencing async's future return is a bad idea
because the future is immediately destructed, and the main thread
waits on it, making the program single-threaded.
Instead of async, just use a much simpler C++ detached thread to
go do the work for us. Trying to use gdk_threads_add_idle_full to get
threading functionality didn't really work for offloading computation
from the main thread, but this C++ threading approach works very
well.

Implemenent a semaphore because C++ doesn't have a native
one and use it to limit simultaneous downloads to 10.
Otherwise when tons of downloads launch, network resolution
can start failing.
Also end users with tons of games could potentially launch
thousands of threads, which isn't a great idea.

Use a mutex on updating the main GUI because modifying the GUI
concurrently is dangerous (and pixbuf would start spuriously
failing)

Now in practice, the GUI is very usable during icon loading time.
2019-10-17 00:48:16 -07:00
.vscode Implement Socket Server Game Logic Backend 2019-07-21 01:18:14 -07:00
bin Respect XDG and dynamically find steamclient.so 2019-09-24 23:23:31 -07:00
glade Not much, todo: more on loading times 2019-08-18 21:39:30 +02:00
src Fix asynchronous app icon loading 2019-10-17 00:48:16 -07:00
steam Updated SDK, removed junk, reversed back to AppIsSubscrcibed method 2019-08-03 18:31:25 +02:00
LICENSE Initial commit 2018-02-16 22:13:49 +01:00
make.sh reorganized classes 2019-07-17 16:08:17 +02:00
README.MD Merge pull request #10 from telans/readme-add-arch 2019-08-01 11:15:47 +02:00

SAM Rewritten for Linux

Introduction

This is meant to be an equivalent to the popular program SAM Achievement Manager for Windows. It's in a very early stage of development, and all contributions are welcome.

As of right now, all features are not implemented yet, but it can lock and unlock achievements.

Expect a lot of bugs and lacking features too.

Contributions are welcome!

Thanks :)

Command line options

While SamRewritten offers a nice GUI, you linux geeks love to use command line options. It would be exciting to expand the command line options, but I do not have much more time to invest in this project, and a rewriting would not hurt. Anyway you can do:

  • -a <appid>
    • ./bin/launch.sh -a 10 will idle Counter Strike

Building

Just run ./make.sh. Makefiles? Never heard of it. Packaging? What's that?

Packages needed vary on distros, but make sure to install at least Steam, yajl, GTK 3, and GLib.

On Ubuntu (and variants): sudo apt install libgtk-3-dev libcurl4-gnutls-dev libyajl-dev

On Arch: sudo pacman -S gtk3 glibc gnutls yajl

To run it, launch ./bin/launch.sh

Once again, all contributions are VERY welcome, even though this code is already aging and very badly written.

Footnotes

This software comes with no warranty. Use it at your own risk. We believe you should not get any ban using it, but we do not take any responsability over your user experience