winder / Universal-G-Code-Sender

A cross-platform G-Code sender for GRBL, Smoothieware, TinyG and G2core.
http://winder.github.io/ugs_website/
GNU General Public License v3.0
1.9k stars 765 forks source link

Intelligent Key mapping #2202

Open ArcAIN6 opened 1 year ago

ArcAIN6 commented 1 year ago

Description

I have a real, visceral issue with the priority of the key mappings. Namely, the fact that jogging via keyboard seems like an after thought, rather than a feature, and the fact that priority of a little used "feature" has taken it's place.

Most Intuitive: UP, DOWN, LEFT, RIGHT for jogging X, and Y axis, SHIFT+UP, SHIFT+DOWN for Z axis.

Least useful: Insertion Point Up, Insertion Point down, Insertion Point Backward, Insertion Point Forward, Extend Selection Up, Extend Selection Down.


Proposed Solution / Feature Request

I think it would be better if jogging take president over the editor. Better yet, you could simply use the "keyboard" button as a toggle. when pressed, arrows + shift up/down are for jogging, clicking anywhere else in the application un-toggles the button, and the editor can resume control of the buttons.

Honestly, it's kind of a no brainer, and while googling for an intuitive solution to these weird key mappings, I've notice no one really likes the current situation. I feel like fixing this should be above any new features, as functionally, it's the best quality of life update you could make at this point in time. I use several different software suits for the various machines i have, most of them don't work well with GRBL, or my smaller machines, so i use UGS for that. Almost all of them use keyboard jogging, and almost all of them utelize the arrow keys, or the keypad to do so. I really hope this gets sorted, as i like UGS for my smaller machines.

breiler commented 1 year ago

This is a downside with using an existing platform (Netbeans Platform), we get a lot of features for free but everything might not be a perfect fit.

We have tried to use the built in features for registering actions, everything from Homing, Run, Stop, Jogging, etc. This would in turn let us use the built in features for key mapping. Features that we didn't have to write and don't have to maintain. So it was simply a cost effective solution.

However it comes with a couple of problems. You can remap the actions to just use the arrow keys. But as these actions are generally global throughout the application, whenever you would need to use arrow keys (in a text field for instance) it would activate those actions.

We previously had cases where some graphical components would steal focus and all keyboard shortcuts. I therefore added the keyboard button in the jog panel that you mentioned as a work around. My intention was to eventually add a separate keyboard mapping like the one you suggested by toggling that button. I never got around to implementing it as I felt that it would open up for new questions and/or inconsistencies.

Thanks for the feedback, I'll give this some thought and weigh its priority against the other 170+ issues already reported.