openstenoproject / plover

Open source stenotype engine
http://opensteno.org/plover
GNU General Public License v2.0
2.37k stars 278 forks source link

Allow arpeggiate to be triggered by certain steno keys #591

Open owl92 opened 8 years ago

owl92 commented 8 years ago

Classification: Enhancement

Reproducibility: Not Applicable

Summary/Rationale

This feature request is to allow arpeggiate to be implicitly triggered by a certain subset of the main stenotype keys, in addition to being separately triggered by the spacebar. This should significantly reduce the number of necessary strokes for users of this feature: if, on average, 2-3 strokes are pressed before the arpeggiate key, then removing the arpeggiate stroke would reduce the total number of strokes by 25%-33%, significantly improving speed and ergonomy.

Background

I am often forced to use a 6KRO laptop keyboard with the arpeggiate feature. In order to avoid pressing too many keys at once and overwhelming the keyboard, I press the keys in groups. I am now using a system where I press the top keys first (usually 1-2 strokes) followed by the vowel keys, then finally the arpeggiate key to trigger the actual end of the stenotype stroke.

With the addition of this feature, the last step can be avoided. In my case, because I always end with a single stroke of the vowel keys, the pressing of any vowel key(s) could itself be used to signify the arpeggiate action. (On the occasion where the stenotype stroke has no vowels, I would just reach for the spacebar as usual.)

Of course, this isn't only the case for vowel keys. If someone else uses a different system where they press some other set of keys last, they could also set those keys to trigger arpeggiate.

Proposal

To make my feature request more exact, I would like to request:

  1. Replacing the arpeggiate key setting with a more general arpeggiate "group" setting. The arpeggiate group is a set of keys, some of which can be the same as other stenotype keys. The default contents of the arpeggiate "group" should be the single key "Space".
  2. If any key in the arpeggiate group is pressed (either by itself or in a chord), then the current chord is processed as normal and arpeggiate is triggered afterwards. [If no key in the chord is a stenotype key, e.g. if the user only presses space, the chord is considered empty and only arpeggiate is triggered.]

Thank you.

morinted commented 8 years ago

Funnily enough, this is how I envision a mobile phone steno keyboard working best. My "arpeggiate group" was a center column with ['-', '*', '#'] but I guess the vowels would make sense too.

benoit-pierre commented 6 years ago

This can be implemented with a custom keyboard machine implementation (including a dedicated UI to configure it, now that we support that).