Difference between revisions of "Firefox tweaks"

From ArchWiki
Jump to: navigation, search
(Network settings: using wiki table and not html <table> tags)
(cleanup. formatting. phrasing. that sorta stuff.)
Line 4: Line 4:
  
 
{{Article summary start}}
 
{{Article summary start}}
{{Article summary text|Firefox configuration and modifications}}
+
{{Article summary text|This page contains advanced Firefox configuration options and performance tweaks.}}
 
{{Article summary heading|Related}}
 
{{Article summary heading|Related}}
{{Article summary wiki|Browser Plugins}}: Acquiring and installing plugins such as [[Flash]]
+
{{Article summary wiki|Firefox}}
{{Article summary wiki|Firefox}}: Installing and troubleshooting the Firefox browser and plugins
+
{{Article summary wiki|Browser Plugins}}
{{Article summary wiki|Speed-up Firefox using tmpfs}}: Caching the profile in RAM
+
{{Article summary wiki|Firefox Ramdisk}}
 
{{Article summary end}}
 
{{Article summary end}}
  
 
== Performance ==
 
== Performance ==
  
Improving Firefox's performance is divided into parameters that can be inputted while running Firefox or otherwise modifying its configuration as intended by the developers, and advanced procedures that involve foreign programs or scripts. Always use the latest version of Firefox.
+
Improving Firefox's performance is divided into parameters that can be inputted while running Firefox or otherwise modifying its configuration as intended by the developers, and advanced procedures that involve foreign programs or scripts.
  
=== Tunables ===
+
{{Note|Always use the latest version of Firefox.}}
''Improvements stemming from native Firefox settings.''
+
 
 +
=== Advanced Firefox options ===
  
 
==== Network settings ====
 
==== Network settings ====
Line 45: Line 46:
 
{{Note|These settings need to be configured based on your connection.}}
 
{{Note|These settings need to be configured based on your connection.}}
  
==== Turning off anti-phishing ====
+
==== Turn off anti-phishing ====
{{note|Deleting files from your profile folder is potentially dangerous, so it's recommended that you make a backup of the folder first.}}
+
{{Note|Deleting files from your profile folder is potentially dangerous, so it is recommended that you back it up first.}}
  
The anti-phishing features of Firefox may cause Firefox to become slow to start or exit. The problem is that Firefox maintains a sqlite database that might grow quite big, and reading and writing to this database begins to take some time when it grows bigger. If you feel that you do not need Firefox to tell you which sites may be suspect you can disable this feature:
+
The anti-phishing features of Firefox may cause Firefox to become slow to start or exit. The problem is that Firefox maintains an [[Sqlite]] database that can grow quite big which makes reading and writing slower after repeated use. If you feel that you do not need Firefox to tell you which sites may be suspect you can disable this feature:
  
* Turn off the following options under the security tab in preferences: "Block reported attack sites" and "Block reported web forgeries".
+
* Turn off the following options under the security tab in preferences: ''"Block reported attack sites"'' and ''"Block reported web forgeries"''.
  
* Delete all files beginning with urlclassifier in your profile folder (~/.mozilla/firefox/********.default where ******** is some combination of letters and numbers. Default might be something else if you have created a non-default profile). Some of these files might be recreated by Firefox, but they won't grow any larger than their initial size:
+
* Delete all files beginning with {{ic|urlclassifier}} in your profile folder ({{ic|~/.mozilla/firefox/<profile_dir>/}}):
  $ rm -i ~/.mozilla/firefox/*.default/urlclassifier*
+
  $ rm -i ~/.mozilla/firefox/<profile_dir>/urlclassifier*
  
==== Disable urlclassifier3.sqlite from being created again ====
+
:Some of these files might be recreated by Firefox, but they won't grow any larger than their initial size.
If you did remove urlclassifier* as mentioned above you may find out that urlclassifier3.sqlite keeps groing again after a certain time. Here is a simple solution to avoid it for now and ever.
+
  
  $ cd ~/.mozilla/firefox/*.default
+
==== Stop urlclassifier3.sqlite from being created again ====
 +
If you did remove all the {{ic|urlclassifier*}} files as mentioned above, you may find out that {{ic|urlclassifier3.sqlite}} keeps growing again after a certain time. Here is a simple solution to avoid it for now and ever.
 +
 
 +
  $ cd ~/.mozilla/firefox/<profile_dir>
 
  $ echo "" > urlclassifier3.sqlite
 
  $ echo "" > urlclassifier3.sqlite
 
  $ chmod 400 urlclassifier3.sqlite
 
  $ chmod 400 urlclassifier3.sqlite
  
So first we empty it. Then we make it read-only.
+
This effectively makes the file empty and then read-only so Firefox cannot write to it anymore.
  
==== Improve rendering by disabling pango ====
+
==== Improve font rendering by disabling pango ====
{{note|Exporting the setting may also fix font issues for the entire Mozilla suite.}}
+
To disable [http://www.pango.org/ Pango] font handling in Firefox, add:
 
+
Add:
+
 
  export MOZ_DISABLE_PANGO=1
 
  export MOZ_DISABLE_PANGO=1
to {{ic|~/.profile}} and relogin for the change to take place.
+
to your {{ic|~/.profile}} (or {{ic|/etc/profile}} for all users) and re-login for the change to take place.
  
=== Foreign modifications ===
+
{{note|Exporting the setting may also fix font issues for the entire Mozilla suite.}}
''Advanced Firefox alterations''
+
  
==== Reduce load time by compressing the Firefox binary with upx ====
+
=== Other modifications ===
Run the following commands as root. [[pacman|Install]] the {{Pkg|upx}} package from the [[Official Repositories]].
+
This section contains some other modifications that may increase Firefox's performance.
  
Make a backup of the firefox binary:
+
==== Reduce load time by compressing the Firefox binary with UPX ====
 +
[http://upx.sourceforge.net/ UPX] is an executable packer that supports very fast decompression and induces no memory overhead.It can be [[pacman|installed]] with the {{Pkg|upx}} package, availalble in the [[official repositories]].
 +
 
 +
Before using {{ic|upx}} to compress the Firefox executable, make a backup of the binary:
 
  # cp /usr/lib/firefox/firefox /usr/lib/firefox/firefox.backup
 
  # cp /usr/lib/firefox/firefox /usr/lib/firefox/firefox.backup
  
Invoke {{ic|upx}}, applying the best possible compression level:
+
Finally, invoke {{ic|upx}}, applying the best possible compression level:
 
  # upx --best /usr/lib/firefox/firefox
 
  # upx --best /usr/lib/firefox/firefox
  
 
==== Defragment the profile's SQLite databases ====
 
==== Defragment the profile's SQLite databases ====
{{Warning| This procedure may damage the databases in such a way that sessions are not saved properly.}}
+
{{Warning|This procedure may damage the databases in such a way that sessions are not saved properly.}}
  
===== Sample size differences comparison =====
+
In Firefox 3.0, bookmarks, history, passwords are kept in an SQLite databases. SQLite databases become fragmented over time and empty spaces appear all around. But, since there are no managing processes checking and optimizing the database, these factors eventually result in a performance hit. A good way to improve start-up and some other bookmarks and history related tasks is to defragment and trim unused space from these databases.
{| border="1"
+
 
| SQLite DB || Size Before || Size After || % change
+
{{AUR|profile-cleaner}} in the [[AUR]] does just this.
 +
 
 +
{| class="wikitable" border="1" style="width: 100%;" cellpadding="5" cellspacing="0"
 +
|+ Sample size differences comparison
 +
! SQLite database || Size Before || Size After || % change
 
|-  
 
|-  
 
|urlclassifier3.sqlite|| 37 M || 30 M || 19 %
 
|urlclassifier3.sqlite|| 37 M || 30 M || 19 %
Line 95: Line 102:
 
|-
 
|-
 
|}
 
|}
 
===== Profile defragmentation procedure =====
 
Firefox 3.0, bookmarks, history, passwords are kept in SQLite databases. SQLite databases become fragmented over time and empty spaces appear all around. But, since there are no managing processes checking and optimizing the database, these factors eventually result in a performance hit. A good way to improve startup and some other bookmarks and history related tasks is to defragment and trim unused space from these databases.
 
 
{{AUR|profile-cleaner}} in the [[AUR]] does just this.
 
  
 
==== Cache the entire profile into RAM via tmpfs ====
 
==== Cache the entire profile into RAM via tmpfs ====
If the system has memory to spare, {{Ic|tmpfs}} can be used to [[Firefox Ramdisk|cache the entire profile directory]], which might result in increased Firefox responsiveness.
+
If the system has memory to spare, {{ic|tmpfs}} can be used to [[Firefox Ramdisk|cache the entire profile directory]], which might result in increased Firefox responsiveness.
  
 
== Appearance ==
 
== Appearance ==
 
=== Fonts ===
 
=== Fonts ===
''See also: [[Font Configuration]]''
+
{{Box||See the main article: [[Font Configuration]]|#E5E5FF|#FCFCFC}}
  
==== DPI ====
+
==== Configure the DPI value ====
Modifying the following value can help improve the way fonts looks in Firefox if the system's DPI is below 96.  Firefox, by default, uses 96 and only uses the system's DPI if it is a higher value. To force the system's DPI regardless of its value, type about:config into the address bar and search for '''layout.css.dpi'''. Change it to '''0'''.
+
Modifying the following value can help improve the way fonts looks in Firefox if the system's DPI is below 96.  Firefox, by default, uses 96 and only uses the system's DPI if it is a higher value. To force the system's DPI regardless of its value, type {{ic|about:config}} into the address bar and set {{ic|layout.css.dpi}} to '''0'''.
  
On XFCE above method affects only Firefox UI DPI settings, but web page contents still use DPI=96, which may look ugly.
+
In [[Xfce]], the above method only affects the Firefox user interface's DPI settings, but web page contents still use a DPI value of 96, which may look ugly. A solution is to change {{ic|layout.css.devPixelsPerPx}} to system's DPI divided by 96. For example, if your system's DPI is 142, then the value to add is 142/96 = 1.48. Changing {{ic|layout.css.devPixelsPerPx}} to '''1.48''' makes web page contents use a DPI of 142, which looks much better.
Another soluntion is to change '''layout.css.devPixelsPerPx''' to system's DPI/96. For example, on my system DPI=142, DPI/96=1.48. Changing  
+
'''layout.css.devPixelsPerPx''' to 1.48 makes web page contents use DPI=142, which looks '''much''' better.
+
  
==== Default font settings from MS Windows ====
+
==== Default font settings from Microsoft Windows ====
 
Below are the default font preferences when Firefox is installed in Microsoft Windows. Many web sites use the Microsoft fonts.
 
Below are the default font preferences when Firefox is installed in Microsoft Windows. Many web sites use the Microsoft fonts.
 
{{bc|
 
{{bc|
Line 124: Line 124:
 
}}
 
}}
  
=== General UI CSS settings ===
+
=== General user interface CSS settings ===
Firefox's UI can be modified by editing the files in {{ic|~/.mozilla/firefox/''RANDOMHASH''.''PROFILENAME''/chrome/}}; namely, {{ic|userChrome.css}} and {{ic|userContent.css}}.
+
Firefox's user interface can be modified by editing the {{ic|userChrome.css}} and {{ic|userContent.css}} files in {{ic|~/.mozilla/firefox/<profile_dir>/chrome/}} (''profile_dir'' is of the form ''hash.name'', where the ''hash'' is an 8 character, seemingly random string and the profile ''name'' is usually ''default'').
  
All of the following modifications take place in {{ic|userChrome.css}}.
+
{{Note|The {{ic|chrome/}} folder and {{ic|userChrome.css}}/{{ic|userContent.css}} files may not necessarily exist, so you have to create them.}}
  
==== Change UI font ====
+
This section only deals with the {{ic|userChrome.css}} file which modifies Firefox's user interface, and not web pages.
The setting effectively overrides the global GTK2+ font preferences, and does not affect the body; only the UI itself:
+
 
{{bc|
+
==== Change the font ====
 +
The setting effectively overrides the global GTK+ font preferences, and does not affect webpages, only the user interface itself:
 +
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|
 
* {
 
* {
 
     font-family: "FONT_NAME";
 
     font-family: "FONT_NAME";
Line 139: Line 141:
 
==== Hide button icons ====
 
==== Hide button icons ====
 
Enables text-only buttons:
 
Enables text-only buttons:
{{bc|
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|
 
.button-box .button-icon {
 
.button-box .button-icon {
 
     display: none;
 
     display: none;
Line 147: Line 149:
 
==== Hiding various tab buttons ====
 
==== Hiding various tab buttons ====
 
These settings hide the arrows that appear to the horizontal edges of the tab bar, the button that toggles the "all tabs" drop-down list, and the plus sign button that creates a new tab.
 
These settings hide the arrows that appear to the horizontal edges of the tab bar, the button that toggles the "all tabs" drop-down list, and the plus sign button that creates a new tab.
{{bc|1=
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|<nowiki>
 
/* Tab bar */
 
/* Tab bar */
  
Line 163: Line 165:
 
     /* Hide new-tab button */
 
     /* Hide new-tab button */
 
     display: none;
 
     display: none;
}
+
}</nowiki>
 
}}
 
}}
  
 
==== Horizontal tabs ====
 
==== Horizontal tabs ====
 
To place the tab bar horizontally stacked along the sides of the browser window:
 
To place the tab bar horizontally stacked along the sides of the browser window:
{{bc|
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|
 
/* Display the tabbar on the left */
 
/* Display the tabbar on the left */
 
#content > tabbox {
 
#content > tabbox {
Line 205: Line 207:
  
 
==== Auto-hide Bookmarks Toolbar ====
 
==== Auto-hide Bookmarks Toolbar ====
 +
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|
 +
#PersonalToolbar {
 +
    visibility: collapse !important;
 +
}
  
#PersonalToolbar {
+
#navigator-toolbox:hover > #PersonalToolbar {
visibility: collapse !important;
+
    visibility: visible !important;
}
+
}
#navigator-toolbox:hover > #PersonalToolbar {
+
}}
visibility: visible !important;
+
}
+
  
 
==== Remove sidebar width restrictions ====
 
==== Remove sidebar width restrictions ====
{{bc|
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css|
 
/* remove maximum/minimum  width restriction of sidebar */
 
/* remove maximum/minimum  width restriction of sidebar */
#sidebar {max-width: none !important; min-width: 0px !important;}
+
#sidebar {
 +
    max-width: none !important;
 +
    min-width: 0px !important;
 +
}
 
}}
 
}}
  
 
=== Web content CSS settings ===
 
=== Web content CSS settings ===
In {{ic|userContent.css}} you can add custom css rules for web content. Examples:  
+
This section deals with the {{ic|userContent.css}} files in which you can add custom CSS rules for web content. You can import other CSS files by adding to the file:
{{bc|1=
+
 
/* import other css file */
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|
 
@import url("./imports/some_file.css");
 
@import url("./imports/some_file.css");
 +
}}
  
/* block ads */
+
==== Block ads ====
 +
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|<nowiki>
 
*[class*="advertisement"],
 
*[class*="advertisement"],
 
*[class*="partners"],
 
*[class*="partners"],
Line 249: Line 258:
 
a:link[href*="/adview"]
 
a:link[href*="/adview"]
 
{  
 
{  
     display: none !important
+
     display: none !important;
}
+
}</nowiki>
 +
}}
  
/* domain specific rule */
+
==== Block certain parts of a domain ====
@-moz-document domain(example.com){  
+
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|
        div#header{background-image:none !important}  
+
@-moz-document domain(example.com) {
 +
    div#header {
 +
        background-image: none !important;
 +
    }  
 
}
 
}
 +
}}
  
/* add '[pdf]' next to to pdf links */
+
==== Add [pdf] after links to PDF files ====
 +
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|<nowiki>
 +
/* add '[pdf]' next to links to PDF files */
 
a[href$=".pdf"]:after {
 
a[href$=".pdf"]:after {
 
     font-size: smaller;
 
     font-size: smaller;
 
     content: " [pdf]";
 
     content: " [pdf]";
}
+
}</nowiki>
 +
}}
  
/* show url in bottom of screen when hovering over link */
+
==== Show URLs at the bottom of the screen when hovering a link ====
 +
{{hc|~/.mozilla/firefox/<profile_dir>/chrome/userContent.css|
 
a[href]:hover {
 
a[href]:hover {
 
     text-decoration: none !important;
 
     text-decoration: none !important;
 
}
 
}
 +
 
a[href]:hover:after {
 
a[href]:hover:after {
 
     content: attr(href);
 
     content: attr(href);
Line 278: Line 297:
 
     opacity: 0.7;
 
     opacity: 0.7;
 
     z-index: 9999;
 
     z-index: 9999;
}
+
}</nowiki>
 
+
 
+
 
}}
 
}}
  
 
== Miscellaneous ==
 
== Miscellaneous ==
  
=== Viewing PDF/PS inside Firefox===
+
=== Viewing PDF/PS files inside Firefox===
  
If you do not want for some reason to install Adobe Acrobat Reader for exploiting the feature to see PDF inside Firefox, you can use other software. Here is an example of opening a pdf/ps or any other document type supported by evince (default viewer in GNOME) without opening a new window. For other PDF viewers, just replacing "evince" with the name of the program.  
+
If you do not want to install Adobe Acrobat Reader for PDF viewing Firefox, you can use other application. Here is an example of opening a PDF/PS file or any other document type supported by Evince (the default viewer in [[GNOME]]) without opening a new window. For other PDF viewers, just replacing {{ic|evince}} with the name of the program.  
  
* Install mozplugger (in this moment is in AUR) and evince (in extra)
+
* Install {{Pkg|evince}} from the [[official repositories]] and {{AUR|mozplugger}} from the [[AUR]].
  
* Delete ~/.mozilla/firefox/*.default/pluginreg.dat (as mentioned after mozplugger installation)
+
* Delete {{ic|~/.mozilla/firefox/<profile_dir>/pluginreg.dat}} (as mentioned after the mozplugger installation).
  
* Edit /etc/mozpluggerrc: find the line containing "pdf" word, after "GV()" edit evince line as below:
+
* Edit {{ic|/etc/mozpluggerrc}}: find the line containing {{ic|pdf}}, edit the line after {{ic|GV()}} as below:
  
  #repeat noisy fill exits: evince "$file"
 
 
   repeat noisy swallow(evince) fill: evince "$file"
 
   repeat noisy swallow(evince) fill: evince "$file"
  
{{Note|you must place comments at the very beginning of the line to avoid errors}}
+
* Finally, restart Firefox and check {{ic|about:plugins}} to see if mozplugger was correctly installed.
  
* Finally, close (if not yet) and reopen firefox (now you can see a new plugin called mozplugger)
+
* Try to open a PDF file.
  
* Try to open a pdf sample
+
=== Mouse wheel scroll speed ===
  
=== Wheel mouse scroll speed ===
+
To modify the default values (i.e. speed-up) of the mouse wheel scroll speed, go to {{ic|about:config}} and search for {{ic|mousewheel.withnokey}}. This should show multiple options, modifying the following:
 +
* Set {{ic|mousewheel.withnokey.sysnumlines}} to '''false'''.
 +
* Set {{ic|mousewheel.withnokey.numlines}} to the desired number of lines per scroll into the box (12, for example).
  
To modify the default values (i.e. speed-up) of the wheel mouse scroll speed, type the following into Firefox's address bar:
+
Restart Firefox for this setting to take effect.
about:config
+
Now enter the following into the 'filter' dialog: '''mousewheel.withnokey'''
+
  
*Double-click the entry entitled, '''mousewheel.withnokey.sysnumlines''' and thereby setting its value to '''false'''
+
Alternatively you can install the [http://smoothwheel.mozdev.org/ SmoothWheel add-on].
*Double-click the entry entitled, '''mousewheel.withnokey.numlines''' and enter the desired number of lines per movement into the box (12, for example).
+
  
Restart firefox for this setting to take effect.
+
=== Change the order of of search engines in the Firefox Search Bar ===
 +
You can easily change the order the search engines are displayed in by:
 +
* Open the drop-down list of search engines and click ''Manage Search Engines...'' entry.
 +
* Highlight the engine you want to move and use ''Move Up'' or ''Move Down'' to move it. Alternatively, you can use drag-and-drop.
  
Alternatively you can install [http://smoothwheel.mozdev.org/ SmoothWheel add-on].
+
=== How to open a *.doc automatically with Abiword or LibreOffice Writer ===
 
+
Go to ''Preferences > Applications'' and search for ''Word Document'' (or ''Word 2007 Document'' for {{ic|*.docx}}). After finding it, click the drop-down list and select ''Use other...''. From there you have to specify the exact path to the Abiword or Writer executable (i.e.{{ic|/usr/bin/abiword}} or {{ic|/usr/bin/lowriter}}).
=== Change the order of searchplugins list ===
+
You can now (in Firefox 3) change the order in the GUI:
+
* Open the dropdown list of search engines and click Manage Search Engines
+
* Highlight the Engine you want to move and use Move Up or Move Down to move it.
+
 
+
=== How to open a *.doc automatically with abiword or open office ===
+
Click through the following menus:
+
*Edit
+
*Preferences
+
*File types
+
*Manage
+
*Select the {{ic|doc}} extension
+
*Select ''Open them with this application''
+
*Select {{ic|/usr/bin/abiword}} or {{ic|/usr/bin/soffice}}
+
 
+
There is also a plugin/addon called mime edit. This addon will let you edit the mime types for firefox.
+
  
 
=== Secure DNS with DNSSEC validator ===
 
=== Secure DNS with DNSSEC validator ===
Line 338: Line 340:
  
 
=== Adding magnet protocol association ===
 
=== Adding magnet protocol association ===
In {{ic|about:config}} add the following:
+
In {{ic|about:config}} set {{ic|network.protocol-handler.expose.magnet}} to '''false'''.
network.protocol-handler.expose.magnet
+
 
Set it's initial value to '''false'''.
+
The next time you open a magnet link, you will be prompted with a {{ic|Launch Application}} dialogue. From there simply select your chosen torrent client. This technique can also be used with other protocols.
When you open a magnet link you will be prompted with a {{ic|Launch Application}} dialogue. From there simply select your chosen torrent client.
+
This technique can also be used with other protocols.
+

Revision as of 11:01, 7 October 2012


Summary help replacing me
This page contains advanced Firefox configuration options and performance tweaks.
Related
Firefox
Browser Plugins
Firefox Ramdisk

Performance

Improving Firefox's performance is divided into parameters that can be inputted while running Firefox or otherwise modifying its configuration as intended by the developers, and advanced procedures that involve foreign programs or scripts.

Note: Always use the latest version of Firefox.

Advanced Firefox options

Network settings

Advanced network settings can be found on the about:config page (try searching for network). For additional information regarding performance tweaking see this Mozillazine forum post.

Recommended values for a 1.5Mb connection
Key Value Description
network.http.pipelining true Enable pipelining for normal connections
network.http.proxy.pipelining true Enable pipelining for proxy connections
network.http.pipelining.maxrequests 8 Maximum HTTP requests per pipeline
network.http.max-connections 64 Maximum number of total HTTP connections
network.http.max-connections-per-server 16 Maximum number of any type of connections per server
network.http.max-persistent-connections-per-proxy 16 Maximum number of keep-alive type connections per proxy
network.http.max-persistent-connections-per-server 8 Maximum number of keep-alive type connections per server
network.dns.disableIPv6 true Disable IPv6 support
Note: These settings need to be configured based on your connection.

Turn off anti-phishing

Note: Deleting files from your profile folder is potentially dangerous, so it is recommended that you back it up first.

The anti-phishing features of Firefox may cause Firefox to become slow to start or exit. The problem is that Firefox maintains an Sqlite database that can grow quite big which makes reading and writing slower after repeated use. If you feel that you do not need Firefox to tell you which sites may be suspect you can disable this feature:

  • Turn off the following options under the security tab in preferences: "Block reported attack sites" and "Block reported web forgeries".
  • Delete all files beginning with urlclassifier in your profile folder (~/.mozilla/firefox/<profile_dir>/):
$ rm -i ~/.mozilla/firefox/<profile_dir>/urlclassifier*
Some of these files might be recreated by Firefox, but they won't grow any larger than their initial size.

Stop urlclassifier3.sqlite from being created again

If you did remove all the urlclassifier* files as mentioned above, you may find out that urlclassifier3.sqlite keeps growing again after a certain time. Here is a simple solution to avoid it for now and ever.

$ cd ~/.mozilla/firefox/<profile_dir>
$ echo "" > urlclassifier3.sqlite
$ chmod 400 urlclassifier3.sqlite

This effectively makes the file empty and then read-only so Firefox cannot write to it anymore.

Improve font rendering by disabling pango

To disable Pango font handling in Firefox, add:

export MOZ_DISABLE_PANGO=1

to your ~/.profile (or /etc/profile for all users) and re-login for the change to take place.

Note: Exporting the setting may also fix font issues for the entire Mozilla suite.

Other modifications

This section contains some other modifications that may increase Firefox's performance.

Reduce load time by compressing the Firefox binary with UPX

UPX is an executable packer that supports very fast decompression and induces no memory overhead.It can be installed with the upx package, availalble in the official repositories.

Before using upx to compress the Firefox executable, make a backup of the binary:

# cp /usr/lib/firefox/firefox /usr/lib/firefox/firefox.backup

Finally, invoke upx, applying the best possible compression level:

# upx --best /usr/lib/firefox/firefox

Defragment the profile's SQLite databases

Warning: This procedure may damage the databases in such a way that sessions are not saved properly.

In Firefox 3.0, bookmarks, history, passwords are kept in an SQLite databases. SQLite databases become fragmented over time and empty spaces appear all around. But, since there are no managing processes checking and optimizing the database, these factors eventually result in a performance hit. A good way to improve start-up and some other bookmarks and history related tasks is to defragment and trim unused space from these databases.

profile-cleanerAUR in the AUR does just this.

Sample size differences comparison
SQLite database Size Before Size After  % change
urlclassifier3.sqlite 37 M 30 M 19 %
places.sqlite 16 M 2.4 M 85 %

Cache the entire profile into RAM via tmpfs

If the system has memory to spare, tmpfs can be used to cache the entire profile directory, which might result in increased Firefox responsiveness.

Appearance

Fonts

Template:Box

Configure the DPI value

Modifying the following value can help improve the way fonts looks in Firefox if the system's DPI is below 96. Firefox, by default, uses 96 and only uses the system's DPI if it is a higher value. To force the system's DPI regardless of its value, type about:config into the address bar and set layout.css.dpi to 0.

In Xfce, the above method only affects the Firefox user interface's DPI settings, but web page contents still use a DPI value of 96, which may look ugly. A solution is to change layout.css.devPixelsPerPx to system's DPI divided by 96. For example, if your system's DPI is 142, then the value to add is 142/96 = 1.48. Changing layout.css.devPixelsPerPx to 1.48 makes web page contents use a DPI of 142, which looks much better.

Default font settings from Microsoft Windows

Below are the default font preferences when Firefox is installed in Microsoft Windows. Many web sites use the Microsoft fonts.

Proportional: Serif Size (pixels): 16
Serif: Times New Roman
Sans-serif: Arial
Monospace: Courier New Size (pixels): 13

General user interface CSS settings

Firefox's user interface can be modified by editing the userChrome.css and userContent.css files in ~/.mozilla/firefox/<profile_dir>/chrome/ (profile_dir is of the form hash.name, where the hash is an 8 character, seemingly random string and the profile name is usually default).

Note: The chrome/ folder and userChrome.css/userContent.css files may not necessarily exist, so you have to create them.

This section only deals with the userChrome.css file which modifies Firefox's user interface, and not web pages.

Change the font

The setting effectively overrides the global GTK+ font preferences, and does not affect webpages, only the user interface itself:

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
* {
    font-family: "FONT_NAME";
}

Hide button icons

Enables text-only buttons:

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
.button-box .button-icon {
    display: none;
}

Hiding various tab buttons

These settings hide the arrows that appear to the horizontal edges of the tab bar, the button that toggles the "all tabs" drop-down list, and the plus sign button that creates a new tab.

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
/* Tab bar */

.tabbrowser-strip *[class^="scrollbutton"] {
    /* Hide tab scroll buttons */
    display: none;
}

.tabbrowser-strip *[class^="tabs-alltabs"] {
    /* Hide tab drop-down list */
    display: none;
}

.tabbrowser-strip *[class^="tabs-newtab-button"] {
    /* Hide new-tab button */
    display: none;
}

Horizontal tabs

To place the tab bar horizontally stacked along the sides of the browser window:

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
/* Display the tabbar on the left */
#content > tabbox {
    -moz-box-orient: horizontal;
}

.tabbrowser-strip {
    -moz-box-orient: vertical;
    /*
     * You can set this to -moz-scrollbars-vertical instead,
     * but then the scrollbar will *always* be visible.  this way
     * there is never a scrollbar, so it behaves like the tab bar
     * normally does
     */
     overflow: -moz-scrollbars-none;
}

.tabbrowser-tabs {
    -moz-box-orient: horizontal;
    min-width: 20ex;   /* You may want to increase this value */
    -mox-box-pack: start;
    -moz-box-align: start;
}

.tabbrowser-tabs > hbox {
    -moz-box-orient: vertical;
    -moz-box-align: stretch;
    -moz-box-pack: start;
}

.tabbrowser-tabs > hbox > tab {
    -moz-box-align: start;
    -moz-box-orient: horizontal;
}

Auto-hide Bookmarks Toolbar

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
#PersonalToolbar {
    visibility: collapse !important;
}

#navigator-toolbox:hover > #PersonalToolbar {
    visibility: visible !important;
}

Remove sidebar width restrictions

~/.mozilla/firefox/<profile_dir>/chrome/userChrome.css
/* remove maximum/minimum  width restriction of sidebar */
#sidebar {
    max-width: none !important;
    min-width: 0px !important;
}

Web content CSS settings

This section deals with the userContent.css files in which you can add custom CSS rules for web content. You can import other CSS files by adding to the file:

~/.mozilla/firefox/<profile_dir>/chrome/userContent.css
@import url("./imports/some_file.css");

Block ads

~/.mozilla/firefox/<profile_dir>/chrome/userContent.css
*[class*="advertisement"],
*[class*="partners"],
*[class*="sidebaner"],
*[class*="banner"],
*[class*="adview"],
*[class*="promo"],
*[class*="ad_"],
*[name*="werbung"],
*[name*="banner"],
*[id*="banner"],
*[id*="ad_"],
iframe[src*="euroclick.com"],
iframe[src*="/partners/"],
iframe[src*="/adview"],
img[src*="euroclick.com"],
img[src*="/partners/"],
img[src*="/adview"],
embed[src*="Banner"],
embed[src*="banner"],
a:link[href*="euroclick.com"], 
a:link[href*="/partners/"],
a:link[href*="/adview"]
{ 
    display: none !important;
}

Block certain parts of a domain

~/.mozilla/firefox/<profile_dir>/chrome/userContent.css
@-moz-document domain(example.com) {
    div#header {
        background-image: none !important;
    } 
}

Add [pdf] after links to PDF files

~/.mozilla/firefox/<profile_dir>/chrome/userContent.css
/* add '[pdf]' next to links to PDF files */
a[href$=".pdf"]:after {
    font-size: smaller;
    content: " [pdf]";
}

Show URLs at the bottom of the screen when hovering a link

~/.mozilla/firefox/<profile_dir>/chrome/userContent.css
a[href]:hover {
    text-decoration: none !important;
}

a[href]:hover:after {
    content: attr(href);
    position: fixed; left: 0px; bottom: 0px;
    padding: 0 2px !important;
    max-width: 95%; overflow: hidden;
    white-space: nowrap; text-overflow: ellipsis;
    font:10pt sans-serif !important;
    background-color: black  !important;
    color: white !important;
    opacity: 0.7;
    z-index: 9999;
}</nowiki>

Miscellaneous

Viewing PDF/PS files inside Firefox

If you do not want to install Adobe Acrobat Reader for PDF viewing Firefox, you can use other application. Here is an example of opening a PDF/PS file or any other document type supported by Evince (the default viewer in GNOME) without opening a new window. For other PDF viewers, just replacing evince with the name of the program.

  • Delete ~/.mozilla/firefox/<profile_dir>/pluginreg.dat (as mentioned after the mozplugger installation).
  • Edit /etc/mozpluggerrc: find the line containing pdf, edit the line after GV() as below:
  repeat noisy swallow(evince) fill: evince "$file"
  • Finally, restart Firefox and check about:plugins to see if mozplugger was correctly installed.
  • Try to open a PDF file.

Mouse wheel scroll speed

To modify the default values (i.e. speed-up) of the mouse wheel scroll speed, go to about:config and search for mousewheel.withnokey. This should show multiple options, modifying the following:

  • Set mousewheel.withnokey.sysnumlines to false.
  • Set mousewheel.withnokey.numlines to the desired number of lines per scroll into the box (12, for example).

Restart Firefox for this setting to take effect.

Alternatively you can install the SmoothWheel add-on.

Change the order of of search engines in the Firefox Search Bar

You can easily change the order the search engines are displayed in by:

  • Open the drop-down list of search engines and click Manage Search Engines... entry.
  • Highlight the engine you want to move and use Move Up or Move Down to move it. Alternatively, you can use drag-and-drop.

How to open a *.doc automatically with Abiword or LibreOffice Writer

Go to Preferences > Applications and search for Word Document (or Word 2007 Document for *.docx). After finding it, click the drop-down list and select Use other.... From there you have to specify the exact path to the Abiword or Writer executable (i.e./usr/bin/abiword or /usr/bin/lowriter).

Secure DNS with DNSSEC validator

You can enable DNSSEC support for safer browsing.

Adding magnet protocol association

In about:config set network.protocol-handler.expose.magnet to false.

The next time you open a magnet link, you will be prompted with a Launch Application dialogue. From there simply select your chosen torrent client. This technique can also be used with other protocols.