Differences between revisions 33 and 104 (spanning 71 versions)
Revision 33 as of 2011-01-19 23:54:14
Size: 7205
Editor: SamatJain
Comment: Alphabetize user.js list
Revision 104 as of 2024-08-09 18:27:24
Size: 9724
Editor: SamatJain
Comment: browser.tabs.tabMinWidth
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
One of the largest reasons I use [[http://getfirefox.com|Mozilla Firefox]] is its huge [[https://addons.mozilla.org|universe of extensions]], scripts, and other add-ons which can make it behave the way you want it to. I've customized my Firefox installation pretty extensively.

This list is current as of Firefox 3.5.
<<TableOfContents>>

One of the
reasons I use [[http://getfirefox.com|Mozilla Firefox]] is its huge [[https://addons.mozilla.org|universe of extensions]], [[http://userscripts.org/|scripts]], [[http://userstyles.org|styles]], and other add-ons which can make it behave the way you want it to. I've customized my Firefox installation pretty extensively.

This list is current as of Firefox 62.0.
Line 7: Line 9:
=== Customization ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/748|Greasemonkey]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/2108|Stylish]]

=== Web development ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/271|ColorZilla]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/1843|Firebug]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/10869/|JSONView]]
 * [[http://code.google.com/speed/page-speed/index.html|Google's Page Speed]]: I previously used [[http://developer.yahoo.com/yslow/|Yahoo's YSlow]], but switched because [[http://code.google.com/p/page-speed/|Page Speed is open-source]]. Functionality is mostly equivalent, and I honestly don't use the extension enough to notice the differences.
 * [[https://addons.mozilla.org/en-US/firefox/addon/14328/|Rainbow]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/60|Web Developer]]

=== Other stuff ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/2324|Session Manager]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/4781|Automatic Save Folder]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/1812|CoLT]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/3615|Delicious Bookmarks]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/433|Flashblock]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/2933|Link Widgets]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/9549|Long URL Please]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/1250|Grab and Drag]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/2780|Mobile Barcoder]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/7330|Multiproxy Switch]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/2592|No Squint]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/8207|Open in Browser]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/4106/|Operator]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/7661|Read it Later]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/2324|Session Manager]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/59/|User Agent Switcher]]

=== Privacy ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/6623/|BetterPrivacy]]: Removes Flash LSOs and other tracking cookies
 * [[https://addons.mozilla.org/en-US/firefox/addon/433|Flashblock]]

=== UI and Behavior ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/1951|Fission]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/1956|Tabs Open Relative]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/7755/|Show Keywords]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/1455/|Tiny Menu]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/462|Unhide Passwords]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/55724/|Link Target Display]]: Display target of links (usually displayed in status bar) in a hovering tooltip at the bottom of window (ala Chrome)

=== KDE integration add-ons ===

 * [[https://addons.mozilla.org/en-US/firefox/addon/9622|FirefoxNotify]], which replaces [[https://addons.mozilla.org/en-US/firefox/addon/12196|PlasmaNotify]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/49357|KDE wallet password integration]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/13078/|xclear]] adds a clear button to URL and search fields, ala Qt/KDE text fields

=== Mozilla/Mozilla Labs ===

 * [[http://www.mozilla.com/en-US/firefox/accountmanager/|Account Manager]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/15003/|Add-on Compatibility Reporter]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/10868/|Firefox Sync]] (formerly Mozilla Weave)
 * [[https://addons.mozilla.org/en-US/firefox/addon/6543/|Nigtly Tester Tools]]
 * [[https://addons.mozilla.org/en-US/firefox/addon/13661/|Test Pilot]]
Extensions not available on Firefox Add-ons:

 * [[https://github.com/iamadamdev/bypass-paywalls-firefox|Bypass Paywalls for Firefox]]
 * [[https://github.com/hensm/fx_cast|fx_cast]]: Google Cast implementation for Firefox. Needs browser extension plus OS binary
Line 74: Line 20:
|| browser.display.normal_lineheight_calc_control || 1 || Not exactly sure what this does, but fixes some line-height/font rendering problems ||
Line 75: Line 22:
|| browser.ssl_override_behavior || 2 ||<|2>Turn off annoying SSL certificate behavior ||
|| browser.xul.error_pages.expert_bad_cert || true ||
|| browser.safebrowsing.enabled || false ||<|2> Disable Safe Browsing and malware checking (don't care for either on Linux) ||
|| browser.safebrowsing.malware.enabled || false ||
Line 80: Line 27:
|| network.http.pipelining || true ||<|4> Increase network performance ||
|| network.http.pipelining.maxrequests || 8 ||
|| network.http.pipelining.ssl || true ||
|| network.http.proxy.pipelining || true ||
|| network.http.sendRefererHeader || 1 || Only send HTTP referer header for links clicked on, not for images/media/etc ||
|| network.http.sendRefererHeader || 1 || Only send HTTP referer header for links clicked on, not for images/media/etc. Breaks some Websites. ||
Line 87: Line 30:
|| privacy.trackingprotection.enabled || true || Enable Firefox's Tracking Protection ||
Line 88: Line 32:
|| services.sync.prefs.sync.extensions.nosquint.exceptions || true || Sync NoSquint exceptions w/ Firefox Sync || || services.sync.addons.ignoreUserEnabledChanges || true || Do not sync the enabled/disabled state of Add-ons ||
Line 90: Line 34:
|| ui.allow_platform_file_picker || false || Don't use the horrid GTK file picker || || browser.urlbar.formatting.enabled || false || Don't just highlight just the domain in the URL bar ||
|| browser.urlbar.trimURLs || false || Don't strip http:// from URLs ||
|| layout.css.devPixelsPerPx || 2 || Double CSS pixels, for retina displays ||
|| widget.content.gtk-theme-override || Breeze:light || When using a dark GTK theme, fix colors for widgets in Firefox ||
|| xpinstall.signatures.required || false || Enable installation of unsigned extensions (needed for addons not available on addons.mozilla.org) ||
|| security.insecure_connection_text.enabled || true ||<|2> Show icon/text that non-HTTPS sites are insecure ||
|| security.insecure_connection_icon.enabled || true ||
|| general.smoothScroll.mouseWheel || false || Disable smooth scrolling for mouse input (should use XInput2 instead) ||
|| toolkit.legacyUserProfileCustomizations.stylesheets || true || Enable support for userChrome.css and userContent.css ||
|| network.dns.disablePrefetchFromHTTPS || false || DNS pre-fetch when using HTTPS ||
|| browser.in-content.dark-mode || true || Enable dark interface for about pages ||
|| ui.systemUsesDarkTheme || 1 || Make Websites think OS is in dark mode (should no longer be necessary?) ||
|| ui.prefersReducedMotion || 0 || More UI animations (sometimes autodetected incorrectly) ||
|| browser.uidensity || 1 || Make UI more compact ||
|| widget.use-xdg-desktop-portal.file-picker || 1 ||<|5> Use KDE dialogs file picker, etc ||
|| widget.use-xdg-desktop-portal.location || 1 ||
|| widget.use-xdg-desktop-portal.mime-handler || 1 ||
|| widget.use-xdg-desktop-portal.open-uri || 1 ||
|| widget.use-xdg-desktop-portal.settings || 1 ||
|| ui.prefersReducedMotion || 0 || More UI animations (sometimes autodetected incorrectly) ||
|| browser.tabs.tabMinWidth || 200 || Minimum tab width ||

Experimental settings:

|| network.predictor.enable-prefetch || true || ||

None in use.
Line 156: Line 126:

== Android ==

=== Using Roboto or another font instead of Open Sans ===

 1. Go to about:config
 2. Set to "Roboto", "Nokia Pure Text", or "Alte Haas Grotesk"
  * font.name.sans-serif.x-unicode
  * font.name.sans-serif.x-user-def
  * font.name.sans-serif.x-western

=== Font size adjustments ===

 1. Go to about:config
 2. Set font.minimum-size.x-unicode and font.minimum-size.x-western to 14
 3. Set font.size.inflation.minTwips to "140"

=== Cache location ===

On devices w/ 8–16 GB memory, store Firefox's cache on the external SD card:

 1. Go to about:config
 2. Set browser.cache.disk.parent_directory to one of:
  * /storage/sdcard1/Android/data/org.mozilla.fennec/files/cache/
  * /storage/sdcard1/Android/data/org.mozilla.firefox_beta/files/cache/
  * /storage/sdcard1/Android/data/org.mozilla.firefox/files/cache/

== Enabling off-main-thread compositing ==

Set to true:

 * layers.acceleration.force-enabled
 * gfx.canvas.azure.accelerated
 * layers.omtp.enabled

You can also set:

 * layers.acceleration.draw-fps

to display a FPS counter in the top left corner. If you see the counter, than OMTC and layer acceleration are working.

[[https://bugzilla.mozilla.org/show_bug.cgi?id=722012|722012 – [Meta] Implement OMTC on Linux]] tracks whether OMTC has been enabled on Linux.

== Fiddling ==

To tinker w/ browser styles/events/etc, navigate to chrome://browser/content/browser.xul and launch the built-in developer tools.

== External tools ==

https://gist.github.com/f1u77y/715f0dd03fc18039a6549de557370b97: Exports styles from Stylish extension (stored in stylish.sqlite) into a JSON file that can be loaded into Stylus.

== KDE integration ==

Legacy stuff:

 * [[http://www.rosenauer.org/hg/mozilla/summary|mozilla-kde.patch upstream]]
 * [[https://github.com/openSUSE/kmozillahelper/|openSUSE/kmozillahelper]]: kmozillahelper for showing file dialogs, etc. Needs mozilla-kde.patch
 * [[https://addons.mozilla.org/en-US/firefox/addon/plasma-integration/|Plasma Integration Firefox Add-on]] along with `plasma-browser-integration` (available in most Linux distributions)

In Firefox 64 and 2019-vintage Linux distributions, can also use "desktop portal" support.

 * `xdg-desktop-portal` and `xdg-desktop-portal-kde` packages
 * Set environment variable `GTK_USE_PORTAL=1` for firefox.desktop (or globally once crash in Thunderbird is fixed):

{{{#!highlight sh numbers=off
cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Entry" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Action new-private-window" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Action new-window" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kbuildsycoca5
}}}

== Containers ==

Firefox extensions

 * Multi-Account Containers: official extension from Mozilla. Functional but lacking.
 * Containers with Transitions: fork the above? Unclear if still maintained.
 * Containerise: Lets you specify lists of sites that should live in containers. See [[https://github.com/shvchk/containerise-lists|containerise-lists]].
 * Temporary Containers

Most recommend Containerize and Temporary Containers.

== Interesting reading ==

 * [[https://www.reddit.com/r/firefox/comments/5qlpai/how_to_remove_zoom_level_indicator_from_url_bar/|How to remove zoom level indicator from URL bar? : firefox]]
 * [[https://www.reddit.com/r/firefox/comments/5qius3/is_there_any_way_to_turn_off_the_zoom_indicator/|Is there any way to "turn off" the zoom indicator in 51? : firefox]]
 * [[https://support.mozilla.org/en-US/questions/1069513#answer-787122|How can I add the CSS styles used by Firefox reader mode?]]
 * https://www.userchrome.org/
 * https://github.com/overdodactyl/ShadowFox

One of the reasons I use Mozilla Firefox is its huge universe of extensions, scripts, styles, and other add-ons which can make it behave the way you want it to. I've customized my Firefox installation pretty extensively.

This list is current as of Firefox 62.0.

Extensions

Extensions not available on Firefox Add-ons:

Preferences

user.js settings I use:

Setting

Value

Rationale

browser.backspace_action

1

Bind backspace to scroll up a page

browser.display.normal_lineheight_calc_control

1

Not exactly sure what this does, but fixes some line-height/font rendering problems

browser.fullscreen.autohide

false

Prevent tab/URL bar from auto-hiding in full-screen mode

browser.safebrowsing.enabled

false

Disable Safe Browsing and malware checking (don't care for either on Linux)

browser.safebrowsing.malware.enabled

false

image.animation_mode

once

Animated GIFs only animate once

layout.css.dpi

0

Use system-reported DPI, always (normal behavior may sometimes use 96 DPI)

layout.spellcheckDefault

2

Enable spell checking for both INPUT and TEXTAREA fields

network.http.sendRefererHeader

1

Only send HTTP referer header for links clicked on, not for images/media/etc. Breaks some Websites.

network.protocol-handler.external.mailto

true

network.proxy.socks_remote_dns

true

Send DNS requests through proxies

privacy.trackingprotection.enabled

true

Enable Firefox's Tracking Protection

security.dialog_enable_delay

0

No wait when prompted to install unsigned extensions

services.sync.addons.ignoreUserEnabledChanges

true

Do not sync the enabled/disabled state of Add-ons

ui.caretBlinkTime

0

Disable cursor blinking

browser.urlbar.formatting.enabled

false

Don't just highlight just the domain in the URL bar

browser.urlbar.trimURLs

false

Don't strip http:// from URLs

layout.css.devPixelsPerPx

2

Double CSS pixels, for retina displays

widget.content.gtk-theme-override

Breeze:light

When using a dark GTK theme, fix colors for widgets in Firefox

xpinstall.signatures.required

false

Enable installation of unsigned extensions (needed for addons not available on addons.mozilla.org)

security.insecure_connection_text.enabled

true

Show icon/text that non-HTTPS sites are insecure

security.insecure_connection_icon.enabled

true

general.smoothScroll.mouseWheel

false

Disable smooth scrolling for mouse input (should use XInput2 instead)

toolkit.legacyUserProfileCustomizations.stylesheets

true

Enable support for userChrome.css and userContent.css

network.dns.disablePrefetchFromHTTPS

false

DNS pre-fetch when using HTTPS

browser.in-content.dark-mode

true

Enable dark interface for about pages

ui.systemUsesDarkTheme

1

Make Websites think OS is in dark mode (should no longer be necessary?)

ui.prefersReducedMotion

0

More UI animations (sometimes autodetected incorrectly)

browser.uidensity

1

Make UI more compact

widget.use-xdg-desktop-portal.file-picker

1

Use KDE dialogs file picker, etc

widget.use-xdg-desktop-portal.location

1

widget.use-xdg-desktop-portal.mime-handler

1

widget.use-xdg-desktop-portal.open-uri

1

widget.use-xdg-desktop-portal.settings

1

ui.prefersReducedMotion

0

More UI animations (sometimes autodetected incorrectly)

browser.tabs.tabMinWidth

200

Minimum tab width

Experimental settings:

network.predictor.enable-prefetch

true

None in use.

Chrome

Contents of my userChrome.css:

   1 /* Font preferences for AwesomeBar dropdown
   2  * 
   3  * Adjusts font size, underlines URLs, and corrects colors
   4  */
   5 .ac-comment
   6 {
   7   font-size: 100% !important;
   8 }
   9 
  10 .ac-url-text
  11 {
  12   color: #306090 !important;
  13   text-decoration: underline !important;
  14 }
  15 
  16 .ac-url-text[selected="true"]
  17 {
  18   color: white !important;
  19 }
  20 
  21 /* Use monospaced font for AwesomeBar */
  22 #urlbar
  23 {
  24   font-family: monospace !important;
  25   font-size: 14px !important;
  26 }
  27 
  28 /* Combines Stop/Reload buttons, such that only one is shown at a time
  29  *
  30  * Note: May require button reordering (e.g reverse order of stop/reload
  31  * buttons) if the below does not work
  32  *
  33  * Derived from user style: http://userstyles.org/styles/10
  34  * Also, see bug 343396: https://bugzilla.mozilla.org/show_bug.cgi?query_format=specific&order=relevance+desc&bug_status=__open__&id=343396
  35  */
  36 #stop-button[disabled="true"] { display:none; } 
  37 #stop-button:not([disabled]) + #reload-button { display:none; }
  38 
  39 /* Italicize unread tabs
  40  *
  41  * Derived from user style: http://userstyles.org/styles/8247
  42  */
  43 #content tab:not([selected]) { font-style: italic !important; }
  44 
  45 /* Display keyword field in Bookmark dialog
  46  *
  47  * Derived from user style: http://userstyles.org/styles/8250
  48  */
  49 #editBMPanel_keywordRow { visibility: visible; }
  50 
  51 /* Hide search and go buttons */
  52 .search-go-button,
  53 .search-go-button-stack,
  54 #go-button
  55 {
  56   display: none !important;
  57 }

Android

Using Roboto or another font instead of Open Sans

  1. Go to about:config
  2. Set to "Roboto", "Nokia Pure Text", or "Alte Haas Grotesk"
    • font.name.sans-serif.x-unicode
    • font.name.sans-serif.x-user-def
    • font.name.sans-serif.x-western

Font size adjustments

  1. Go to about:config
  2. Set font.minimum-size.x-unicode and font.minimum-size.x-western to 14
  3. Set font.size.inflation.minTwips to "140"

Cache location

On devices w/ 8–16 GB memory, store Firefox's cache on the external SD card:

  1. Go to about:config
  2. Set browser.cache.disk.parent_directory to one of:
    • /storage/sdcard1/Android/data/org.mozilla.fennec/files/cache/
    • /storage/sdcard1/Android/data/org.mozilla.firefox_beta/files/cache/
    • /storage/sdcard1/Android/data/org.mozilla.firefox/files/cache/

Enabling off-main-thread compositing

Set to true:

  • layers.acceleration.force-enabled
  • gfx.canvas.azure.accelerated
  • layers.omtp.enabled

You can also set:

  • layers.acceleration.draw-fps

to display a FPS counter in the top left corner. If you see the counter, than OMTC and layer acceleration are working.

722012 – [Meta] Implement OMTC on Linux tracks whether OMTC has been enabled on Linux.

Fiddling

To tinker w/ browser styles/events/etc, navigate to chrome://browser/content/browser.xul and launch the built-in developer tools.

External tools

https://gist.github.com/f1u77y/715f0dd03fc18039a6549de557370b97: Exports styles from Stylish extension (stored in stylish.sqlite) into a JSON file that can be loaded into Stylus.

KDE integration

Legacy stuff:

In Firefox 64 and 2019-vintage Linux distributions, can also use "desktop portal" support.

  • xdg-desktop-portal and xdg-desktop-portal-kde packages

  • Set environment variable GTK_USE_PORTAL=1 for firefox.desktop (or globally once crash in Thunderbird is fixed):

cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Entry" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Action new-private-window" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kwriteconfig5 --file=$HOME/.local/share/applications/firefox.desktop --group="Desktop Action new-window" "Exec" "GTK_USE_PORTAL=1 /usr/lib/firefox/firefox %u"
kbuildsycoca5

Containers

Firefox extensions

  • Multi-Account Containers: official extension from Mozilla. Functional but lacking.
  • Containers with Transitions: fork the above? Unclear if still maintained.
  • Containerise: Lets you specify lists of sites that should live in containers. See containerise-lists.

  • Temporary Containers

Most recommend Containerize and Temporary Containers.

Interesting reading

SamatsWiki: DotFiles/Firefox (last edited 2024-08-09 18:27:24 by SamatJain)