How to customise the Unit Converter Widget in Mac OS X Dashboard

Dashboard! What a cool app – there when you need it, gone when you don’t. That’s my idea of usefulness.

Now one of the Widgets I use the most is the Unit Converter widget. It’s very handy indeed and saves me having to browse through half a dozen Google results to find the conversion that I need.

However, for one reason or another, I was brought up to measure my weight in Stones – these don’t seem to relate to anything real except bodyweight and unfortunately I can only appreciate my weight in these terms (Kg mean nothing to me, though suffice it to say I have a lot of them!).

Unit Converter doesn’t have a facility for converting between Stones and Kilograms at present but actually adding one is very simple – all the information is contained in one script file that’s part of the widget and in fact the hardest part of the operation is changing the permissions on the file. This should work for any other type of conversion you wish to add as well.

Here’s how to do it:

This operation will require you to restart Dashboard (I think), which could mean you having to restart your mac. Ideally the best time to make this change is after you’ve booted up and before you start Dashboard up. That way, you can save your change, hit F12 and see it working straight away.

1) Launch Finder and browse to the Library folder on your hard disk

2) Browse to the Widgets folder

3) Ctrl-click the Unit Converter widget and choose Show Package Contents from the options

4) Now make a copy of Conversions.js to be on the safe side (you will need to enter your password to do this)

5) Highlight Conversions.js and Get Info on it

6) Here you will need to change the Ownership & Permissions on the file so that you can Read & Write it. You will need to enter your password again

OK, here’s the fun bit

7) Open up Conversions.js in a text editor.
You will see it’s made up of blocks for each of the conversion types, which look something like this

so you can see, all we need to do is add another line in there with our conversion in it. Now the way that the Unit Converter appears to work is that for each set of units, it has a base unit – in this case it is Kilograms and you can see that the conversion ratio for Kilograms is 1.0. Whenever a conversion is made, the unit is first converted to the base unit, and then converted to the required unit.

Looking at an entry, for example

{name: ‘Gram’, toBase:invLinForm(1000), fromBase:linearForm(1000)}

you can see that the key information we need to put in to create a new entry is a name and a single figure, that being the amount of the new unit (Gram) per one of the base unit (Kilogram), that is, 1000.

To create a new conversion, we need to get that ratio. I went here and retrieved the following information:

1 kilogram is equal to 0.15747304441777 stones.

so all we have to do now, is go to the bottom of the weights block and:

1) Add a comma, after the final conversion (Grams), so the end of the line looks like this

… fromBase:linearFrom(1000)},

2) Put in the following line after the last entry but before the closing square bracket
{name:’Stones’, toBase:invLinForm(0.15747304441777), fromBase:linearForm(0.15747304441777)}

3) Save the file and fire up Dashboard

Here’s a copy of the complete and working file:

Conversions script updated to include Stones

Troubleshooting

You will know if it has worked because Unit Converter will run the way it always does and Stones will now be an option to choose from. If you find that you can’t select any units and the image across the top does not look right, then there’s something wrong with your update to the script: you’ve missed a comma, a quote or a bracket or brace or square bracket. Go back and look at it. In the worst case scenario, you can copy your original backup of conversions.js over the new one but you will need to restart Dashboard and possibly your Mac for it to work again.

One thought on “How to customise the Unit Converter Widget in Mac OS X Dashboard

  1. Further to the original posting, I wanted to say that with this information, it should be easy to add in any other conversion you want, or even to extend the Unit Converter to cover entirely different conversions – density conversions, hard drive bite sizes, approximate number of audio tracks per 1Gb of disk space.

Leave a Reply