input: rework abs handling, change API, allow custom key names