{"id":15721993,"url":"https://github.com/jordanviknar/simplesteamtinker","last_synced_at":"2025-04-15T17:00:24.737Z","repository":{"id":209025987,"uuid":"723028403","full_name":"JordanViknar/SimpleSteamTinker","owner":"JordanViknar","description":"A work-in-progress simple, fast, and modern Adwaita alternative to SteamTinkerLaunch.","archived":false,"fork":false,"pushed_at":"2024-09-07T08:27:15.000Z","size":1616,"stargazers_count":25,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T17:00:21.630Z","etag":null,"topics":["gamemode","gamescope","gtk","gtk4","libadwaita","linux","lua","proton","steam","steamtinkerlaunch","zink"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JordanViknar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-24T14:04:55.000Z","updated_at":"2025-03-01T10:49:46.000Z","dependencies_parsed_at":"2023-12-24T11:28:57.968Z","dependency_job_id":"128f5546-765f-4261-8cc7-85865a51f819","html_url":"https://github.com/JordanViknar/SimpleSteamTinker","commit_stats":{"total_commits":42,"total_committers":2,"mean_commits":21.0,"dds":"0.023809523809523836","last_synced_commit":"f16d9cd2e24b0b4a633a0bb58b99a8d9ca6889a9"},"previous_names":["jordanviknar/simplesteamtinker"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanViknar%2FSimpleSteamTinker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanViknar%2FSimpleSteamTinker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanViknar%2FSimpleSteamTinker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JordanViknar%2FSimpleSteamTinker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JordanViknar","download_url":"https://codeload.github.com/JordanViknar/SimpleSteamTinker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249116232,"owners_count":21215142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gamemode","gamescope","gtk","gtk4","libadwaita","linux","lua","proton","steam","steamtinkerlaunch","zink"],"created_at":"2024-10-03T22:02:29.476Z","updated_at":"2025-04-15T17:00:24.701Z","avatar_url":"https://github.com/JordanViknar.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]\n\u003e This project may be deprecated in the future, as I have been recently working on a **massive** rewrite, avoiding LGI and focusing more on portability and stability this time around.\n___\n\n\u003e [!IMPORTANT]\n\u003e SimpleSteamTinker is still in ***HEAVY*** development and very unfinished.\n\u003e Expect an incomplete interface and lots of missing/unstable features.\n\u003e\n\u003e If SteamTinkerLaunch is fast enough for you and fits your needs, you should not use this tool right now.\n\u003e\n\u003e With that being said, I'd still very much appreciate people testing SimpleSteamTinker and reporting [issues](https://github.com/JordanViknar/SimpleSteamTinker/issues) or contributing.\n\n\u003cdiv align=\"center\"\u003e\n\t\u003cimg src=\"./assets/icons/scalable.svg\" width=172\u003e\n\t\u003ch1\u003eSimpleSteamTinker\u003c/h1\u003e\n\t\u003cp align=\"center\"\u003eA work-in-progress simple, fast, and modern Adwaita alternative to SteamTinkerLaunch.\u003c/p\u003e\n\t\u003c!-- Badges --\u003e\n\t\u003cimg src=\"https://img.shields.io/badge/lua-%232C2D72.svg?style=for-the-badge\u0026logo=lua\u0026logoColor=white\"\u003e\n\t\u003c/br\u003e\n\t\u003cimg src=\"https://img.shields.io/github/license/JordanViknar/SimpleSteamTinker?color=orange\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/commit-activity/m/JordanViknar/SimpleSteamTinker?color=orange\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/repo-size/JordanViknar/SimpleSteamTinker\"\u003e\n\t\u003c/br\u003e\n\t\u003c!-- Screenshot --\u003e\n\t\u003cimg src=\"./assets/screenshots/ViewLight.png\" width=768\u003e\n\u003c/div\u003e\n\n## Description\n\n### Situation\n\nI like [SteamTinkerLaunch](https://github.com/sonic2kk/steamtinkerlaunch). It is for me one of the biggest tools to have ever been created for Linux gaming.\n\nHowever, it presents many flaws in my eyes : it is slow, impractical to use, and not user-friendly.\n\nI want Linux Gaming to be available to everyone, including any non-technical users. In my opinion, SteamTinkerLaunch's interface is not friendly to newcomers.\n\nFinally, my curiosity once led me to look inside its source code, only to be met with a single, extremely long (26k+ lines) Bash script. At that point, I decided there should be an alternative to it.\n\n*And thus came SimpleSteamTinker...*\n\n### Goal\n\n*TL;DR : Simple, Fast, Modern \u0026 Friendly*\n\nSimpleSteamTinker aims to be only an alternative solution to SteamTinkerLaunch, not to replace it : the more complex features it provides that aren't used by the average user won't be implemented.\n\nUsing Lua, a fast and simple language, and Adwaita, a modern user-friendly interface system, the goal of this project is to have a clean and easy but *powerful* way of launching Steam games with custom options and tools.\n\nIt takes inspiration from [Bottles](https://github.com/bottlesdevs/Bottles) and Adwaita applications in general.\n\nAdditionally, it is considered SimpleSteamTinker should work *with* Steam rather than hack/replace its features. Anything that can be easily done through Steam will not be reimplemented (Proton version management for example. If you want to use GE-Proton, [ProtonPlus](https://github.com/Vysp3r/ProtonPlus) and [ProtonUp-Qt](https://github.com/DavidoTek/ProtonUp-Qt) are recommended).\n\nAnd finally, as a side goal : prove that Lua can *also* be used for developing modern applications, just like for example Python (which I often see in Adwaita apps).\n\n## Installation\n\n### Arch Linux-based distributions\n\nSimpleSteamTinker can be installed from Arch Linux, Manjaro, and variants through the provided [PKGBUILD](./install/archlinux/PKGBUILD).\n\n**Always** download the latest version of the PKGBUILD, then use **makepkg** in its directory.\n\nIt will eventually be made available on the AUR once the program is complete enough.\n\nTo enable a game in SimpleSteamTinker with this installation method, use this text as launch options in Steam :\n```bash\nsst %command%\n```\n\n### Packaging for other distributions\n\nHere are informations which might be useful to you :\n\nSimpleSteamTinker is meant to be installed in `/usr/share/SimpleSteamTinker` (except `sst` which goes into `/usr/bin`).\nThe system desktop file goes in `/usr/share/applications` and the icons go in `/usr/share/icons` like many applications.\n\nMost of the file structure installation steps can be achieved with the Makefile.\nIt is recommended to use it if possible in your packaging system.\n\nIt depends on :\n- Lua 5.4\n- [LGI](https://github.com/lgi-devs/lgi) (development version **specifically**) + [GTK4](https://www.gtk.org/) + [libadwaita](https://gnome.pages.gitlab.gnome.org/libadwaita/)\n- Steam installation, with a user configured and games installed.\n- [LuaFileSystem](https://github.com/lunarmodules/luafilesystem)\n- [LuaSocket](https://github.com/lunarmodules/luasocket) + [LuaSec](https://github.com/lunarmodules/luasec)\n- [dkjson](https://dkolf.de/src/dkjson-lua.fsl/home)\n- [xclip](https://github.com/astrand/xclip) *(Might be replaced/made optional in the future.)*\n- [libnotify](https://gitlab.gnome.org/GNOME/libnotify)\n\nAnd optionally (if they're missing, their related features will simply be disabled) :\n\n[GameMode](https://github.com/FeralInteractive/gamemode), [MangoHud](https://github.com/flightlessmango/MangoHud), [Mesa](https://www.mesa3d.org/) *(for Zink support)*, [switcheroo-control](https://gitlab.freedesktop.org/hadess/switcheroo-control) and [Gamescope](https://github.com/ValveSoftware/gamescope).\n\n## Development\n\nSimply install the project's dependencies described earlier and clone it.\n\nTo test the launch of Steam games, insert in their launch options :\n```bash\n/PATH/TO/CLONED/REPO/sst %command%\n```\nFor example, in my case `/PATH/TO/CLONED/REPO/sst` is `/home/jordan/Programmation/SimpleSteamTinker/sst`.\n\nAdditionally, if you want to perform UI-related changes, you'll need [Blueprint](https://gitlab.gnome.org/jwestman/blueprint-compiler).\nIf, in the future, LGI becomes stable enough with GTK4 to use it directly to generate the UI, Blueprint might be dropped.\n\n*Note : A desktop file won't be provided with this method, and icons won't be installed.*\n\n## Comparison\n\n### Development\n\n| Development | SteamTinkerLaunch | SimpleSteamTinker |\n| --- | --- | --- |\n| Language | Bash | Lua |\n| Code | A single file with 26k lines | Organised in modules and commented |\n| UI | Directly generated by the code | (Mostly) done in separate GTK Blueprint files |\n| Interface system | yad + GTK3 | LGI + GTK4 + libadwaita |\n| License | GPL-3.0 | MPL-2.0 |\n\n### Interface\n\n| Features (interface) | SteamTinkerLaunch | SimpleSteamTinker |\n| --- | --- | --- |\n| Launch speed (on primary laptop) | ❌ (25 seconds) | ✅ (1 second) |\n| Game list | ❌ | ✅ |\n| Game status | ❌ | ✅ |\n| ProtonDB integration | ✅ | ✅ |\n| Launch Button | ✅ | ✅ |\n| Steam AppID | ✅ | ✅ |\n| Notifications | ✅ | ✅ |\n| Pre-game launch window | ✅ | ❌ *(Not implemented to speed up game startup and not get in the user's way. Might change in the future.)* |\n| Categories | ✅ | ❌ |\n| Custom default game config | ✅ | ❌ |\n| Game location | ~ *(impractical)* | ✅ |\n| Compatdata location | ❌ | ✅ |\n| Help pages *(ProtonDB, PCGamingWiki, etc.)* | ~ *(impractical)* | ✅ |\n\n### Tools, settings, etc.\n\n*(Note : Native Linux features/tools/settings are prioritized over alternatives designed for Windows.)*\n\n| Features (tools, settings, etc.) | SteamTinkerLaunch | SimpleSteamTinker |\n| --- | --- | --- |\n| Non-Steam game support | ✅ | ❌ *([Bottles](https://github.com/bottlesdevs/Bottles) recommended)* |\n| ~~Proton version management~~ | ✅ | ❌ *([ProtonPlus](https://github.com/Vysp3r/ProtonPlus) recommended)* |\n| dGPU management | ✅ | ✅ |\n| GameMode | ✅ | ✅ |\n| Custom launch system | ✅ | 🚧 *(Planned)* |\n| Winetricks | ✅ | ❌ *(Planned ?)* |\n| Protontricks | ❌ | ❌ *(Planned ?)* |\n| Proton settings | ✅ | ✅ |\n| DXVK settings | ✅ | 🚧 *(Planned)* |\n| VKD3D settings | ✅ | 🚧 *(Planned)* |\n| MangoHud | ✅ | ✅ |\n| Gamescope | ✅ | ✅ |\n| Shader support (ReShade/vkBasalt) | ✅ | 🚧 *(Planned)* |\n| SDL Wayland video driver | ✅ | ✅ |\n| Zink | ✅ | ✅ |\n| PulseAudio latency | ✅ | 🚧 *(Planned)* |\n| Vortex | ✅ | ❌ |\n| Mod Organizer 2 | ✅ | ❌ |\n| HedgeModManager | ✅ | ❌ |\n| geo-11 3D Driver | ✅ | ❌ |\n| SpecialK | ✅ | ❌ |\n| FlawlessWidescreen | ✅ | ❌ |\n| Stereo3D | ✅ | ❌ |\n| RADV Perftest Options | ✅ | ❌ *(Cannot test properly due to lack of an AMD GPU)* |\n| Steam Linux Runtime toggle | ✅ | ❌ |\n| steamwebhelper toggle | ✅ | ❌ |\n| obs-gamecapture | ✅ | ✅ |\n| ~~Nyrna~~ | ✅ | ❌ *(Waiting for Wayland support...)* |\n| ~~ReplaySorcery~~ | ✅ | ❌ *(Unmaintaned)* |\n| ~~Boxtron~~ | ✅ | ❌ *([ProtonPlus](https://github.com/Vysp3r/ProtonPlus) recommended)* |\n| ~~Roberta~~ | ✅ | ❌ *([ProtonPlus](https://github.com/Vysp3r/ProtonPlus) recommended)* |\n| ~~Luxtorpeda~~ | ✅ | ❌ *([ProtonPlus](https://github.com/Vysp3r/ProtonPlus) recommended)* |\n| Network monitoring and control | ✅ | 🚧 *(Planned)* |\n| Discord Rich Presence | ✅ | 🚧 *(Planned)* |\n\n## Bug Reports / Contributions / Suggestions\nYou can report bugs or suggest features by making an issue, or you can contribute to this program directly by forking it and then sending a pull request.\n\nAny help will be very much appreciated. Thank you.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordanviknar%2Fsimplesteamtinker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjordanviknar%2Fsimplesteamtinker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjordanviknar%2Fsimplesteamtinker/lists"}