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. |
||
|---|---|---|
| .vscode | ||
| bin | ||
| glade | ||
| src | ||
| steam | ||
| LICENSE | ||
| make.sh | ||
| README.MD | ||
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 10will 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