steam-backlog-enforcer/steam_backlog_enforcer
Krzysztof kuhy Rudnicki de4134fcf4 fix: resolve all pre-commit hook failures after file splits
- Remove all # type: ignore and # noqa comments (banned by no-noqa hook)
- Add mypy --disable-error-code flags to pre-commit config for error
  codes previously suppressed by inline comments
- Fix broken imports after ruff auto-removed re-exports:
  steam_backlog_enforcer, stockfish_analysis, word_frequency, lichess_bot
- Re-add re-exports with __all__ in translator.py, screen_lock.py
- Split _process_epc_fc.py (524 lines) into _process_epc_fc.py + _process_fc.py
- Fix test failures: keyboard_coop, stockfish_analysis, tag_divider
- Add per-file-ignores for PLC0415 (deferred imports) in 7 files
- Mark shebang scripts as executable
- Add __init__.py for generate_images and repo_explorer packages
- Fix codespell, eslint, ruff-format, prettier issues
- Update copilot-instructions.md with --no-verify ban
2026-03-18 22:20:05 +01:00
..
__init__.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
_enforce_loop.py refactor: enforce 500-line limit on all Python source files 2026-03-17 22:47:42 +01:00
config.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
enforcer.py feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
game_install.py fix(steam_backlog_enforcer): reload state in enforce loop, use steam:// protocol for installs 2026-03-17 21:48:33 +01:00
hltb.py refactor: remove noqa comments from miscellaneous scripts 2026-03-13 20:48:40 +01:00
install.sh feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
library_hider.py refactor: remove noqa comments from miscellaneous scripts 2026-03-13 20:48:40 +01:00
main.py fix: resolve all pre-commit hook failures after file splits 2026-03-18 22:20:05 +01:00
protondb.py feat: puzzle solver algorithm 2026-03-16 19:49:52 +01:00
README.md feat: steam 100 percent extension 2026-03-02 20:29:32 +01:00
run.sh feat: robotgo improvements in phone focus bluetooth and printer scripts 2026-03-09 18:34:15 +01:00
scanning.py refactor: enforce 500-line limit on all Python source files 2026-03-17 22:47:42 +01:00
steam_api.py feat: improvements in hosts bluetooth focus mode and backglog scripts 2026-03-11 20:47:03 +01:00
steam-backlog-enforcer.service WIP: Enforce 500-line limit - split batch 1 2026-03-16 22:46:48 +01:00
store_blocker.py feat: robotgo improvements in phone focus bluetooth and printer scripts 2026-03-09 18:34:15 +01:00

Steam Backlog Enforcer

Forces you to 100% complete one Steam game at a time before moving on.

Features

  • Achievement tracking: Picks the next game by shortest HLTB completionist time
  • Store blocking: Blocks store.steampowered.com via /etc/hosts
  • Game uninstalling: Removes all installed games except the assigned one
  • Process enforcement: Kills unauthorized game processes
  • Tampering detection: Detects achievement unlocks on non-assigned games
  • HLTB integration: Estimates completion time with persistent cache

Setup

python -m python_pkg.steam_backlog_enforcer.main setup

Commands

Command Description
scan Scan library, fetch HLTB data, assign game
check Check if assigned game is complete
status Show current assignment and blocking
list List incomplete games from snapshot
skip Skip the currently assigned game
enforce Run enforcer (block, uninstall, kill)
unblock Remove store blocking
reset Reset all state
installed List currently installed Steam games
uninstall Interactively uninstall non-assigned games
setup First-time configuration

Enforce mode

sudo python -m python_pkg.steam_backlog_enforcer.main enforce

This will:

  1. Block Steam store in /etc/hosts
  2. Uninstall all games except the assigned one
  3. Continuously kill any unauthorized game processes

Game Uninstall

Directly removes appmanifest files and game directories from ~/.local/share/Steam/steamapps/. Preserves Proton versions and Steam Linux Runtime.

python -m python_pkg.steam_backlog_enforcer.main uninstall