Patches Zen Browser on macOS to disable the dock download progress indicator, preserving the Tahoe "Clear" icon style.
This is mainly for personal use: Publicly shared just in case anyone else finds the issue nagging enough to want to fix it, but use at your own risk.
On macOS Tahoe (26), System Settings lets you choose a "Clear" (monochrome/transparent) icon style. Zen's dock icon renders correctly in Clear style until you download a file. Firefox's nsMacDockSupport replaces the OS-managed dock tile with a custom NSView containing a static bitmap and a progress bar. macOS can't apply Clear styling to this bitmap, so the icon reverts to full colour and stays that way until you restart the Dock.
There is no about:config preference to disable this yet.
This stems from stock Firefox (tracked as Bug 1997246 - this is about badges added to the icon, which I assume stems from a similar issue), not specific to Zen.
The script patches omni.ja (the main resource archive in Zen's app bundle) to skip the macOS dock progress registration. It does a same-size byte replacement directly in the archive and updates the ZIP CRC checksums. Downloads still work normally; only the dock progress bar is suppressed.
Requires Python 3.6+ (ships with macOS).
Your local copy of Zen needs to have been through macOS's Gatekeeper first. If you patch a fresh download before opening it, macOS will flag it as "damaged" and refuse to launch it.
Quit Zen, then paste this into Terminal:
curl -sL https://raw.githubusercontent.com/baton-noir/zen-dock-patch/main/patch.py | python3 -Or if you prefer to clone first:
git clone https://github.com/baton-noir/zen-dock-patch.git
cd zen-dock-patch
python3 patch.pyOther commands (run from inside the cloned repo):
python3 patch.py status # check current patch status
python3 patch.py restore # restore original omni.ja from backup
python3 patch.py --dry-run # preview without making changes
python3 patch.py --verbose # show technical detailsOn first run, macOS will ask you to allow Terminal (or whatever terminal you used) to modify apps, if you haven't yet. Click the notification and enable it in System Settings > Privacy & Security, then re-run the command.
The script will:
- Check that Zen has been opened before (Gatekeeper-approved) and is not running
- Back up the original
omni.ja(first run only) - Apply the patch and verify it was written correctly
- Re-sign the app bundle so macOS doesn't flag it as damaged
- Clear the startup cache automatically
You need to re-run this after every Zen update, since updates replace omni.ja.
Backups are stored in ~/Library/Application Support/zen-dock-patch/ with the Zen version and a hash prefix in the filename (e.g. omni-1.19.3b-4887abe5.ja). Use patch.py status to list them and patch.py restore to roll back.