Skip to main content
72 of 75
add note about tampermonkey instant mode and chrome-extensions tag
Ilmari Karonen
  • 1.4k
  • 10
  • 18

The Stack Overflow Unofficial Patch (SOUP)

The Stack Overflow Unofficial Patch (SOUP) is a project to collect various minor client-side bug fixes, work-arounds and usability improvements for Stack Overflow and other Q&A sites on the Stack Exchange Network into a single user script.

The intent of SOUP is not to make any substantial or controversial changes to the Stack Exchange user interface, but to fix minor problems and omissions that the SE developers have overlooked or haven't got around to fixing yet. By combining these minor patches into a single user script, they become easier to install and maintain.

Installing

SOUP can be installed either as a stand-alone browser extension or via a user script manager such as Greasemonkey, Tampermonkey or Violentmonkey.

SOUP has been mainly developed and tested on Firefox and Chrome. It may also run on other browsers with user script support (via Tampermonkey or other compatible extensions), but has not been fully tested on them. Any reports of cross-browser issues are welcome.

Installing as a browser extension

Users of Chrome or Firefox (including Firefox Mobile) can install SOUP as a browser extension:

(An Opera extension may be available at a later date. In the mean time, Opera users may use the Chrome extension via Download Chrome Extension, or just use the user script version with e.g. Tampermonkey for Opera.)

Note that updates to the extension packages available at Firefox Add-ons and Chrome Web Store may take a few days to appear, even after a new stable user script version is released, due to review and other delays.

Installing as a user script

To install SOUP as a user script, you first need to install a user script manager such as Greasemonkey (for Firefox), Tampermonkey or Violentmonkey. (Other Greasemonkey compatible user script managers should also work.) After installing the extension, clicking the "download / install" button below should bring up a dialog asking you if you want to install SOUP. Answer "yes".

Download / Install SOUP

View source / GitHub repo / Stack Apps post

NOTE: SOUP is compatible with Firefox 57 / Greasemonkey 4. However, due to a known bug, installing SOUP (or any other user scripts) from GitHub may fail. Until the bug is fixed (and until GM4 stabilizes more generally) I recommend using another user script manager (such as Tampermonkey or Violentmonkey) or the stand-alone version of SOUP instead.

NOTE 2: Tampermonkey on Chrome suffers from a race condition that can cause some fixes that rely on early loading to fail to apply properly. To avoid this, you should either use the stand-alone SOUP Chrome extension or set Inject Mode to "Instant" in Tampermonkey preferences (in the Experimental section, only visible when Config Mode is set to "Advanced" above). Other user script managers on Chrome may also be subject to similar issues.

Installing the development version

If you like living on the edge, you can also install the development version of SOUP, which gets all the latest fixes and updates as soon as they're written. Of course, it also gets all the latest bugs, too. If you do install the development version, please report any bugs or regressions you may find in it below!

Download / Install SOUP (development branch)

View source / GitHub repo

Note that the development version of SOUP is currently only available as a user script.

Included fixes

SOUP v1.50 (development) includes fixes or workarounds for the following issues.

The fixes highlighted in boldface include particularly major interface improvements or fix particularly severe or widespread issues. The choice of which fixes to highlight is unavoidably somewhat subjective, but in my personal opinion, these are the fixes you should actually install SOUP for — the rest are just icing on the cake.

CSS-only fixes

These are pure CSS fixes. They will be applied even if JavaScript is disabled on the site. Most of these are fairly minor, but sometimes pervasive, issues.

Site-specific CSS fixes

These pure CSS fixes are for issues specific to certain sites on the Stack Exchange network. Most of them are restricted to the affected site(s), but a few are applied globally, even though the issue they fix is only apparent on some sites.

Chat-only fixes

These fixes apply only to the Stack Exchange Network chat.

General fixes

Site-specific fixes

These non-CSS fixes are applied only on specific SE sites. There's a lot fewer of these, since the SE JavaScript framework is shared between all sites, whereas CSS is different for each site. Thus, these fixes generally involve either rare site-specific customizations, or simply design fixes that cannot be implemented in pure CSS.

Review fixes

These fixes apply to the post review interface. I've listed them separately here, since they include some of the more notable interface tweaks in SOUP.

MathJax-related fixes:

These fixes apply only to sites using MathJax for LaTeX math rendering.

License

SOUP is distributed under the ISC license, a permissive BSD-style open source license.

In addition, permission is given to Stack Exchange, Inc. to make use of SOUP code in any way they see fit, including but not limited to incorporating all or parts of it within the Stack Exchange codebase, with or without credit.

This SOUP version includes a copy of the punycode.js library v1.2.4 by Mathias Bynens, distributed under the MIT license. The additional permissions granted above do not apply to this library.

Credits

SOUP is currently maintained by Ilmari Karonen. Some of the fixes are based on suggestions or earlier user scripts made by others; see the source code and/or the meta.SO links above for details.

Contributing

If you know a user script or stylesheet patch for SO or other SE sites that would be suitable for inclusion in SOUP, or an unfixed issue that you believe might be worth patching, please let me know (e.g. by posting a comment or an answer the SOUP page on Stack Apps).

If you'd like to help me out by contributing new fixes directly to SOUP, the SOUP wiki on GitHub has some useful tips. Any and all contributions will be appreciated!

See also

Ilmari Karonen
  • 1.4k
  • 10
  • 18