Help - Search - Members - Calendar
Full Version: [Firefox3] Removing Menu Bloat (Guide)
Neowin Forums > Help & Discussion Center > A Collection of Essential Guides
shakey_snake
With the release of Firefox 3 RC1, Firefox3 is right around the corner, so I figure this is the perfect time to share with everyone a fix to a common annoyance: There's just too many menu items, and 99% of people never use half of them. Add a couple of Extensions, and the next time you right-click it might take you an extra 15 seconds to wade through all the options to find the actual functionality you are looking for.

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.
For the most part, Firefox uses the same rendering engine to render it's interface that it does to draw webpages. There's pluses and minuses to this approach, but one of the positives is that it's very easy to customize, and in this context, remove menu items. All you need is a little CSS code, and things go away!

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. wink.gif
  • It gives you that 1337 feeling
    You know you love it.
Still, there will be those people who will be baffled by the below method. In that case Menu Editor is for you. (don't feel bad, just say that you "have a life" smile.gif )

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.My Code
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;}


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. pinch.gif


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



I hope you found this guide useful!
Gary7
Very useful Guide, thanks, I may put it to use.
Colin-uk
very nice guide thumbs_up.gif Ive used the menu editor since day 1 when using firefox, its the best extension ever imo tongue.gif
cJr.
Thank you very much shakey_snake for the idea (which I had never thought of before, but so needed!) and the actual content, detail and code you have put in the guide.

It's absolutely excellent and has helped me loads! smile.gif
Jay C
Something I didn't think about doing before but will be so handy.

Excellent, clear guide smile.gif
Quillz
Thanks for directing me to this very handy extension.
Primexx
awesome guide
Gary7
I found This Site to be very helpful if you have the Stylish extension or even if you don't as the code is there.
Dr.bAsem
very nice tuto man ... the new ff3 rc1 seems to be much better even tho none of my previous extensions or themes work on it yet ..

but now am kinda into opera .. its very easy and fast

quick question?

can i make a quick startup page in firefox like the one on opera if so then it would be awesome .. thanks in advance mate
Gary7
Quote - (Dr.bAsem @ May 28 2008, 19:15) *
very nice tuto man ... the new ff3 rc1 seems to be much better even tho none of my previous extensions or themes work on it yet ..

but now am kinda into opera .. its very easy and fast

quick question?

can i make a quick startup page in firefox like the one on opera if so then it would be awesome .. thanks in advance mate


The default start up page is Google. If by start up you mean Home Page?
Dr.bAsem
Quote - (Gary7 @ May 29 2008, 02:19) *
The default start up page is Google. If by start up you mean Home Page?


no i mean the quick start page in opera with 9 windows for different bookmarks

Gary7
Quote - (Dr.bAsem @ May 28 2008, 19:22) *
no i mean the quick start page in opera with 9 windows for different bookmarks


There is Speed Dial:

https://addons.mozilla.org/en-US/firefox/addon/4810
Dr.bAsem
Quote - (Gary7 @ May 29 2008, 02:25) *



OOHH my god dude .. ur fast

i dunno what to say .. thanks alot for all ur troubles u really made my day with this biggrin.gif


cheers mr.gary
Gary7
Quote - (Dr.bAsem @ May 28 2008, 19:43) *
OOHH my god dude .. ur fast

i dunno what to say .. thanks alot for all ur troubles u really made my day with this biggrin.gif


cheers mr.gary


No Problem! smile.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.