On one machine I used an MPG for a while, and on another I used an external joystick and some game console buttons. I have to say neither was really wonderful for zeroing to a work piece.
Recently I got my big mill that I put a touch screen on going again, and I used the [TAB] flyout jog screen. I liked it as well as anything. Especially with the touch screen. I'ld like to use the jog screen, but get rid of most of the things on it. Instead have multiple large buttons for each axis and have each button do a specific jog amount using g-code and relative positioning (G91 / G00 X.1 / G90). The buttons would jog, .1, .01, .001 relative to their location from center. I've been doing basically that with the current jog screen and a wiggler. Its a lot faster than it sounds.
Never mind if you hate the idea or love it. Trust me if I can get it to work I will like it. I just would like some guidance in setting up some buttons (LARGE BUTTONS) to execute snippets of code. If that works I'ld also apply it to write a custom button for z-height setting with a touch pad. I know the blue screen already has a z-height set function, but I want to do all new screens optimize for my use with large buttons and large icons for touchscreen.
I imagine I can figure it out by reverse engineering some of the screensets already available, but I am hoping somebody is willing to give me a jump start on this.
Eventually I think I'll run touchscreens on all machines.