glest / glest-source

Glest is a network multi-player cross-platform 3D real-time strategy (RTS) game, where you create armies of units and battle different factions.
https://glest.io
GNU General Public License v3.0
57 stars 39 forks source link

Assign hotkeys to operate menus via keyboard #161

Open biels opened 6 years ago

biels commented 6 years ago

On top of the existing hotkeys ('M', 'A', ...) I would add another set of keys that positionally map to the visual menu. Those could be QWERTYUI, ZXCVBNM, F1 F2 F3 F4 F5, Numpad keys, etc. This would make controls smoother and make for a nicer user experience. It would be good to provide a set of defaults to chhose from, plus a way to configure each key separately. Then also an option to show an overlay inside every command in the menu with the key that is going to activate that command.

andy5995 commented 5 years ago

Which menus are you referring to? For example, what do you want to specifically happen when you press "Q"?

biels commented 5 years ago

The first item of the menu is activated, as if it was clicked. It would be a positional system. Keys have no meaning so you don't have to learn them. You can just use them to use the existing menu items without (or in combination with) using the mouse

linux-player9 commented 5 years ago

Are you suggesting a complete revision of zetaglest menus ? So that we will be able to manipulate them with the keyboard ? It maybe interesting ! However I think it will not be done easily so, maybe we will have it, maybe not.

andy5995 commented 5 years ago

So, similar to what I suggested in #7 then?

@JoaoMarcosCSilva noted:

@andy5995 I think that in the ticket he meant mapping keys to their position in the selection menu So for example, if in the menu it appears [stop] [move] [attack] [heal] [build] Those options would be triggered by F1, F2, F3, etc

Yes, I think this would a good feature to have, and would probably work better than how I outlined in #7. Once we take care of the more critical issues needed to be done before release, we should discuss more on how this would be implemented.