Paxmod is a Firefox add-on that provides multiple tab rows and dynamic, site-dependent tab colors. You can customize the font, tab sizes, add your own CSS, and more.
(These demos are from an older Paxmod release, but the idea is the same.)
-
Use an up-to-date version (70+) of either Firefox Developer or Nightly.
-
Go to
about:config
and confirm these settings:Key Value xpinstall.signatures.required
false
(Why?)extensions.legacy.enabled
true
layout.css.shadow-parts.enabled
true
-
Install Paxmod. (Download the
.xpi
file from here and load it in Firefox.)
You can change the font, tab sizes and other settings at about:addons
> Extensions > Paxmod > Preferences.
-
Disable UI animations for less jiggly tab movement. (Go to
about:config
and settoolkit.cosmeticAnimations.enabled
tofalse
.) -
If the inline titlebar causes glitches or you think it's wasting too much space, enable the standard titlebar.
-
Clean up and condense the UI. Open the burger menu (☰), click Customize and set Density to Compact. Also drag away unneeded toolbar items (in particular, remove the invisible placeholders around the urlbar).
-
If you want Paxmod to look exactly the same as in the dark demo, you need the Terminus font. I chose a bitmap font since font rendering in small sizes on dark backgrounds tends to look blurry. But you can set any font you like.
Paxmod no longer provides custom color settings (because these are hard to maintain across Firefox releases). But you can choose from many themes on MDN or simply build your own theme.
To load custom CSS, you can either specify a path or paste a CSS snippet in the settings. For local files, make sure you prefix the path with file://
, e.g. file:///tmp/foo.css
.
Paxmod needs to be able to freely modify the browser UI, a feature for which there is no existing WebExtension API, and probably never will be. Therefore, Paxmod relies on an "experimental API" that ships bundled with the add-on. Unfortunately, this means Mozilla won't sign the extension anymore and therefore it can't be distributed over the official channels.
8A23The inline titlebar is hidden by default, but you can re-enable it in the settings. If it doesn't integrate into the layout as expected, please file an issue. (Note that some environments don't support an inline titlebar at all.)
Each tab color is generated dynamically from the favicon. A dominant color is extracted from the image and eventually adjusted to an appropriate lightness in the Lab color space. This works reasonably well and ensures that all tab labels are legible.
If Firefox complains that the add-on isn't verified, you probably didn't turn extension signature checks off. Also note that turning the checks off has no effect in the standard releases, which is why you need to use Firefox Developer or Nightly. (Also, if you used a previous version of Paxmod, make sure you uninstall the Stylesheet API which is not required anymore.)
Especially on MacOS, the inline titlebar may not work as expected. In that case you need to enable the standard titlebar. (Open the burger menu (☰), click Customize and check Title Bar at the bottom.) Also, go to the addon settings and uncheck Display inline titlebar and Display titlebar spacers.
Paxmod is mainly tested on Linux, so there are most likely some quirks on MacOS or Windows that I'm not aware of. If in doubt, please file an issue. Any help with making Paxmod compatible with other OSes is more than welcome.
Tab dragging doesn't work to well with multi-row tabs and I couldn't find a CSS-only fix. Instead, you may want to use the shortcuts Ctrl+Shift+PgUp and Ctrl+Shift+PgDn to re-arrange the tabs.
On Arch Linux, you can install the Terminus font via:
# pacman -S terminus-font
If Firefox still doesn't find the font, check whether it's installed under a different name. (On my machine, Terminus is registered as xos4 Terminus
.) You can list your installed fonts with fc-list
, e.g.:
$ fc-list | grep -i terminus
...
/usr/share/fonts/misc/ter-x16b.pcf.gz: xos4 Terminus:style=Bold
/usr/share/fonts/misc/ter-x14n.pcf.gz: xos4 Terminus:style=Regular
...
Use web-ext to develop locally. After cloning the repository, you can run Paxmod similar to this:
web-ext run --firefox /usr/bin/firefox-nightly --firefox-profile dev-paxmod --source-dir src
(Make sure the chosen profile has the stylesheet API installed, you're in the project's root directory, and you're pointing to an existing Firefox binary.)
And to build the addon, run:
web-ext build --overwrite-dest --source-dir src
This will produce a .zip
file in web-ext-artifacts/
. Rename the file to .xpi
to have it recognized as a Firefox extension.