Some menu entries are redundant, archaic and/or pointless. When was the last time you needed to use File -> Send Link... to email a link to someone? Probably quicker to fire off an IM, right? File->Open Location does nothing more than focuses on the Location bar. Tools->Web Search does nothing more than change focus to the Search Bar. I don't get it either.
And somethings are just easier to do some other way. Why Right-click and select "Back" from the context menu when 99.9% of the time you click the big new keyhole shaped back button? Maybe you're not a keyboard shortcut junkie, but I bet you probably have used Ctrl+X, Ctrl+C and Ctrl+V to cut, copy and paste before. Maybe you've even dabbled in Ctrl+A (Select All), or know that Ctrl+B and Ctrl+H open the Bookmark and History sidebars. Maybe you've installed one of the many mouse gesture extensions or do what I do and use mouse gestures in all of windows. Do you really need 50 menu entries to do those things then? No WAY!
Some Basics
There's basically two areas of focus for bloat removal:
- The Context Menu, which is what pops up when you right-click on a web page,
- and the Main Menu which is found on the toolbar.
Another note: this guide is specific to Firefox 3, and some things will not work with older versions. The reason for this being that some of the CSS code which identifies the individual elements and classes has been changed. This change may also mean that some code that you find elsewhere on the web may not be up to date with Firefox3, and thus may not work.
So lets get started!
Menu Editor
Like almost anything when it comes to customizing Firefox, there's the efficient-but-unfriendly way of doing things and then there's they somebody-already-wrote-an-extension-for-this way. Menu Editor is that extension.

The interface is clean and obvious, so I won't go into a lot of detail about this extension in this guide. But it should be noted that Menu Editor has an advantage over the below method. It allows you to re-arrange items in the lists, via drag and drop. This is beyond the scope of the simple .css knowledge I have or have been able to find elsewhere on the web.
Menu editor is kept up to date rather well, and currently works flawlessly with Firefox3 RC1.
userChrome.css
Now, the "nuts and bolts" way of removing menu items is to edit Firefox's configuration files with a text editor. Why do this when there is MenuEditor you may ask? Well, there's a few reasons:
- You don't need to install an extension for everything
When people get into the mindset that they do, they eventually run into some sort of compatibility problems and think there's something wrong with firefox. - Installing extensions slows down Firefox.
Each extension adds more code to Firefox which can cause longer load/unload times and more memory use. And if you're the kind of person who's trying to escape menu bloat, you probably appreciate avoiding extension bloat. - You only have to do it once
Menu Editor is probably an interface you'll only interact with once or twice. So why would you want to have it installed all the time? - No compatibility issues
You don't have to worry about userChrome.css refusing to load when you upgrade Firefox like you would an extension. Sure, a few individual identifiers may break on the next major backend change (Gecko 2.0), but most things will probably stay the same. - Menu Editor adds another thing to click.
And you hate irony.
- It gives you that 1337 feeling
You know you love it.
Basic questions
Here are some basic questions that I'm not going to bother to answer, because Mozilla already gives better answers than I ever could. Just click the link if you need the answer.
- So what is userChrome.css?
- How do I Create/Edit/Remove userChrome.css?
- Where is my profile folder? (where userChrome.css belongs)
The following is a slight derivation of my code that I use each and every day. Basically I make use of the keyboard shortcuts I listed above in the intro, and have removed all the redundant and flat out useless menu entries. I've tweaked it slightly because I remove the bookmarks menu, and I figure that is probably a little too much for most people.
It should also be noted that this code is optimized for Windows. Mac versions of Firefox (and Linux to a lesser extent) moves some things around to be in tune with their interface guidelines.
Quote -
/*=========================Removing Unnecessary Items=================== */
/* Remove the Edit and Bookmarks menu*/
#navigator-toolbox menu[label="Edit"],
/*#navigator-toolbox menu[label="Bookmarks"],*/
/* Remove Main Menu Items*/
/*File Menu*/
#navigator-toolbox menuitem[label^="New Tab"],
#navigator-toolbox menuitem[label^="Open Location"],
#navigator-toolbox menuitem[label^="Open File"],
#navigator-toolbox #menu_sendLink,
#navigator-toolbox menuitem[label="Close Window"],
#navigator-toolbox menuitem[label="Close Tab"],
#navigator-toolbox menuitem[label^="Close Tab"] + menuseparator,
#navigator-toolbox menuitem[label^="Import"] + menuseparator,
/*View Menu*/
#navigator-toolbox menu[label="Toolbars"],
#navigator-toolbox menu[label="Sidebar"],
#navigator-toolbox menuitem[label="Stop"],
#navigator-toolbox menuitem[label="Reload"],
#navigator-toolbox menuitem[label="Reload"] + menuseparator,
/*History Menu*/
#navigator-toolbox menuitem[label="Back"],
#navigator-toolbox menuitem[label="Forward"],
#navigator-toolbox menuitem[label="Home"],
/*Bookmarks Menu*/
#navigator-toolbox menuitem[label="Bookmark This Page"],
#navigator-toolbox #subscribeToPageMenuitem,
#navigator-toolbox menuitem[command="Browser:BookmarkAllTabs"],
#navigator-toolbox menu[label="Bookmarks Toolbar"],
#navigator-toolbox menu[label="Bookmarks Toolbar"] + menuseparator,
/*Tools Menu*/
#navigator-toolbox menuitem[label="Web Search"],
#navigator-toolbox menuitem[label="Web Search"] + menuseparator,
#navigator-toolbox #abp-menuitem,
#navigator-toolbox menuitem[label="Page Info"] + menuseparator,
/*Help Menu*/
#navigator-toolbox menuitem[label="For Internet Explorer Users"],
#navigator-toolbox menuitem[label="Report Web Forgery..."] + menuseparator,
/*Remove Tabbar Context Menu Items*/
.tabbrowser-strip menuitem[label="New Tab"],
.tabbrowser-strip menuitem[label="New Tab"] + menuseparator,
.tabbrowser-strip menuitem[label="Undo Close Tab"] + menuseparator,
.tabbrowser-strip menuitem[label="Close Tab"],
/*Remove Document (webpage) Context Menu Items*/
#context-openlink,
#context-openlinkintab,
#context-sep-open,
#context-bookmarklink,
#context-sendlink,
#context-viewimage,
#context-sendimage,
#context-setWallpaper,
#context-setDesktopBackground,
#context-blockimage,
#context-back,
#context-forward,
#context-reload,
#context-stop,
#context-sep-stop,
#context-bookmarkpage,
#context-savepage,
#context-sendpage,
#context-sep-viewbgimage,
#context-viewbgimage,
#context-cut,
#context-copy,
#context-paste,
#context-delete,
#context-sep-paste,
#context-selectall,
#context-sep-selectall,
#frame-sep,
#context-sep-properties,
#context-viewsource,
/* Hide the Updates Button regardless of update(s) status. */
toolbarbutton[type="updates"]
{display: none !important;}
/* Remove the Edit and Bookmarks menu*/
#navigator-toolbox menu[label="Edit"],
/*#navigator-toolbox menu[label="Bookmarks"],*/
/* Remove Main Menu Items*/
/*File Menu*/
#navigator-toolbox menuitem[label^="New Tab"],
#navigator-toolbox menuitem[label^="Open Location"],
#navigator-toolbox menuitem[label^="Open File"],
#navigator-toolbox #menu_sendLink,
#navigator-toolbox menuitem[label="Close Window"],
#navigator-toolbox menuitem[label="Close Tab"],
#navigator-toolbox menuitem[label^="Close Tab"] + menuseparator,
#navigator-toolbox menuitem[label^="Import"] + menuseparator,
/*View Menu*/
#navigator-toolbox menu[label="Toolbars"],
#navigator-toolbox menu[label="Sidebar"],
#navigator-toolbox menuitem[label="Stop"],
#navigator-toolbox menuitem[label="Reload"],
#navigator-toolbox menuitem[label="Reload"] + menuseparator,
/*History Menu*/
#navigator-toolbox menuitem[label="Back"],
#navigator-toolbox menuitem[label="Forward"],
#navigator-toolbox menuitem[label="Home"],
/*Bookmarks Menu*/
#navigator-toolbox menuitem[label="Bookmark This Page"],
#navigator-toolbox #subscribeToPageMenuitem,
#navigator-toolbox menuitem[command="Browser:BookmarkAllTabs"],
#navigator-toolbox menu[label="Bookmarks Toolbar"],
#navigator-toolbox menu[label="Bookmarks Toolbar"] + menuseparator,
/*Tools Menu*/
#navigator-toolbox menuitem[label="Web Search"],
#navigator-toolbox menuitem[label="Web Search"] + menuseparator,
#navigator-toolbox #abp-menuitem,
#navigator-toolbox menuitem[label="Page Info"] + menuseparator,
/*Help Menu*/
#navigator-toolbox menuitem[label="For Internet Explorer Users"],
#navigator-toolbox menuitem[label="Report Web Forgery..."] + menuseparator,
/*Remove Tabbar Context Menu Items*/
.tabbrowser-strip menuitem[label="New Tab"],
.tabbrowser-strip menuitem[label="New Tab"] + menuseparator,
.tabbrowser-strip menuitem[label="Undo Close Tab"] + menuseparator,
.tabbrowser-strip menuitem[label="Close Tab"],
/*Remove Document (webpage) Context Menu Items*/
#context-openlink,
#context-openlinkintab,
#context-sep-open,
#context-bookmarklink,
#context-sendlink,
#context-viewimage,
#context-sendimage,
#context-setWallpaper,
#context-setDesktopBackground,
#context-blockimage,
#context-back,
#context-forward,
#context-reload,
#context-stop,
#context-sep-stop,
#context-bookmarkpage,
#context-savepage,
#context-sendpage,
#context-sep-viewbgimage,
#context-viewbgimage,
#context-cut,
#context-copy,
#context-paste,
#context-delete,
#context-sep-paste,
#context-selectall,
#context-sep-selectall,
#frame-sep,
#context-sep-properties,
#context-viewsource,
/* Hide the Updates Button regardless of update(s) status. */
toolbarbutton[type="updates"]
{display: none !important;}
Understanding the Above
Now, I didn't fully syntax highlight the above there, but I did use green to highlight the comments (which are text ignored by the CSS interpreter). I used the comments to help organize the code into it's obvious sections so that you could better understand it.
The most important line in the very last one (the one I colored red). That is the actual property that hides the items. The rest of the lines are Identifiers which point to the menu items, separated by commas so that they are all associated to the last line. You could honestly put this last line after each individual identifier instead of the commas, but I personally think that is a bit less tiddy.
Another thing you may be wondering is why I put #navigator-toolbox in front of all my main menu commands (not all guides and examples will do this). Well, the answer is simple: that restricts it to that command found on the main menu.
Example:
Before the new "Places" feature of Firefox3, there was the old bookmark manager. That bookmark manger had an Edit menu. So if you wanted to remove the (IMO) pointless Edit menu from the main window and you didn't use #navigator-toolbox you also accidentally removed the (not so useless) edit menu from the bookmarks manager as well.
This caused me headaches many times.
Modifying the Above to Best Suit Your Needs
Obviously you and I may not have the exact same usage patterns. That's fine, you just need to tweak the above code then, to bet suit you.
If the above code is a little to "heavy-handed" for you, and you're really missing a menu item it removed, getting that menu item back is as easy as deleting or putting /*comment delimiters*/ around the item you want to bring back. Most of the names are self explanatory.
If there is an item you want to further remove, you can search the below links for the identifier, or ask here (I'll try to find it) or on the Mozillazine forums Or you can search them out with the DOM inspector.
I'm sure I can expand this section, so if you have any questions, ask them below.
Useful Links
- Mozillazine KB: Context Menu item ID's
- Extension mirror: tons of userchrome.css hacks
- Mozillazine forum: "Post your user files!" thread
- Aeon skin: Open this skin with an archiver and find the file menuicons.css inside. That file has pretty much every menuitem ID ever.
I hope you found this guide useful!
