My  laptop at work has a really crappy keyboard. This is not much of a
 problem at work because I can easily use an external keyboard. But  at
 home, it's annoying.

 Thus,  I'm  using  X11  forwarding. I run a second X server on my main
 workstation. Then, I simply connect to my laptop via SSH and  run  its
 xinitrc from my xinitrc.

 This is working really well. I can barely notice that I'm working on a
 remote machine. I do have gigabit ethernet, though.