Add custom items to main and meta navigation bar

There is an open ticket for integrating the functionality provided by this plugin into the Trac core. See trac:#11317.


Starting with release 0.11, Trac allows existing items in the main and meta navigation bar menu items to be customized, however it does not allow custom items to be added. This plugin allows you to add custom items ("buttons") to both the main and the meta navigation bar. Item name, title and URL can be specified in trac.ini, as well as an optional permission the user is required to have to see the item.

The plugin was inspired by and derived from NavMoverPlugin. In contrast to NavMoverPlugin this plugin does not hide navigation bars, which was the main motivation for creating this "fork".

See also: MenusPlugin, TracTabPlugin.

Fork: I have made a small fork on GitHub with some improvements/fixes. Feel free to suggest new. For example, it supports TracLinks syntax for url, so if a link works in the wiki page itself, it should also in the menu. Install with pip install NavAdd.

Bugs/Feature Requests

Existing bugs and feature requests for NavAddPlugin are here.

If you have any issues, create a new ticket.


4 / 6


5 / 9


1 / 1


Download the zipped source from here.


You can check out NavAddPlugin from here using Subversion, or browse the source with Trac.


General instructions on installing Trac plugins can be found on the TracPlugins page.


Enable in your trac.ini file with:

navadd.* = enabled

All configuration settings are to be kept in a section called [navadd] in trac.ini. The basic syntax is:

add_items = <item>,<item>,...
comma-separated list of items that will be added; only items that are listed here will be processed.

Note: All items need to be in lowercase. If you use any uppercase character it will not work.

And then for each item:

<item>.title = <title>
the name (title) of the button
<item>.url = <url>
the URL the button should link to; please note that TracLinks syntax is not supported here yet
<item>.perm = <permission>
an optional permission that a user needs to have in order to see the button. If unspecified, then all users will see the button.
<item>.target = <navbar_name>
the name of the navigation bar the button should be added to; only mainnav and metanav have been tested so far, other names probably work as well.

This is the configuration I use on to add a link to the imprint in the meta navigation bar, and a link to our download section on in the main navigation bar:

add_items = imprint,download
imprint.title = Impressum/Imprint
imprint.url = wiki/Impressum
#imprint.perm = WIKI_VIEW = metanav
download.title = Download
download.url =;package_id=85233
#download.perm = WIKI_VIEW = mainnav

The formats for the url parameter are the same as for the href parameter described at TracNavigation#Notes.

Ordering of buttons

Buttons which are added with this plugin can be ordered in the usual way, ie by specifying the actual order in section [trac], keywords mainnav and metanav in TracIni.

Let's assume that you add a button Download to your main navigation bar (same as in the configuration example above), and you want it to appear right after the Wiki button. The configuration then looks like:

mainnav = wiki,download,timeline,roadmap,browser,tickets,newticket

Recent Changes

13554 by rjollos on 2014-01-08 17:46:30
0.3: An href starting with a / is relative to the base URL, and absolute URLs are treated as such. Fixes #11443.

Removed some unused code. Thanks to ryank-inovonics for the patch.

13385 by rjollos on 2013-09-10 10:46:37
Refs #940: Refactor code to use a ListOption and add doc. Bumped version to 0.2.
13384 by rjollos on 2013-09-10 10:46:25
Renamed 0.9 directory to trunk`.


Author: otaku42
Maintainer: Michael Renzmann

Last modified 4 months ago Last modified on Feb 2, 2016, 11:57:30 PM