Listen to onSetStatus event I wanted to listen to the onSetStatus event of the SetStatusElementAction and used the same code like in the EntryElementType class:

$setStatusAction = craft()-&gt;elements-&gt;getAction('SetStatus');
$setStatusAction-&gt;onSetStatus = function(Event $event) {
  MyPlugin::log('maybe');
}


But it didn't work and I had to hack into the core making following code changes:

in the ElementsService class:

/**
 * Fires an 'onSetStatus' event.
 *
 * @param Event $event
 *
 * @return null
 */
public function onSetStatus(Event $event)
{
    $this-&gt;raiseEvent('onSetStatus', $event);
}


in the EntryElementType::getAvailableActions method where the onSetStatus is called:

craft()-&gt;elements-&gt;onSetStatus($event);


This way I'm able to listen to the event in my plugin:

craft()-&gt;on('elements.setStatus', function() { ... });


The problem is that with the next update I have to do the code changes again. Is there a better way to listen to the event or is this worth a push request?
As you've discovered, you should be using the more generic elements.onBeforePerformAction or elements.onPerformAction events.  They get fired when any action takes place and you can check their action parameter to determine if it was a SetStatus action.