Releases: HeyIamUsingArchBtw/t7patch-manager-linux
Release list
v0.5.3 — Fix GameMode auto-install trigger; window scrolls when shrunk
Two user-reported bugs from v0.5.2.
GameMode / MangoHud switch was greyed out when not installed
Regression from the v0.5.0 UI that never got updated when v0.5.1 added
the auto-installer. If the wrapper binary wasn't on $PATH, the whole
switch row was disabled — so the user could never flip the switch on
to trigger the install flow.
Fix: row stays interactive. Subtitle now reads 'gamemoderun not
installed — turn on to install'. Flipping it on kicks off the same
polkit-driven auto-install we added in v0.5.1.
Menu items unreachable when window shrunk
The main window held its content in a plain `Gtk.Box` — no
scrolled area. Making the window smaller vertically simply clipped
the bottom rows and any header-menu items that opened below the fold.
Fix: main content lives in a `Gtk.ScrolledWindow` now. Shrink
away — a scrollbar appears when needed. Minimum window size is 360×280
(was around 620×660 implicitly). Wide windows still look the same
because the natural content width is preserved.
Install / update
```bash
cd t7patch-manager && git pull && ./install.sh
```
v0.5.2 — Portability audit
Full portability audit of every code path that touches disk or the
environment. Nothing changes for the happy path on Arch / CachyOS /
Debian / Ubuntu / Fedora / openSUSE — but a lot of edge cases that used
to silently misbehave now work.
Steam and BO3 discovery
XDG_DATA_HOMEandXDG_CONFIG_HOMEare honoured. If you moved
~/.local/shareor~/.configvia the freedesktop env vars, Steam
detection and the app's own config/log dir follow.- Single source of truth for Steam roots. Native, Flatpak and Snap
candidates all live in one place — the app can no longer detect Steam
in one part and not another. - Stale
libraryfolders.vdfentries (drives that were unplugged /
reformatted / renamed) are skipped instead of confusing the BO3 search. - Alternate directory names get picked up:
BlackOps3,BO3,
Black Ops 3,Call of Duty - Black Ops III— case-insensitive.
Helps users whose install came from an NTFS/exFAT copy.
Steam client — Snap-aware now
is_steam_running()matches the Snap client'ssteam.desktopprocess
name in addition tosteam/steamwebhelper.Ask Steam to close cleanlynow tries native, then Flatpak, then Snap
— Snap-Steam users previously hit a silent no-op here.
Launcher
Explicit fallback chain when firing steam://rungameid/311210:
xdg-open → gio open → native steam → flatpak run → snap run.
Minimal / atomic setups where only one of those is installed now launch
BO3 correctly.
Auto-install — more distros, cleaner failures
New auto-install families:
| Family | Command backbone |
|---|---|
| Alpine / postmarketOS | apk add |
| Void Linux | xbps-install -Sy |
| Gentoo / Funtoo | emerge --noreplace |
| Solus | eopkg install |
Detected but manual-only (because the correct install path is
editing config + reboot, which we won't do behind your back):
- NixOS — shows the
programs.gamemode.enable = true;/
environment.systemPackagesrecipe. - GNU Guix — shows
guix install <pkg>. - Immutable Fedora (Silverblue / Kinoite / Bazzite / Bluefin /
Aurora) — recommends the Flatpak MangoHud layer or
rpm-ostree install gamemode && systemctl reboot.
More derivative distros in the detection table: Garuda, Kali, Raspbian,
Rocky, AlmaLinux.
Install / update
```bash
cd t7patch-manager && git pull && ./install.sh
```
Full changelog: v0.5.1...v0.5.2
v0.5.1 — Auto-install GameMode/MangoHud
Flipping the Performance mode or Performance monitoring switch
to on when the tool isn't installed used to just say "not installed"
and roll the switch back. That was a dead end. It now offers to install
the package for you.
What's new
- One-click install for
gamemode/mangohud. Detects your distro
(Arch/CachyOS/Manjaro, Debian/Ubuntu/Mint, Fedora/Nobara/Bazzite,
openSUSE) via/etc/os-release— including derivatives viaID_LIKE. - Live progress dialog with a pulsing progress bar, a monospaced
log view that auto-scrolls, and a Cancel button (which really does
kill the child process). On success the button becomes Close and the
wrapper is enabled automatically. - Polkit escalation via
pkexec— no terminal needed.pkexec
exit codes 126 (dialog dismissed) and 127 (auth failed) are turned
into human-readable errors instead of a raw exit-code number. - Prefetch step where the distro needs it:
apt-get update,
dnf makecache --refresh,zypper refresh— pacman needs none. - Fallback for unsupported distros or systems without polkit: shows
the per-distro command so the user can install it by hand.
Install / update
```bash
cd t7patch-manager && git pull && ./install.sh
```
Full changelog: v0.5.0...v0.5.1
v0.5.0 — GameMode & MangoHud toggles
Two new switches in the main window let you turn Feral GameMode
(gamemoderun) and MangoHud on for BO3 with one click each. The app
rewrites Steam's launch string for you in the correct order — GameMode
outside, MangoHud inside — and reuses the existing close-Steam-first UX
so writes never race Steam's exit-time overwrite.
What's new
- Performance mode (GameMode) switch — wraps BO3 in
gamemoderun
viaLaunchOptions. Fixes stutter/1%-low on CPUs with aggressive
power-saving. - Performance monitoring (MangoHud) switch — wraps BO3 in
mangohudfor the FPS/CPU/GPU overlay. - New
launch_wrappers.pyparser/formatter: env-vars stay leading,
wrappers land in the canonical order before%command%, quotes are
preserved round-trip-safe (WINEDLLOVERRIDES=\"dsound=n,b\"stays quoted). - Set automatically now preserves already-enabled wrappers instead
of silently stripping them. - Install-hint dialog with per-distro command (pacman / dnf / apt /
zypper / flatpak) when a wrapper isn't onPATH. - Switches are automatically disabled if the tool isn't installed OR if
a custom launch string is set in Preferences. - README EN + DE: new Performance mode & Performance monitoring
section under Usage.
Install / update
git clone https://github.com/HeyIamUsingArchBtw/t7patch-manager
cd t7patch-manager
./install.shOr, if you already have the app installed:
cd t7patch-manager && git pull && ./install.shFull changelog: v0.4.1...v0.5.0
v0.4.1 — Non-Steam BO3 support
What's new
BO3 doesn't have to come from Steam anymore. The app now handles Lutris/Heroic/Bottles installs, manual copies, and Non-Steam-Game Steam shortcuts.
Install auto-detection
The Actions section on the main screen now finds BO3 automatically in:
- Steam libraries (as before)
~/Games/Call of Duty Black Ops III/~/Games/Black Ops 3/~/Games/BO3- Lutris default prefixes (
~/Games/lutris/black-ops-3/…) - Heroic install dirs (
~/Games/Heroic/…) - Bottles prefixes (
~/.local/share/bottles/bottles/bo3/…)
Every candidate is sanity-checked for BlackOps3.exe / steam_appid.txt / main, so a stale empty folder can't be mistaken for a real install.
Non-Steam-Game shortcuts
If you added BO3 to Steam via Add a Non-Steam Game, Steam assigns a per-user shortcut AppID (something like 2879137456) which you'd normally have to look up in shortcuts.vdf by hand.
- Open Preferences → new Steam launch options group
- Click Detect — the app scans every
shortcuts.vdfunderuserdata/*, spots any entry whose name or exe looks like BO3, and fills the field in. Multiple matches → a picker dialog. - The main-window row now shows
Steam launch options (Non-Steam AppID 2879137456)whenever an override is in effect, so you always know which target you're writing to.
Escape hatches
Two override fields in Preferences:
- Launch string — replace
WINEDLLOVERRIDES="dsound=n,b" %command%with your own (e.g.gamemoderun mangohud %command%) - Steam AppID — target any AppID, defaults to 311210 (retail BO3)
Non-digit input for the AppID field is rejected silently so garbage never gets written into Steam's config.
Fully-DRM-free copies (no Steam involvement)
The launch-options auto-set has no target here — you set WINEDLLOVERRIDES in your Lutris/Heroic/Bottles launcher wrapper. The rest of the app (install/toggle patch, edit t7patch.conf) still works.
Upgrade
cd /path/to/t7patch-manager
git pull
./install.shv0.4.0 — Auto Steam launch options
What's new
No more copy-pasting into Steam. The app now writes the required Proton launch string into Steam's config for you.
- New Steam launch options row on the main screen with live status: OK · already set, Different value set (with the current value), or Not set.
- One click on Set automatically writes
WINEDLLOVERRIDES="dsound=n,b" %command%intolocalconfig.vdffor Black Ops III (AppID 311210), with an atomic replace and a timestamped.bak-…backup. - If Steam is still running, the app offers to close it cleanly first — Steam serialises this file from memory on exit, so writes while Steam is up get clobbered. The dialog is opt-in with a Cancel button; the app never kills Steam without your consent.
- Detects Steam roots for native, Flatpak (
com.valvesoftware.Steam) and Snap installs and picks the most recently used profile automatically. - Advanced users get a Steam launch options override field in Preferences.
Under the hood
- New
steam_vdf.py: a small, escape-aware Valve KeyValues parser/serialiser (no externalvdfdep). - New
steam_config.py: profile discovery, launch-option get/set, Steam running-detection (pgrep,pidof,/procfallback),steam -shutdownrequest.
Upgrade
cd /path/to/t7patch-manager
git pull
./install.shv0.3.2 — bulletproof auto-install of GTK4/PyGObject
./install.sh now takes care of every dependency automatically on all 7 supported distro families.
- Installer verifies
import gi; Gtk; Adwactually works after installing the system packages. If it doesn't (usually a distro renamed a package), a second install pass is triggered before giving up. - Fixed a latent bug: previous versions passed
--system-site-packagestopipx install, which pipx silently rejects. The pipx venv now hasinclude-system-site-packages = trueset explicitly inpyvenv.cfg, and we verify the resulting venv can see PyGObject before continuing. - On failure, the installer prints the exact one-line command for pacman / apt / dnf / zypper / xbps / apk / eopkg so the user can copy-paste the fix.
- New
--yesflag for scripted / non-interactive installs. - README updated (EN + DE) to state clearly that
./install.shhandles all dependencies for you.
v0.3.1 — subtler backdrop, readable Steam hint
Follow-up to v0.3.0 based on feedback:
- Background is much calmer. Only three soft ambient glow streaks with a heavy vignette instead of ten sharp fire columns.
- Steam launch-options hint is legible again. It now sits in a dedicated dark panel with an orange left-border, so the mono-spaced
WINEDLLOVERRIDES="dsound=n,b" %command%line stands out clearly.
v0.3.0 — BO3-style menu look
New in v0.3.0 — visual redesign to look like the BO3 main menu.
- Hand-drawn SVG background (no game assets used): near-black stage with vertical fire streaks + embers + soft vignette.
- BO3 colour palette: near-black surfaces, warm orange accent (#FF6B1A), off-white text.
- Uppercase, letter-spaced condensed typography for titles and buttons (Barlow Condensed / Oswald / Roboto Condensed, with sans-serif fallback).
- Rectangular corners, thin orange left-accent border on rows/cards.
- Big glowing ▶ LAUNCH BO3 action button, centred.
- Rectangular BO3-style toggle switch instead of the round Adwaita one.
- Reworked header: 'T7 PATCH / MANAGER' stacked title.
- Forced dark libadwaita variant regardless of your desktop theme.
Everything from v0.2.2 (installer HTTP 415 fix, folder opener with terminal fallback, uninstall reflection, custom About dialog, English-forced dialogs) still applies.
v0.2.2 — GitHub API fix
Fixes
- Install and update failed with
HTTP 415 Unsupported Media Typeonapi.github.com. Fixed by sending the correctAccept: application/vnd.github+jsonheader on API calls (asset downloads still useapplication/octet-stream). - Preferences → Advanced no longer exposes the GitHub repo (owner/name) field — it wasn't useful and cluttered the dialog. The Advanced group now just holds the network timeout.
Upgrade
cd t7patch-manager
git pull
./install.sh