Hey all, I've made a small patch that allows you to bind keys for horizontal scrolling.
This approach (which imho is the least of many evils) requires the Arg union to be a struct, to allow the scroll() function to use both .b and .i as arguments. I think that horizontal scrolling via the keyboard is far from an "edge" use case for a web browser that already depends so heavily on the keyboard, so I propose that this patch be included in the next version of surf.