I have created a puppet character model where the head moves when the mouth opens and closes. The character is rigged with Rigify and I have also added different expressions using Shape Keys. However, I am having trouble attaching the eyes to the head correctly.
I have tried parenting them to the head using "parent to object" and a vertex group of the head, but the eyes move strangely when I move the armature of the body.
Is there a way to attach the eyes to the head so that they follow the mesh both when I move it with the shape keys and with the armature?
I have attached images to help explain the problem.

