Lighthouse is “beautifully simple issue tracking” (a hosted bugtracker to you and me). It looks great and is pretty much a joy to use.
At work we use Trac. Trac is a locally-installed bugtracker (plus wiki and source browser). It looks like a nightmare and there are parts which make the baby Jesus cry.
With that in mind, here is a greasemonkey script that makes Trac look like Lighthouse. It turns this:
(ticket titles hidden to protect the innocent!)
So far it has made my Trac usage much more enjoyable. I should point out that this is a tribute to Lighthouse, and I’ve not copied any of their actual CSS or images.
Be warned that it dials userscripts.org once every two weeks to see if there’s an update (since I’m sure there’s loads of things that I’ve missed and will fix as I go). To disable that, just remove lines 11-15 (the call to autoUpdateFromUserscriptsDotOrg).
We also use a couple of other simple Greasemonkey scripts for Trac at work (most of which are on our wiki here). A number of them were learning exercises, so YMMV. Caveat installer 🙂
 Of course, I do actually like Trac, or we wouldn’t be using it. It’s a great tool with excellent extensbility and plugins, but the UI could definitely do with some love!
This is a summary of what I got from the Trac installation instructions here, here, here and here. My life would have been easier if I was running Apache2, but for the site in question, I’m not.
The version numbers I am working with:
- apache – 1.3.34-4.1
- python – 2.4.4-2
- libapache-mod-python 2:2.7.11-2
- Trac 0.11b2
Install easy_install, followed by the Trac requirements:
$ easy_install Pygments
$ easy_install Genshi
$ easy_install Trac
$ easy_install sqlite
$ apt-get install libapache-mod-python
$ apt-get install python-pysqlite2
$ cd ~
$ mkdir trac/myprojectname
$ trac-admin trac/myprojectname initenv
(enter the details you need or just keep hitting to accept the defaults – it’s all configurable later)
Type the tracd line given to you at the end of the install and make sure it runs (probably need your IP at this point because it won’t bind to a hostname).
Add this inside your VirtualHost:
PythonOption TracEnv /absolute/path/trac/myprojectname
PythonOption TracUriRoot /wherever/you/like
Patch /usr/lib/python2.4/site-packages/Trac-0.11b2-py2.4.egg/trac/web/modpython_frontend.py with code from http://trac.edgewall.org/wiki/TracModPython2.7 (yes, it’s all needed) – the “Known Issues” at the end of the code apply, most notably “There may be a character set issue” – for me this manifested itself in the <title> element of the page with a “â€“” separating my project name from the word “Trac” rather than a long hypen.