projects

what's in the workshop

profile
sturq
open source · linux · agents · automation.
android
ccdcam
android camcorder with a hand-tuned ccd shader. analog ghosts on a glass plate.
android
runava
runelite for android with touch controls. built on amethyst / pojavlauncher's caciocavallo awt runtime.
plugin
asf-autoidle
archisteamfarm plugin that auto-idles every game on a bot's profile in rotating batches of 32.
plugin
asf-autoachievement
archisteamfarm plugin that auto-unlocks every available steam achievement on every owned game.
web
date-planner
1:1 clone of the viral tiktok it-guy date-planner page.
config
win-glazewm
tiling-wm setup on windows via glazewm, mirrored from the nix sway setup.
design
sturq-palette
personal color palette: base + lavender primary + soft pastel accents. exported for themes and apps.

contributions

merged upstream patches

user-scanner · pr #338 · merged
fix(gumroad, girlslife): force accept-encoding: identity
both modules advertised accept-encoding: gzip, deflate, br, zstd, but httpx ships only gzip/deflate decoders by default.
ungoogled-chromium · pr #3828 · merged
fix typos in comments and docstrings
fixes a handful of typos found with codespell in utils/ and devutils/ comments, docstrings, and log messages: - checkdownloadsini.py, checkpatchfiles.py: "occured" -> "occurred" -…
claude-code-termux · pr #14 · merged
docs: troubleshooting for "required file not found" + stock leftover
adds a troubleshooting section for the most common breakage, claude: cannot execute: required file not found: what it means (an unpatched stock binary is being resolved), why it ha…
claude-code-termux · pr #13 · merged
bootstrap: ensure verifies the elf interpreter, not just the +x bit
ensure short-circuited on [ -x "$current" ], but the +x bit doesn't mean the binary can exec: a stock or half-patched binary keeps +x while its elf interpreter points at /lib/ld-li…
claude-code-termux · pr #12 · merged
native-symlink: self-heal on update via shared link-native.sh
the ~/.local/bin/claude -> launcher symlink (which satisfies claude's installmethod=native health check) is only created at install.
claude-code-termux · pr #11 · merged
launcher: disable the self-updater via disable_autoupdater
adds a second layer behind autoupdates: false: the launcher exports disableautoupdater=1 before exec'ing claude, next to the existing tmpdir/ldpreload shaping in claude-wrapper.c.