ultimately, you have a lot of conflicting requirements
doing everything on the laptop is probably the real answer if you need to work on it while on the go, and you can push it to your desktop every once in a while over git just for backup reasons
like, when I'm at home, I will just VNC and/or SSH into my desktop from my laptop and vice-versa so I don't need to get up, and it's generally fairly fast and seamless over a local connection