A programmable keyboard is even better. Doesn't even need to be fully programmable via scripts, a simple macro functionality is usually enough.
I mapped arrow keys and Home/End to Fn+WASD/QE and code navigation is so much faster now, especially when I have a hand on the mouse.