Moving happens via drag and drop, everything else (currently) via right clicking on the menu or attribute pane.
MenuManipulator should work with Firefox, Thunderbird, SeaMonkey, and any other XULRunner Application.
Gecko Bugs / Limitations:
- Setting some specific attributes corrupts the .attributes list (should be harmless in most cases).
- Setting attributes which are <observe>d (maybe from a <command>) will likely fail.
- User created Top Level <menu>s without a style attribute are invisible as the core (incorrectly) assumes that they are empty.
Notes:
- Future version might not be backward compatible.
- If an extension (or an app update) adds/removes <menuseparator>s or <menu><menupopup> constructs without an id, some actions might be applied to the wrong items.
- The MenuManipulator dialog tries to avoid generated menu items as these can mix up move actions, but since there is no easy way detecting these, some might still be listed.
- If you disable an extension which adds menu items, it is advisable to reset these specific items or there is a chance that some move actions are misinterpreted.
Other extensions:
- Menu Editor
- Personal Menu (Personal Firefox Button)
- S3.Menu Wizard
Configurations:
Code: Select all
prefs.js: (use about:config to edit these)
// Set the number of fallbacks the Move action should use
user_pref("menumanipulator.Move.fallbacks", 0);
// Module('UIHook'); adds a menuitem to all windows matching this pref
user_pref("menumanipulator.UIHook", "");
// Don't check any code for syntax
user_pref("menumanipulator.editor.checkSyntax", "^$");
// Code which will be run in every window
user_pref("menumanipulator.global.20140526", "Module('UIHook');");
// Run also in chrome tabs (about:config, etc)
user_pref("menumanipulator.observe", "chrome-document-global-created");
// Determines if the state of an item should be saved along with other edits
user_pref("menumanipulator.saveState", true);
// Try using Orion (Firefox ESR 24) or CodeMirror (Firefox 26+)
user_pref("menumanipulator.source-editor", true);
// Disable code folding in CodeMirror (Firefox 26+)
user_pref("menumanipulator.source-editor.enableCodeFolding", false);
// Show trailing space in CodeMirror (Firefox 26+)
user_pref("menumanipulator.source-editor.showTrailingSpace", true);
userChrome.css:
/* Don't highlight changes */
#menumanipulator-window treechildren::-moz-tree-cell-text(created),
#menumanipulator-window treechildren::-moz-tree-cell-text(moved),
#menumanipulator-window treechildren::-moz-tree-cell-text(modified) {
font-weight: normal !important;
}
Changes:
20140526:
- Restructured the service to workaround an issue preventing the global pref to be set for new profiles (causing limited functionality)
- Restructured the .xpi (removed the .zip, moved everything except defaults and locale to top)
- Restored Icons and Treelines
- Rows and Cells can be styled now (properties: created, moved, modified)
- The Edit window now persists position and size
- Increased the default size of the main window
- UIHook will now try the first menupopup if the alternatives are missing
- New menumanipulator.observe pref controlling which window types the service should observe
- New menumanipulator.editor.checkSyntax pref controlling which attributes should be checked for syntax errors
- New menumanipulator.source-editor pref controlling if Orion (Firefox ESR 24) or CodeMirror (Firefox 26+) should be used
- New menumanipulator.source-editor.* prefs controlling CodeMirror settings
- Added "use strict"; to various code
- Added support for anonymous tabContextMenu (Instantbird)
- Removed the workaround for problems introduced by bug 300412 and bug 254021 (not needed anymore)
- Removed nsDragAndDrop and reworked depending code
- Removed SetTab for Firefox (not needed anymore)
- Removed <command> from overlay.xul and moved attributes directly to the <menuitem> (makes it easier to edit)
- Removed script type (not needed anymore thanks to bug 830665)
- Removed XPath.js (since the built-in XPath support can't be disabled anymore, see bug 304494)
- Removed code for obsolete applications
- Replaced deprecated Attr .nodeValue and .nodeName
- Replaced deleteBranch with a clearUserPref iterator
- Changed code to use Services.jsm where possible
- Changed Module and Load to pass UTF-8 to loadSubScript
- Changed Module and Load to reportError
- Changed code to use children/nextElementSibling/previousElementSibling/firstElementChild/lastElementChild where possible
Full Changelog.