UP  |  HOME

Firefox

Table of Contents

about:config preferences

Preference Name Type Value Purpose
extensions.pocket.enabled bool false Enable pocket (built-in extension)
browser.display.use_system_colors bool false Lets form elements match the browser theme (I think)
browser.link.open_newwindow number 1 Open links in the current tab
browser.link.open_newwindow.restriction number 0 Direct all links according to open_newwindow
browser.link.open_newwindow.override.external number 3 Override links opened in other apps, send to new tab
browser.compactmode.show bool true Allow compact mode for toolbar customization

userChrome.css

This is a per-profile file. Mine is stored in /home/<user>/.mozilla/firefox/<profile name>/chrome/

Listing 1: userChrome.css
/* This copy is in ~/.mozilla/firefox/ just for dotfile repo purposes.
 * It needs to be in the ~/.mozilla/firefox/<profile>/chrome folder to work.
 * I tried symlinks, but they didn't seem to work. Sucks.
 */

notification[value="drmContentDisabled"]{

 display:none !important;

}

/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/inline_tab_audio_icons.css made available under Mozilla Public License v. 2.0
See the above repository for updates as well as full license text. */

/* Shows tab audio icons next to the tab icon, and by default removes the tab secondary line */

.tabbrowser-tab:not([pinned]) .tab-icon-stack:is([muted],[soundplaying],[activemedia-blocked]){
  grid-template-areas: "a s";
}
.tabbrowser-tab:not([pinned]) .tab-icon-overlay:is([muted],[soundplaying],[activemedia-blocked]){ grid-area: s; }
.tab-icon-overlay,
.tab-icon-image,
.tab-throbber{ opacity: 1 !important; }

.tab-icon-overlay:not([pinned]){
  padding: 0px !important;
  margin-inline: -3px 1px !important;
}

/* secondary audio label ain't much use with this style, but feel free to remove the next line if you want to show it. */
.tab-secondary-label{ display: none }

/* show the secondary label when video is in PiP */
.tab-secondary-label[pictureinpicture]{ display: flex }

/* These exist for compatibility with combined_favicon_and_tab_close_button.css */
.tab-icon-overlay{ pointer-events: auto }
.tab-content > .tab-icon-stack,
.tab-icon-stack:hover > .tab-icon-image{ visibility: visible }

/* Hide text on some youtube icons. This lets me see the video's posted date on my portrait screen */
ytd-button-renderer.style-text[is-icon-button] #text.ytd-button-renderer, ytd-button-renderer.style-default[is-icon-button] #text.ytd-button-renderer, ytd-button-renderer.style-opacity[is-icon-button] #text.ytd-button-renderer {
        display: none;
}

Add-ons

Name uBlock Origin
Description Finally, an efficient wide-spectrum content blocker. Easy on CPU and memory.
Store Page https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/
Purpose Adblocker.
Site https://github.com/gorhill/uBlock#ublock-origin-ubo
Name Privacy Badger
Description Automatically learns to block invisible trackers.
Store Page https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/
Purpose Block trackers.
Site https://privacybadger.org/
Name Dark Reader
Description Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.
Store Page https://addons.mozilla.org/en-US/firefox/addon/darkreader/
Purpose Dark mode through filters, inversion, etc.
Site https://darkreader.org/
Name LeechBlock NG
Description LeechBlock NG is a simple productivity tool designed to block those time-wasting sites that can suck the life out of your working day. All you need to do is specify which sites to block and when to block them.
Store Page https://addons.mozilla.org/en-US/firefox/addon/leechblock-ng/
Purpose Sometimes useful for limiting time wasting sites.
Site https://www.proginosko.com/leechblock/
Name Firefox Multi-Account Containers
Description Firefox Multi-Account Containers lets you keep parts of your online life separated into color-coded tabs. Cookies are separated by container, allowing you to use the web with multiple accounts and integrate Mozilla VPN for an extra layer of privacy.
Store Page https://addons.mozilla.org/en-US/firefox/addon/multi-account-containers/
Purpose -
Site https://github.com/mozilla/multi-account-containers/#readme
Name The Camelizer - Price Tracker
Description Add price history charts and price watch features to Firefox when viewing product pages on Amazon. Use it to make informed purchasing decisions and to receive price drop alerts via email, Twitter, or RSS feed.
Store Page https://addons.mozilla.org/en-US/firefox/addon/the-camelizer-price-history-ch/
Purpose Amazon price research.
Site https://camelcamelcamel.com/camelizer
Name Old Reddit Redirect
Description Ensure Reddit always loads the old design
Store Page https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/
Purpose Always redirect to old.reddit
Site https://github.com/tom-james-watson/old-reddit-redirect
Name Wayback Machine
Description Detects dead pages, 404s, DNS failures & a range of other web breakdowns, offering to show archived versions via the Internet Archive's Wayback Machine. In addition you can archive web pages, and see their most recent & first archives.
Store Page https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/
Purpose Open pages using Wayback Machine.
Site http://web.archive.org
Name Nitter Redirect
Description Redirects Twitter requests to Nitter, the privacy friendly alternative.
Store Page https://addons.mozilla.org/en-US/firefox/addon/nitter-redirect/
Purpose Redirect all twitter to a nitter instance of your choice.
Site https://github.com/SimonBrazell/nitter-redirect
Name DF YouTube (Distraction Free)
Description Allow yourself to focus while using YouTube for work, recreation or education. Disable autoplay, remove sidebar, hide feed, comments, and more.
Store Page https://addons.mozilla.org/en-US/firefox/addon/df-youtube/
Purpose Hide related videos and sidebar.
Site -
Name Clickbait Remover for Youtube
Description Replaces thumbnails and modifies titles of videos on youtube.com and m.youtube.com
Store Page https://addons.mozilla.org/en-US/firefox/addon/clickbait-remover-for-youtube/
Purpose Remove gaudy thumbnails and all caps video titles.
Site https://github.com/pietervanheijningen/clickbait-remover-for-youtube/issues
Name Tab Manager Plus for Firefox
Description Quickly find open tabs, see all windows in one view, find duplicates and limit tabs per window. The best Tab Manager for Firefox.
Store Page https://addons.mozilla.org/en-US/firefox/addon/tab-manager-plus-for-firefox/
Purpose Nice tab overview. Ability to move tabs between windows and group them efficiently.
Site https://stefanxo.com
Name Mute sites by default
Description Mutes all sites by default and remembers unmuted sites
Store Page https://addons.mozilla.org/en-US/firefox/addon/mute-sites-by-default/
Purpose Mutes all tabs by default. Remembers unmuted sites.
Site https://github.com/abba23/mute-sites-by-default
Name Save Tab URLs
Description Show, save and restore the page URLs along with page Titles of all opened tabs of current browser window. Show as copyable plaintext. Save and restore from text file.
Store Page https://addons.mozilla.org/en-US/firefox/addon/save-tab-urls/
Purpose Manually export/import tabs.
Site https://github.com/mnba/save-tabs
Name Center Pages
Description Center-Pages allows you to narrow wide pages to the center of your screen. Center-Pages simply adds a margin to the sides, which you can increase/decrease via two buttons.
Store Page https://addons.mozilla.org/en-US/firefox/addon/center-pages/
Purpose Adds margins to wide sites for better readability.
Site https://github.com/feluxe/Center-Pages

Grabbing plugin metadata

Here's a script to collect and output plugin info for more easily updating my list above.

#!/bin/bash

## Parse out addon information from firefox profile directory
## Output is an org mode table, but could be modified easily

# requires augtool, awk, sed, jq, cut (coreutils)

# not tested thoroughly.

base_path="$HOME/.mozilla/firefox"

# grab profile from ~/.mozilla/firefox/profiles.ini
# Last used profile section has Default=1 key
# Find that, grab the Path variable from it's parent,
profile_path="$base_path"/$(augtool --root="$base_path" -A -t "php.lns incl profiles.ini" get \
    "$(augtool --root="$base_path" -A -t "php.lns incl profiles.ini" match /files/profiles.ini/*/Default 1)"/../Path \
    | cut -d = -f 2 | awk '{$1=$1};1')

# ~/.mozilla/firefox/<profile>/addons.json
addons_names=()     # .addons[].name
addons_descs=()     # .addons[].description
addons_sites=()     # .addons[].homepageURL
addons_alt_sites=() # .addons[].supportURL
addons_stores=()    # .addons[].reviewURL (chop off the review part)

while read -r value
do
  addons_names+=("$(echo "$value"|sed -e 's/^\"//' -e 's/\"$//')")
done < <(jq -c '.addons[].name' "$profile_path/addons.json")

while read -r value
do
  addons_descs+=("$(echo "$value"|sed -e 's/^\"//' -e 's/\"$//')")
done < <(jq -c '.addons[].description' "$profile_path/addons.json")

while read -r value
do
  addons_sites+=("$(echo "$value"|sed -e 's/^\"//' -e 's/\"$//')")
done < <(jq -c '.addons[].homepageURL' "$profile_path/addons.json")

while read -r value
do
  addons_alt_sites+=("$(echo "$value"|sed -e 's/^\"//' -e 's/\"$//')")
done < <(jq -c '.addons[].supportURL' "$profile_path/addons.json")

# can't find a good store URL
# use .addons[].reviewURL and chop off the reviews/ suffix
while read -r value
do
    addons_stores+=("$(echo "$value"|sed -e 's/^\"//' -e 's/reviews\/\"$//')")
done < <(jq -c '.addons[].reviewURL' "$profile_path/addons.json")

for index in ${!addons_names[*]}; do
    echo "#+BEGIN_grouping"
    echo "#+ATTR_LATEX: :environment tabularx :width \\linewidth :align lX :font \\footnotesize\\rmfamily"
    echo "|Name|${addons_names[$index]}|"
    echo "|Description|${addons_descs[$index]}|"
    echo "|Store Page|[[${addons_stores[$index]}]]|"
    echo "|Purpose||"
    # if homepageURL is null, try supportURL, or leave blank
    if [ "${addons_sites[$index]}" != "null" ]; then
        echo "|Site|[[${addons_sites[$index]}]]|"
    elif [ "${addons_alt_sites[$index]}" != "null" ]; then
        echo "|Site|[[${addons_alt_sites[$index]}]]|"
    else
        echo "|Site||"
    fi
    echo "#+END_grouping"
    echo
done