Is it time to move on or should I give another chance?

I’m asking this because I genuinely don’t know and need advice. I am emotional exhausted. Please try to give helpful advice as I am being as sincere as I can. Backstory:

Me and my boyfriend have been together for a little over two years. We quickly started spending every night together and soon after (around 10 months) I moved in.

Know that I love my boyfriend more than Anything. He is everything to me. Now, why I am asking if I should move on or give another chance: I have a deal breaker, now to not cause any drama about what it is, I will use “Smoking” as a cover. I found out that he had been smoking, so I brought it to his attention, and he said that he would stop. I found out he was smoking again, he said he would stop. Because I already loved him at this point, I forgave him. This happened three more times. I told him that I would be understanding if he just told me the truth. I keep finding little things he’s lied about throughout our entire relationship. If he can lie about little things, what is he lying about that’s big?? I found pink socks in our home behind the couch on top of his jacket (which weren’t there the night before) in the beginning of our relationship, he said were his sisters. I recently found out that they were his ex’s but apparently she didn’t come over, he just had them. I found dirty underwear in his room that he claimed were our roommates girlfriends and they got in his dirty laundry somehow.

Recently, I found out that he had been in a group online that posts pictures of cigarettes, even cigarettes they know and talks about smoking. He apparently “left” and then joined the group back a month ago. Well, it’s just lie after lie after lie.

I’ve forgiven him so many times and he keeps proving to me that I can’t trust him. He finally told me about a girl that he was flirting with at McDonald’s that asked for his number. He isn’t affectionate, isn’t emotional, he doesn’t like making out, flirting with me, sexting, sending pictures. He plays video games literally all day. He ignores me, gets annoyed when I want to talk a lot, gets annoyed when I try to flirt or sext. He anally raped me on accident once(he feels really bad, I was begging him to stop and pushing him away but he didn’t stop. He didn’t finish either though so). Whenever we have sex he isn’t romantic, he literally just sticks it in me and when I say no he says “I don’t listen” and then keeps going. But he stops if insist after a while.

He says that he’s going to stop lying and be better. Should I give him another chance? I love him so much. Can someone stop lying about little things if they’ve been doing it from the beginning?