When an atom is picked with the mouse, the Tcl variable vmd_pick_mol gets set to the moleule id of the picked molecule, and vmd_pick_atom contains the atom index. The Tcl command trace can be used to call a function when those values change.
As an example of what can be done with this, the following
statements will put a sphere around each atom when it has been picked
with the mouse. To turn it off, execute
trace vdelete vmd_pick_atom w sphere_pick.
proc sphere_pick {name element op} { # get the atom and molecule picked global vmd_pick_atom vmd_pick_mol # get the coordinates set sel [atomselect $vmd_pick_mol "index $vmd_pick_atom"] lassign [$sel get {x y z}] coords draw sphere $coords radius 1.0 } trace variable vmd_pick_atom w sphere_pick