I googled this topic and a lot of people suggesting
setxkbmap -option ctrl:nocaps
I put this line into my .bashrc. However, frequently this key binding is disabled automatically. This happens randomly when I am doing other things. It is the most annoying when I am using vim, a lot of key mappings are affected. I need to open a terminal to re-run the previous command, which will get it work for another random period of time until it is deactivated again.
Does any one shared the same experience? How to have this mapping permanently?
I finally figured out that it is ibus that resets the key map every time I change input engine.