-
Notifications
You must be signed in to change notification settings - Fork 238
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
New layout: "Four columns" (English). #292
Conversation
This layout introduces a fourth column for letters and switches to a vertical, centered spacebar.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I'll get this added shortly.
display = KeyDisplay.TextDisplay("q"), | ||
action = KeyAction.CommitText("q"), | ||
), | ||
SwipeDirection.LEFT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? I test this swipe, and although it does not display anything to the left, when you actually swipe it, a Q does print.
display = KeyDisplay.TextDisplay("y"), | ||
action = KeyAction.CommitText("y"), | ||
), | ||
SwipeDirection.LEFT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this?
), | ||
swipeType = SwipeNWay.FOUR_WAY_CROSS, | ||
swipes = mapOf( | ||
SwipeDirection.RIGHT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
), | ||
swipeType = SwipeNWay.FOUR_WAY_CROSS, | ||
swipes = mapOf( | ||
SwipeDirection.RIGHT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
display = KeyDisplay.TextDisplay("z"), | ||
action = KeyAction.CommitText("z"), | ||
), | ||
SwipeDirection.LEFT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
display = KeyDisplay.TextDisplay("Q"), | ||
action = KeyAction.CommitText("Q"), | ||
), | ||
SwipeDirection.LEFT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
display = KeyDisplay.TextDisplay("Y"), | ||
action = KeyAction.CommitText("Y"), | ||
), | ||
SwipeDirection.LEFT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
), | ||
swipeType = SwipeNWay.FOUR_WAY_CROSS, | ||
swipes = mapOf( | ||
SwipeDirection.RIGHT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
), | ||
swipeType = SwipeNWay.FOUR_WAY_CROSS, | ||
swipes = mapOf( | ||
SwipeDirection.RIGHT to KeyC( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
action = KeyAction.CommitText("Z"), | ||
), | ||
SwipeDirection.LEFT to KeyC( | ||
display = null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this necessary? Maybe you can simply delete this? See above.
I love this idea and am testing it. I also made a Polish four column layout. I don't know how to use github really so I took the liberty of attaching the file to this thread - where the original idea comes from. I hope the file is correctly edited, I am not sure how to verify it. I simply replaced the layout by @mockballed with Polish characters. You can maybe add it to your pull request when you finish the other layouts you mentioned. I removed some lines that I thought were unnecessary. When constructing this layout I followed @mockballed's guidelines, i.e. I calculated the frequencies of all "keys". They are not perfect, but maybe a good starting point. Some keys have a "total" frequency that is slightly higher than others. Here is a preview of the Polish layout: Hope you can take care of this. |
Neatly done, @dominmana. I'm happy you dig the design. I'm about to submit some layouts and I'll focus on the Polish one next. At a first glance, the center-keys for the first key-row should be ERIO, since the letter r is more common than the letter t edit: I see it's set so in the layout file you provided. The letter y could also fit as an horizontal swipe on the R key. The "invisible" swipes you pointed out are intentional. My suggestion is that horizontal swipes should "head inwards" (towards the center of each pair of columns), but if someone were to find it more comfortable otherwise, they'd have the option. I figured people will find this by trial and error, though the feature could be indicated in a non-obstrusive manner. I'd leave these hidden swipes as is for now. If they cause issues I won't be against removing them. |
@mockballed Also, could you create a name / prefix for these new layouts? In the same way that there is |
@dessalines yes, gladly. Do you mean something other than "Four Columns"?
|
Yeah, like a short codename of some kind. Other people might make , column layouts. |
In my first layout y was on the R key but then I looked at the calculated frequencies for the R and I keys and decided to move it to a 'vowel' key. But your idea to put y on the R key might be better. I have limited experience with this so you should decide. I am also not sure what the difference is between top and side swipe in terms of ergonomics but I definitely have problems with diagonal ones, maybe I'm too old. I'm typing this comment on the new 4 column layout and it is much easier for my boomer thumbs.
I haven't thought of this and definitely see merits in having the invisible swipe option after your explanation. |
Maybe "QWERThumb"? |
I went with "Type-Split", but I'm not sure that's what Dessalines had in mind. I think this layout group should be under the main Thumb-Key ones. @dominmana I did a PR with the Polish layout. Would you take a look? |
This layout introduces a fourth column for letters and switches to a vertical, centered spacebar.
The idea is that each thumb gets assigned to a couple of columns and that they can reach horizontally to alternate pressing the spacebar. It also works well with one handed typing.
Design points
The spacebar is the most used key by far. Trying to reduce thumb fatigue by having it through the middle of the keyboard to avoid reaching down to tap it.
Backspace positioned at the usual place of the spacebar and shift/caps-lock are set as vertical swipes there.
Avoids using diagonal swipes.
The key distribution is guided by the QWERTY layout for familiarity, but in a way that the most common letters are center key-taps.
Letter distribution logic
For each letter-row of a QWERTY layout, pick the 4 most common letters and assign them as center-keys.
The remaining keys are set as swipes on their nearest center-key in their letter-row, taking care to balance the overall cumulative frequency for each key.
Downward swipes are assigned for the second most frequent letter, both left and right swipes for the third most frequent letter and upwards swipes for the less frequent one.
Finally, the extra keys usually make it possible for accented letters to be set as swipes on the same key as their base letter.
~
I've sketched layouts for Deutch (qwertz), French (azerty), Italian, Portuguese, Spanish, and they work out to have 8 to 10 of their most common letters as center-keys (French is the exception, with 7 of them). If this layout fits within Thumb-Key, I'll do a pr with the layouts for them.
Spanish layout:
I've been typing with these layouts for a few weeks and can touch-type by now :D.
I Used this study as a reference: "Letter Frequency Analysis of Languages Using Latin Alphabet"
Note: the layout is titled "v. Four Columns english v1" so it goes to the bottom of the list.