Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Chord-like Keyboard Shortcuts #79

Open
MyFedora opened this issue Nov 17, 2023 · 0 comments
Open

Chord-like Keyboard Shortcuts #79

MyFedora opened this issue Nov 17, 2023 · 0 comments

Comments

@MyFedora
Copy link

MyFedora commented Nov 17, 2023

I'd like to bring attention to the challenges that arise when dealing with many mods and their extensive keyboard shortcuts.

Problem: Limited Key Availability and Memorability

The growing number of installed mods presents a dual challenge - the scarcity of available keys and the inherent difficulty in assigning memorable shortcuts. Players could find it cumbersome to allocate distinct and memorable keys for each functionality. As they try to assign memorable shortcuts, they may run into conflicts where a memorable combination is already assigned to another essential functionality, making it challenging to create an easily recallable system.

Suggested Solution: Chord-like Keyboard Shortcuts

To mitigate this issue, I propose chord-like keyboard shortcuts for Amecs. This feature would allow players to input key sequences to trigger specific actions, providing a flexible and efficient solution to navigate through the functionalities of different mods without overburdening the limited key space. This way, players can create memorable sequences without the risk of conflicting with existing shortcuts.

Additional Enhancement: Help System

Option 1: Key combination

To complement the chord-like shortcuts, it would be beneficial to introduce a feature where pressing a designated key combination, such as ctrl + h, after any incomplete key sequence, displays a list of shortcuts along with the assigned functionality. This would greatly aid players in learning and remembering the various shortcuts, especially when dealing with many mods.

Option 2: Delay

If there's been no key press during an incomplete key for a predetermined amount of time, display a list of shortcuts along with the assigned functionality. This is helpful for players who don't quite remember the correct key and have to think about which key to press. But when players forget a key sequence completely, delays can be a frustrating experience compared to pressing ctrl + h. However, players can adjust the delay to minimize frustration in that edge case.

Chat as display

Players are familiar with the chat already. Links allow players to navigate through the help system and perform actions. Although the help text clutters the limited chat with information that can be displayed in other ways. Other mods may also change how the chat works, which makes extending the chat in the future a challenge. Players may prefer to dedicate the chat to player messages and dislike lengthy vertical help text.

Imagine a player who wants to use the G4mespeed mod to prototype a new redstone machine. Because G4mespeed is a specialized mod, the player assigns features of the G4mespeed mod to key sequences that start with ctrl + g to isolate the shortcuts from other mods. When they forget how to add a new channel position, they can type ctrl + g followed by ctrl + h to get the following help text:

b ... Block Event Separator (group)
c ... Channel (group)
t ... Tickspeed (group)
g ... Open GUI

All channel features are associated with the c key. They can now type ctrl + g, followed by c and ctrl + h to get the following help text:

a ... Add Channel Position
b ... Brighten Channel Color
c ... Create New Channel
...

Now the player knows how to add a new channel position, and proceeds to type ctrl + g, followed by c and a.

Multi-column overlays as display

Players must first learn how to use the overlays. Overlays could contain links to allow players to navigate through the help system and perform actions. They are easily extensible compared to the chat. Multi-column overlays also save screen real estate by using the horizontal space more efficiently, surpassing the chat. However, overlays can be challenging due to unforeseen edge cases, such as what should happen when too many shortcuts are assigned to one key sequence.

Here is how multi-column overlays could look like given the G4mespeed example:

Column 1 Column 2
b ... Block Event Separator (group) g ... Open GUI
c ... Channel (group)
t ... Tickspeed (group)
Column 1 Column 2 Column 3
a ... Add Channel Position d ... Darken Channel Color s ... Select Channel
b ... Brighten Channel Color p ... Paste Channel Color t ... Toggle Channel Rendering
c ... Create New Channel r ... Remove Channel Position z ... Randomize Channel Color

Additional Enhancement: Major and Minor Modes

To avoid long key sequences for specialized mods, it would be beneficial to add customizable major and minor modes. Major modes allow players to trim long key sequences down to a single key press. Minor modes allow players to define shared functionalities that can be enabled while a major mode is active. This emulates how players with few modes can assign keys that are quick to reach, dedicated and memorable for players that have many mods.

Imagine that the player with the G4mespeed mod could define a major mode for redstone prototyping. The player can now assign the features as follows:

p ... Add Channel Position
b ... Brighten Channel Color
c ... Create New Channel
k ... Darken Channel Color
p ... Paste Channel Color
r ... Remove Channel Position
l ... Select Channel
i ... Toggle Channel Rendering
z ... Randomize Channel Color

When the player needs to prototype a new redstone machine, they can enable the redstone prototyping major mode. Now, instead of ctrl + g, c, a, the player can press p instead. Modes prevent other mods' shortcuts from interfering with the memorable shortcuts of the redstone prototyping mode. Once the player is done prototyping, they can turn off the prototyping major mode.

Design considerations

  • How to cancel incomplete key sequences?
  • Allow movement during incomplete key sequences?
  • Display the current incomplete key sequence?

Closing thoughts

I believe these suggested features would effectively address both the key availability and memorability challenges, making Amecs an even more user-friendly mod. Thank you for your dedication to the development of Amecs :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant