mckinley.cc Home Blog Computers

uMatrix for Humans

January 29th, 2021

uMatrix is a great browser extension. It provides a nice way to select what type of web requests you want to allow for the website you're on. Even though the developer has archived the project and doesn't intend to update it anymore, it still works great and is available on the Firefox add-ons page, GitHub releases, the Opera add-ons page, (Opera users please get off of my website) or the Chrome web store. (You have my blessing as long as you're using ungoogled-chromium with the Chromium Web Store extension) However, it is a bit daunting at first. So, like my now outdated recently updated youtube-dl guide, I'm going to outline the basics of using it.

Rather than put several images on here, the following text will assume you have uMatrix installed so you can look at its interface to understand the text. If you don't, here's an image [PNG, 12.7KB] of the uMatrix interface as I have it configured on google.com.

Part 1: The Interface

The grid, or "matrix" as I suppose it should be called, is the most important part of the extension. But first, let's take a look at the top bar. At the left, you have the scope of your current options. You can select any subdomain to get very granular control, or click the asterisk (global scope) to make changes to the default filters of uMatrix when you go to a new page. Next, there's a power button icon. This toggles filtering for the selected scope. After that, there's three dots that open a menu with a few options. Each one has a small "i" in a circle to the right of its title that links to a page with a thorough explanation of what it is that option works with. The fourth item, the puzzle piece, will be enabled if you're on a website that has some pre-made rules that came with the extension. These rules can be applied to the page, but if I'm being honest with you, I've never used this feature. It's easy enough to create your own rules, as we'll get onto in a moment.

The next item on the top bar is a very important one: the lock button. This button saves the changes you've made to the current scope so they will be loaded after you restart your browser. I used uMatrix for weeks without knowing of the lock button's existence. Perhaps it was because the icon is a lock instead of a floppy disk. The last few buttons are very simple. There's the undo button, which discards the changes you've made to the selected scope but have not saved yet. The reload button just reloads the webpage you're on. The double undo button is the same as the regular undo button, except it discards all changes you've made but not saved on all scopes. Finally, the logger button opens the uMatrix Logger, which we'll get into later.

Now that you know about the buttons at the top of the uMatrix display, (read: the lock button) we can look at the grid itself. It's much more simple than it looks, it's just a table. The x-axis is for separating different types of web requests, and the y-axis shows where those requests are going to. Each cell in the table can be enabled by clicking the top half of it, and disabled by clicking the bottom half of it.

Cells that are dark green or dark red are explicitly enabled or disabled respectively. When a cell is enabled, uMatrix will allow that type of request going to that domain. When a cell is disabled, uMatrix will prevent that type of request going out to that domain. Similarly, cells that are light green or light red are implicitly enabled or disabled respectively. This happens because some options, like root domains or the "first party" category include other cells or categories that will be implicitly toggled. Logically, the most specific explicitly set option for any given cell or category will take priority.

The number inside each cell represents how many of that particular combination of domain and request type has been triggered since you loaded the page.

Part 2: Default Settings

By default, uMatrix allows all types of first-party requests (anything from the current domain or a subdomain of it) and all CSS or images from any domain. All frames are explicitly disabled by default, but they are allowed for first-party domains because of the way uMatrix prioritizes outcomes. The first-party option is more specific than the frames option, so first-party takes priority. These defaults can be changed to any configuration by selecting the global scope, changing the filters, and saving them with the lock button.

Personally, I use the default filter configuration minus the explicit disabling of frames as it has no effect on top of the other settings.

uMatrix also comes with a list of domains it blocks on a global scope including Google Analytics and other common trackers. You can explicitly block or unblock a domain on a global scope as long as the global scope is selected.

There are also a few options you can configure outside of the menu. Click the gray bar at the top of the uMatrix window that shows the version. You know, the one that just looks like it's there for cosmetics? Yeah. That one. This will open up the extension's options. The default settings are fine for most users, and I won't go in detail here. Feel free to explore the options and set them to your liking.

Part 3: Un-breaking websites

The extension will break sites. This is a fact. But, because of the granular control you have, you can fix them in just a few short minutes. This mostly just involves enabling things that look important (like googlevideo.com XHR requests on youtube.com or scripts from something like yoursitecdn.com) and refreshing the page.

You can make use of the logger mentioned earlier to help do this, but it is rarely necessary and relatively self-explanatory. It simply logs all the requests being made after you open it. Requests that uMatrix is blocking will be shown in red. You can select a page using the drop-down menu at the top to filter the log to that page, and the three dots to the right of the drop-down to open the uMatrix window to make changes while scrolling through the logger.

Part 4: Conclusion

Note: uMatrix is not an ad blocker! It can block requests so you don't have to look at advertisements, but you may still see empty space where an ad is supposed to be, or a website might otherwise not look right. I recommend also installing uBlock Origin for content blocking. It actually edits the page to remove elements in addition to blocking the request, and has many different lists of advertisement, malware, and tracking domains you can enable blocking for. uBlock Origin is a much more simple to use extension that rarely breaks websites, and I always recommend installing it even if you don't want to use uMatrix.
Download it here: Firefox add-ons GitHub releases Opera add-ons Chrome Web Store.

I hope this was able to help you learn uMatrix. Let me say it once more: remember to save your changes with the lock button. I cannot tell you how many times I've spent several minutes changing filters for a complicated website only to close my browser later and lose my filters.

Update 2021-01-30: Reflect that the youtube-dl guide is no longer outdated