Disrespectful husband

I have been with my husband for 12 years. He has never cheated on me but he has been abusive in the past. I quit my job last year to be a stay at home and it has been wonderful being with my kids. He recently has been becoming more and more disrespectful. I tried to hug him the other night in bed and was told to " Get the F off of him". He gets mad when I dont do things the way he would have done it. He calls me an idiot. I feel like leaving at times but I question myself. I start to think that I should be grateful that he's taking care of us and that he's not a cheater. Then the other half of me thinks that none of that matters, I should be able to live a happy life with someone who respects me. What would you do in my situation? What are your thoughts?