There's a special Global variable you can use in the Tool called LastCharacterTyped. If you declare that as an Object and set its initial value to $a, then you can make decisions based on whichever character is typed on the computer keyboard by testing for equality to that character.
To detect whether the shift key is down, you can use:
KymaWindowSensor shiftDown
To detect whether the mouse is down you can use:
KymaWindowSensor mouseDown
Can you use these to get the triggers you need?