Avoid using xmodmap as its another daemon that has to run. Use setxkbmap, which can be found in the extra/xorg-setxkbmap package. See a similar question for how to automatically have this start when you start GNOME, but use the caps:swapescape option instead. For example, if you are using startx and ~/.xinitrc, add the following to it:
setxkbmap -option caps:swapescape