I use the linum-relative package to get line numbers relative to the cursor in the margin. The reason this is useful to me is I drive emacs with speech recognition, and the speech recognizer has a specialized more accurate mode for numbers than it does for general speech, so I try to navigate using commands based on numbers where possible. So with relative line numbers I can say "up 5" or "down 29" and know exactly where I will end up. Relative numbers are better than absolute because they are smaller and easier to say; if I'm in the middle of a big file and I want to go down 3 lines I don't want to say "goto line three thousand four hundred and twenty six." I just want to say, "down 3".
Now I'm trying to give helm a spin and I noticed that when I use helm-M-x the relative line numbers don't work. They appear, but always consider the first line of the buffer to be 0 regardless of where the cursor is. That is until you scroll down past the end of the window, then they move again but stay still after that until you go outside the window boundary again.
Is there anyway to get relative line numbers working with helm-M-x? I'm guessing that helm is listening directly to input events to drive the menu rather than really moving the cursor, but I haven't dug into the code.