The idea: install Microsoft's Intellimouse drivers for Mac OS, and configure your mouse to use those drivers (by modifying the drivers themselves).
Pre-requisites: You will ideally have drivers for your mouse from your manufacturer (here's the link to Razer), or you have Developer tools installed. Having both is best. If you have a Razer DeathAdder 3500 DPI you don't need either of the above, I will provide my code.
Step-by-step instructions:
1. Download & Install Microsoft's Intelllipoint driver/utility for Mac OS. Restart.
2. Open Terminal in /Applications/Utilities. In Terminal:
cd /System/Library/Extensions/MicrosoftMouse.kext/Contents/PlugIns/MicrosoftMouseUSB.kext/
sudo chmod 777 Contents
cd Contents
sudo chmod 777 Info.plist
Leave this terminal window open.
3.a. If you do not have a for your mouse from its manufacturer but you have a Razer DeathAdder 3500DPI or you have developer tools.
i. If you have developer tools, but not the razer:
1. Run /Developer/Applications/USB Prober
2. Record the vendorID and productID for your mouse, see the image. + Show Spoiler +
![[image loading]](http://turing.bard.edu/~mt166/USBProber.gif)
3. Convert the ID's you recorded to decimal. + Show Spoiler +
For example here is how we convert 0x1532 = 2*1 + 3*16 + 5*16^2 + 1*16^3 = 5426; remember A=10, B=11, etc.
ii. In Terminal,
open Info.plistThis will open the Info.plist XML file in Property List Editor (comes with developer tools). (You can also open the XML file in TextEdit, but you have to be more careful.)
iii. If you have the razer, copy this: + Show Spoiler +
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.microsoft.driver.MicrosoftMouseUSB</string>
<key>HIDDefaultBehavior</key>
<string>Mouse</string>
<key>HIDPointerAccelerationTable</key>
<data>AACAAFVTQioABwAAAAAAAQABAAAAAQAAAAAgAAAQAABxOwAATOMABE7FAA03BAAFRAAAFIAAAAcsAAAj4AAACQAAADSwAAAK2AAARfAAAA0IAABXkAAAD2AAAGkAAAASEAAAeoAAABUAAACJAAAAF8AAAJEAAAAawAAAlrAAAB2QAACZsAAAIKAAAJswAAAj8AAAnDAAACewAACcMAAAAIAAABIAAHE7AABWfwAESgAADqAAAAY6AAAfQAAABygAACkAAAAI2AAAPGAAAAm4AABHQAAACrAAAFMwAAALwAAAYDAAAAzAAABsIAAADuAAAIQgAAARYAAAnSAAABQAAAC0AAAAFsAAAMcAAAAZoAAA1AAAABzgAADbAAAAIIAAAOAAAAAkQAAA4wAAACegAADjAAAAALAAABQAAHE7AABhTgAESgAAD2AAAAUyAAAXYAAABjIAACCgAAAHLAAALCAAAAgIAAA3oAAACOQAAENAAAAJwAAAUIAAAAqgAABfIgAAC5AAAG1wAAAMcAAAewAAAA6AAACYoAAAEMAAALYAAAATQAAA0gAAABZgAADpAAAAGiAAAPoAAAAdoAABAwAAACEgAAEHAAAAJIAAAQoAAAAnoAABDAAAAADgAAARAABxOwAAbXcABBoAABHwAAAFGgAAG/AAAAXwAAAmYAAABvwAADQAAAAITAAAT+AAAAlsAABt4AAACngAAI3AAAALsAAAtkAAAA1QAADZgAAAEQAAAPeAAAAVwAABEQAAABlgAAEgAAAAHUAAASgAAAAhAAABLgAAACSAAAEyAAAAJ4AAATUAAAAAUAAAEgAAcTsAAEuwAARMAAAOAAAABUAAABVQAAAHJAAAJiAAAAi0AAA1wAAACpAAAEmAAAAL6AAAVoAAAA0gAABiAAAADhgAAGrQAAAPGAAAdAAAABGQAACHgAAAFFAAAJoAAAAXYAAAqYAAABpgAAC0AAAAHVAAALkAAAAg0AAAvIAAACQgAAC9gAAAJ7AAAL6AAAABAAAAEAAAcTsAAFZ/AAO4AAASoAAABSAAACVAAAAGCAAAN4AAAAbwAABfAAAAB/AAAIoAAAAJKAAAyyAAAArwAAD3gAAADSAAARyAAAAQAAABOAAAABRAAAFKAAAAGQAAAVMAAAAc0AABVwAAACDgAAFbgAAAJCAAAV2AAAAnoAABXgAAAFJwAAAJlNEAWTAAAAoSaQBf8AAACpAAAGawAAAA4AAAHAABGFUAATAAAAGyKAAC8AAAAlNpAAagAAADb0oAENAAAAOteAAUWAAAA+ulABfgAAAEKdMAG2gAAARoAAAe8AAABKIBACKYAAAE2VYAJiAAAAUUqwApaAAABVAAACywAAAFgAEAMcgAAAW1VgA2QAAABeqrADq4AAAGIAAAPzAAAAZiAABD3AAABp6rAEh4AAAG21YATRQAAAcYAABRsAAAB3oBAFbcAAAH2VYAW/gAAAg4qwBhFAAACJgAAGYwAAAJFgEAbAAAAAmRVgBx0AAACgyrAHegAAAKiAAAfXAAAAEAAAATAAEYVQABMAAAAbIoAAMQAAACU2kABxAAAAMvSgARgAAAA6z7AByIAAAEOqsAKOAAAASBVgAwiAAABMgAADgwAAAFDVYAQJgAAAVQAABI8AAABcarAFKwAAAGOAAAXHAAAAbxVgBnwAAAB0yrAG1YAAAHqAAAcvAAAAhMAAB5BAAACPAAAH8YAAAJlAAAhSwAAAo4AACLQAA=</data>
<key>IOClass</key>
<string>MicrosoftMouseUSB</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>IOUserClientClass</key>
<string>IOUSBHIDDriverUserClient</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>22</integer>
<key>idVendor</key>
<integer>5426</integer>
</dict>
</plist>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleIdentifier</key>
<string>com.microsoft.driver.MicrosoftMouseUSB</string>
<key>HIDDefaultBehavior</key>
<string>Mouse</string>
<key>HIDPointerAccelerationTable</key>
<data>AACAAFVTQioABwAAAAAAAQABAAAAAQAAAAAgAAAQAABxOwAATOMABE7FAA03BAAFRAAAFIAAAAcsAAAj4AAACQAAADSwAAAK2AAARfAAAA0IAABXkAAAD2AAAGkAAAASEAAAeoAAABUAAACJAAAAF8AAAJEAAAAawAAAlrAAAB2QAACZsAAAIKAAAJswAAAj8AAAnDAAACewAACcMAAAAIAAABIAAHE7AABWfwAESgAADqAAAAY6AAAfQAAABygAACkAAAAI2AAAPGAAAAm4AABHQAAACrAAAFMwAAALwAAAYDAAAAzAAABsIAAADuAAAIQgAAARYAAAnSAAABQAAAC0AAAAFsAAAMcAAAAZoAAA1AAAABzgAADbAAAAIIAAAOAAAAAkQAAA4wAAACegAADjAAAAALAAABQAAHE7AABhTgAESgAAD2AAAAUyAAAXYAAABjIAACCgAAAHLAAALCAAAAgIAAA3oAAACOQAAENAAAAJwAAAUIAAAAqgAABfIgAAC5AAAG1wAAAMcAAAewAAAA6AAACYoAAAEMAAALYAAAATQAAA0gAAABZgAADpAAAAGiAAAPoAAAAdoAABAwAAACEgAAEHAAAAJIAAAQoAAAAnoAABDAAAAADgAAARAABxOwAAbXcABBoAABHwAAAFGgAAG/AAAAXwAAAmYAAABvwAADQAAAAITAAAT+AAAAlsAABt4AAACngAAI3AAAALsAAAtkAAAA1QAADZgAAAEQAAAPeAAAAVwAABEQAAABlgAAEgAAAAHUAAASgAAAAhAAABLgAAACSAAAEyAAAAJ4AAATUAAAAAUAAAEgAAcTsAAEuwAARMAAAOAAAABUAAABVQAAAHJAAAJiAAAAi0AAA1wAAACpAAAEmAAAAL6AAAVoAAAA0gAABiAAAADhgAAGrQAAAPGAAAdAAAABGQAACHgAAAFFAAAJoAAAAXYAAAqYAAABpgAAC0AAAAHVAAALkAAAAg0AAAvIAAACQgAAC9gAAAJ7AAAL6AAAABAAAAEAAAcTsAAFZ/AAO4AAASoAAABSAAACVAAAAGCAAAN4AAAAbwAABfAAAAB/AAAIoAAAAJKAAAyyAAAArwAAD3gAAADSAAARyAAAAQAAABOAAAABRAAAFKAAAAGQAAAVMAAAAc0AABVwAAACDgAAFbgAAAJCAAAV2AAAAnoAABXgAAAFJwAAAJlNEAWTAAAAoSaQBf8AAACpAAAGawAAAA4AAAHAABGFUAATAAAAGyKAAC8AAAAlNpAAagAAADb0oAENAAAAOteAAUWAAAA+ulABfgAAAEKdMAG2gAAARoAAAe8AAABKIBACKYAAAE2VYAJiAAAAUUqwApaAAABVAAACywAAAFgAEAMcgAAAW1VgA2QAAABeqrADq4AAAGIAAAPzAAAAZiAABD3AAABp6rAEh4AAAG21YATRQAAAcYAABRsAAAB3oBAFbcAAAH2VYAW/gAAAg4qwBhFAAACJgAAGYwAAAJFgEAbAAAAAmRVgBx0AAACgyrAHegAAAKiAAAfXAAAAEAAAATAAEYVQABMAAAAbIoAAMQAAACU2kABxAAAAMvSgARgAAAA6z7AByIAAAEOqsAKOAAAASBVgAwiAAABMgAADgwAAAFDVYAQJgAAAVQAABI8AAABcarAFKwAAAGOAAAXHAAAAbxVgBnwAAAB0yrAG1YAAAHqAAAcvAAAAhMAAB5BAAACPAAAH8YAAAJlAAAhSwAAAo4AACLQAA=</data>
<key>IOClass</key>
<string>MicrosoftMouseUSB</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>IOUserClientClass</key>
<string>IOUSBHIDDriverUserClient</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>idProduct</key>
<integer>22</integer>
<key>idVendor</key>
<integer>5426</integer>
</dict>
</plist>
iv. If you don't have the razer: open the IOKitPersonalities dict.
v. Select the first entry (M0009), copy it and paste it.
vi. Open this entry and change idProduct, and idVendor to the decimal version of the values you found dusing USB Prober.
vii. Save and close Property List Editor.
b.
i. If you have device drivers from your manufacturer, you still want to use USB Prober to check exactly which device you have (the driver may have support for multiple mice, for example Razer and Microsoft's drivers both do this).
ii. Find the Info.plist file for your driver, and copy the IOKitPersonalities entry for your mouse; paste this entry into the IOKitPersonalities dict for the Microsoft driver.
iii. Make sure that all items in the OSBundleLibraries dict of your manufacturer's driver are also pasted into the dict for the Microsoft driver. Failure to do this may cause your computer to fail to boot, in which case disconnect your mouse, boot, connect your mouse, and then fix the problem.
4. Finally, in Terminal:
sudo chmod 755 Info.plist
sudo chown root:wheel Info.plist
cd ..
sudo chmod 755 Contents
sudo touch /System/Library/Extensions
5. Reboot, and configure your mouse in the Intellimouse preference pane.