How to apply written defaults to a Magic Mouse (com.apple.driver.AppleBluetoothMultitouch.mouse)?

Running OSX 10.7.4
I wrote a script to swap Apple Magic Mouse secondary click.

The following simple bash script do modify the system preferences (can be seen in System Preferences GUI), but the mouse secondary click is not really swapped.

#!/bin/bash
mmode=$(defaults read  com.apple.driver.AppleBluetoothMultitouch.mouse MouseButtonMode)
echo --- $mmode ---
if [ $mmode = 'TwoButton' ]; then
defaults write  com.apple.driver.AppleBluetoothMultitouch.mouse "save.MouseButtonMode.v1" -int 2
defaults write  com.apple.driver.AppleBluetoothMultitouch.mouse MouseButtonMode -string "TwoButtonSwapped"
echo LEFT HAND MODE
else
defaults write com.apple.driver.AppleBluetoothMultitouch.mouse "save.MouseButtonMode.v1" -int 1
defaults write com.apple.driver.AppleBluetoothMultitouch.mouse MouseButtonMode -string "TwoButton"
echo RIGHT HAND MODE
fi

It seems the OS needs some reload/refresh command for the change to take effect. Can anyone figure out what I'm missing?


I couldn't find any way to apply the changes, but you could also use UI scripting to change the setting.

tell application "System Events" to tell process "System Preferences"
    try
        set visible to false
    end try
    tell application "System Preferences" to reveal pane id "com.apple.preference.mouse"
    tell radio group 1 of window 1
        if value of radio button 1 is 1 then
            click radio button 2
        else
            click radio button 1
        end if
    end tell
end tell
quit application "System Preferences"