Skip to content

Releases: HeyIamUsingArchBtw/t7patch-manager-linux

v0.5.3 — Fix GameMode auto-install trigger; window scrolls when shrunk

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 20:54

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

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 20:40

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_HOME and XDG_CONFIG_HOME are honoured. If you moved
    ~/.local/share or ~/.config via 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.vdf entries (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's steam.desktop process
    name in addition to steam / steamwebhelper.
  • Ask Steam to close cleanly now 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-opengio open → native steamflatpak runsnap 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.systemPackages recipe.
  • 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

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 20:30

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 via ID_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

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 20:19

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
    via LaunchOptions. Fixes stutter/1%-low on CPUs with aggressive
    power-saving.
  • Performance monitoring (MangoHud) switch — wraps BO3 in
    mangohud for the FPS/CPU/GPU overlay.
  • New launch_wrappers.py parser/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 on PATH.
  • 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.sh

Or, if you already have the app installed:

cd t7patch-manager && git pull && ./install.sh

Full changelog: v0.4.1...v0.5.0

v0.4.1 — Non-Steam BO3 support

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 19:29

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.vdf under userdata/*, 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.sh

v0.4.0 — Auto Steam launch options

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 18:53

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% into localconfig.vdf for 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 external vdf dep).
  • New steam_config.py: profile discovery, launch-option get/set, Steam running-detection (pgrep, pidof, /proc fallback), steam -shutdown request.

Upgrade

cd /path/to/t7patch-manager
git pull
./install.sh

v0.3.2 — bulletproof auto-install of GTK4/PyGObject

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 18:43

./install.sh now takes care of every dependency automatically on all 7 supported distro families.

  • Installer verifies import gi; Gtk; Adw actually 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-packages to pipx install, which pipx silently rejects. The pipx venv now has include-system-site-packages = true set explicitly in pyvenv.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 --yes flag for scripted / non-interactive installs.
  • README updated (EN + DE) to state clearly that ./install.sh handles all dependencies for you.

v0.3.1 — subtler backdrop, readable Steam hint

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 18:26

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

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 18:14

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

Choose a tag to compare

@HeyIamUsingArchBtw HeyIamUsingArchBtw released this 14 Jul 17:57

Fixes

  • Install and update failed with HTTP 415 Unsupported Media Type on api.github.com. Fixed by sending the correct Accept: application/vnd.github+json header on API calls (asset downloads still use application/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