If you want to jump into CNCjs and some of the automated controls using SuperPID, I did a write up here:
This one has details on setting up the custom buttons in CNCjs to move the router to predefined locations, which the use case you were looking for:
The CNCjs setup was simple, especially using the Electron app on Windows. I ended up loading it to a Raspberry Pi 4 and serving it out as a webpage to whatever device I want. I like this setup better because I don’t have to worry about what’s going on with the computer sending the gcode. In the middle of a long run my Win laptop decided to do a “update reboot” , luckily I was able to save the job, but it left a burn mark where the spindle sat for a few moments before realized what was happening. For $40, the dedicated RPi can spew out gcode with no interruption, well worth the cost.
The RPi setup is well documented on the CNCjs page, so won’t go into that here. Adding the webcam was a bit of a trick, but not bad if you dig a little.
I am a big CNCjs fan! Now looking for a CAM software that will run on Linux (Windows has really irritated me…). Estlcam has been my go to, but getting some errors that I can’t figure out (not a programmer by any means).