You are right, dlj0! keylaunch works. Thank you!
Just install the keylaunch package and set up a ~/.keylaunchrc like this:
# Format: key=...KeyName: Command
# ... = No modifier
# *.. = Shift
# .*. = Ctrl
# ..* = Alt
key=...F12:xmodmap -e "pointer = 1 2 3" ## Press [Home] key to return to default setting (tap = left click)
key=*..Mode_switch:xmodmap -e "pointer = 2 3 1" ## Press [Shift]+[Mode_switch] and tap to make a middle click
key=.*.Mode_switch:xmodmap -e "pointer = 3 1 2" ## Press [Ctrl]+[Mode_switch] and tap to make a right click
Remember to make this run when loading WM (such as by adding keylaunch & to /usr/bin/startx or ~/.xinitrc)
And interestingly, after installing keylaunch the pointer jumping issue is alleviated.