• You are not logged in.

    Chorded keyboard layout for Colemak

    • Started by asetniop
    • 13 Replies:
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    Greetings Colemak users! 

    I recently developed a chorded keyboard layout that's intended for QWERTY users, and I figured it would be worth taking a shot at designing a similar layout for Colemak users.  You can see the ASETNIOP layout - designed with QWERTY users in mind - over at www.asetniop.com, and here's what I've come up with for Colemak:

    ColemakChart

    ColemakChart


    There are a few basic principles behind the layouts (both for ASETNIOP and the Colemak version):

    1.  The eight primary keys (keys where an output is obtained by a single press and release) are associated with the eight most common letters that are normally struck using that particular finger.
         For example, the ASETNIOP layout uses the left pinky for A, the left ring finger for S, the left middle finger for E, etc.  Colemak has already placed the eight most commonly used letters as home keys, so these are pretty much static.

    2.  Each of the remaining sixteen letters are formed by chords (i.e. two keys pressed at the same time).  Each chord should include the original finger that would normally be used to press this key.
         For example, the letter H would be formed by pressing the right index finger (which is normally used to press the H key on a Colemak keyboard) along with the right middle finger. 

    3.  Chords are selected based on the ease of formation and the frequency of use of the letter; it's assumed that certain chords are easier to form than others, in the following order:
         a.) index/middle
         b.) index/ring
         c.) index/pinky
         d.) middle/ring
         e.) ring/pinky
         f.) middle/pinky

    4.  In general I've considered chords that involve both hands to be less desirable, because it disrupts the typing rhythm.

    5.  No change to the space bar - obtained by pressing a single thumb.

    6.  Shift key is activated by pressing the non-space-bar thumb.

    7.  Digraphs, trigraphs, and words can be formed by pressing all of the active keys in a combination at once.  This is also an important factor in designing a layout, because "stenographic combinations" can increase the user's speed considerably.
         For example, pressing the keys for A (left pinky), D (left middle and left index) and N (right index) at the same time and releasing will produce the word "and".  This isn't too ideal, because "and" is an extremely common word and the chord described here is relatively tough to produce.


    The current Colemak design has a lot in common with the ASETNIOP layout (particularly punctuation, which is identical), and is optimized to some degree, but I'm sure there's plenty of room for improvement.  I'd love the input of the Colemak community to help make this layout as practical as possible.  Please give it some thought and post your thoughts!

    Last edited by asetniop (25-Apr-2012 01:23:53)
    Offline
    • 0
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    I made these blank layout charts that I thought might be helpful for anyone working on an alternative version:

    BlankLayout

    BlankChart

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,363

    Interesting and solid work there!

    How's the risk of mistyping with this scheme? I mean, when aiming for say a 'w' do you sometimes end up with an 'a' or 'r' instead?

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    Thanks for the kind words! 

    I call what you're referring to as a "fragmented chord;" when the user intends to type a chord but progresses too quickly and hits the individual elements separately instead of simultaneously.  It happens sometimes, but since the output is based on the release of keys, "step-on" errors where the user presses two keys simultaneously instead of separately are more common, especially as the user gets more proficient and starts typing more quickly.  An example of a step-on error similar to what you described above would be for the user to intend to press an A followed by an R, but getting the output W instead. 

    Both of these kinds of mistakes are dealt with by an autocorrect procedure; when the program receives input, it checks it against a dictionary before proceeding.  If the text, as entered, is found as part of a word, everything remains the same.  If not, the program attempts substitutions based on the potential errors that might have been made as either a step-on or a fragmented chord error. 

    In the above example, let's say the user is typing the word "art."  If the user steps on the A and R keys (i.e. pressing the R key before completing the release of the A key), the program will output the letter W.  As is, that's fine because there are plenty of words that begin with the letter W.  However, if the next input received is the letter T, the program will see the letter combination "wt" and recognize that an error has been made.  It will split the W into its component parts (A and R) and form the word "art," then look it up in the dictionary and confirm that it was what the user must have intended (since there are no other potential formulations for the given input), and change the output accordingly.

    Similarly, if the user is intending to type the word "wet" and fragments their first chord, the resulting input ("ar") will remain unchanged when the user enters the E key ("are") but will consider alternatives when the user enters the T key, since there aren't any words in the dictionary that begin as "aret".  The choices it has are "wet" (by combining the first two letters into a chord), "azt" (by combining the middle two letters into a chord) and "arv" (by combining the last two letters into a chord), so it will presume that the user intended the word "wet" since that's the only viable option.

    The autocorrect isn't infallible; for example, if the user types the word "are" when intending to type the word "we," the program won't be able to recognize that an error has been made.  But I haven't found that to be a major issue - at least with the ASETNIOP configuration.  And of course with longer words, the ambiguity decreases and it's easier for the program to recognize the true solution.

    Here's a little video that shows how the process works with the ASETNIOP layout; the process for Colemak would be identical but would use a different set of codes to determine the output alternatives:

    www.youtube.com/watch?v=5OHXk0DlZkc&feature=youtu.be

    Offline
    • 0
    • Reputation: 1
    • From: Sofia, Bulgaria
    • Registered: 05-Mar-2011
    • Posts: 387

    Very interesting concept. Thanks for the video as well. I will have to say though that it most definitely will limit your top speed, so it would be useful only for people who are not bothered by that.

    In my opinion having a keyboard with many keys and not making a use of them for the sake of not moving your fingers at all is not ideal.

    If it was me, I would think of something similar which makes use of more keys – maybe the four "home" keys and the four above? Another idea would be to make 2-3 of keys on each side modifiers, so depending on which combination of key and modifier you press, you end up with the wanted character.

    Still – the hole concept is doing something which I personally am avoiding – having to press keys simultaneously (while typing), since it requires much more accurate timing and thus leads to higher chance of errors. I see on the video that your error rate (assuming that's you) is quite good, but after all I think it's much more relaxing and accurate to type one key for a letter, the "conventional way".

    That's my opinion, but as DreymaR said – solid work. It seems you've spend a good deal of time on it, and I'm sure someone will find it useful. And if there's even one that does, I would say it's worth it.

    Btw how long have you been using it to reach 80 wpm? At least that's the speed I saw from the videos on the youtube channel. Do you know if anyone else is using the layout and what the feedback is?

    Offline
    • 0
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    I don't think that any alternative will beat a standard keyboard (regardless of layout) for speed and simplicity.  The intention of this particular method is to allow touch-typing to evolve away from an actual physical keyboard.  Ultimately ASETNIOP is designed for devices like the iPad, or cellphones equipped with a motion sensor similar to the Magic Cube device that Cellulon makes (without needing the laser), or even a set of sensor-tipped gloves.  The idea is that without tactile or visual feedback, it's much easier for a user to control the sequencing of 10 input points than the positioning of 26+ input points.  So I'm sticking with ten points - the computer can track which fingers are coming down, and the user doesn't have to worry about the physical location of the fingers as long as they don't drift a ton.  Everything else that's been developed so far (Swype, SwiftKey, touchscreen keyboards) requires some kind of visual guide or else things go pear-shaped almost immediately.  ASETNIOP is supposed to take things a step further; touch-typing without a physical keyboard and without needing to visually monitor the input stream.

    Yep, that's me in the video and so far I'm patient zero - I'm only just now discussing it publicly because I wanted to file for IP protection on some of the processing methods, which should be applicable to *all* chorded keyboards, not just this particular layout.  I've been developing it for the last couple of years, so it's hard for me to say how long it takes for a new user to reach proficiency - I'll be conducting a few focus groups this summer to try to get some idea. 

    In the meantime...I went ahead and coded a Colemak version using the layout shown above: www.asetniop.com/colemak.html

    Anyone interested is very welcome to give it a try - none of the autocorrect features I described are active, but you can sample the layout and see if you agree with my placement or if you've got suggestions on which keys/chords should be moved.  I'd be very grateful for the input!

    Last edited by asetniop (24-Apr-2012 23:45:28)
    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,363

    My idea of a chorded keyboard has been a home row of 12 buttons (allowing stretches of the index and little fingers like on a normal keyboard) and then thumb buttons or what have you (a DataHand-like concept maybe?) to determine row and case etc. This could be implemented using a row of buttons on the side of your mobile device for one hand and another row on the screen, for instance. It'd be easy to learn since you already know the keyboard layout you're using, and I think Colemak would suit it well.

    I never got around to implementing it though. :(

    For the most part, the asetniop way seems easy to learn as well, and also preserves easy access to the home row. That's nice.

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 7
    • Registered: 21-Apr-2010
    • Posts: 818

    Will take a while to digest this!

    Interesting that you mention key release, I've wondered before if it would be better for a normal keyboard to work on this basis. Would it lead to a better typing technique?  Or is it more difficult?  I like the idea of resting the fingers.

    --
    Physicians deafen our ears with the Honorificabilitudinitatibus of their heavenly Panacaea, their sovereign Guiacum.

    Offline
    • 0
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    Question: Is the ring + index chord much harder to do than the middle + index chord?  How would you rate the difficulty of each on a scale of 1 to 10?

    The reason I ask is that I'm toying with the idea of swapping out the D, C, and F.  This would put the D as the left ring + index, the C as the left ring + middle, and the F as the left middle + index.  The reasoning behind this is so that the of/for/from family can be formed as a natural series of stenographic combinations, 348, 2348, and 23458 (a pretty organic progression, and all good combos for the 4th, 12th, and 25th most commonly used English words, respectively). In addition, it changes the 123 combo from an af/fa digraph to an ad/da digraph, which appears more than twice as often.

    The downside is that you're moving the D (which has a relative frequency of 4.2%) to a less favorable position on behalf of the weaker F (2.2%).  Can't tell whether it's a worthwhile trade-off.

    Offline
    • 0
    • Reputation: 1
    • From: Sofia, Bulgaria
    • Registered: 05-Mar-2011
    • Posts: 387
    asetniop said:

    I don't think that any alternative will beat a standard keyboard (regardless of layout) for speed and simplicity.  The intention of this particular method is to allow touch-typing to evolve away from an actual physical keyboard.  Ultimately ASETNIOP is designed for devices like the iPad, or cellphones equipped with a motion sensor similar to the Magic Cube device that Cellulon makes (without needing the laser), or even a set of sensor-tipped gloves.  The idea is that without tactile or visual feedback, it's much easier for a user to control the sequencing of 10 input points than the positioning of 26+ input points.  So I'm sticking with ten points - the computer can track which fingers are coming down, and the user doesn't have to worry about the physical location of the fingers as long as they don't drift a ton.  Everything else that's been developed so far (Swype, SwiftKey, touchscreen keyboards) requires some kind of visual guide or else things go pear-shaped almost immediately.  ASETNIOP is supposed to take things a step further; touch-typing without a physical keyboard and without needing to visually monitor the input stream.

    Yep, that's me in the video and so far I'm patient zero - I'm only just now discussing it publicly because I wanted to file for IP protection on some of the processing methods, which should be applicable to *all* chorded keyboards, not just this particular layout.  I've been developing it for the last couple of years, so it's hard for me to say how long it takes for a new user to reach proficiency - I'll be conducting a few focus groups this summer to try to get some idea. 

    In the meantime...I went ahead and coded a Colemak version using the layout shown above: www.asetniop.com/colemak.html

    Anyone interested is very welcome to give it a try - none of the autocorrect features I described are active, but you can sample the layout and see if you agree with my placement or if you've got suggestions on which keys/chords should be moved.  I'd be very grateful for the input!

    Yeah, it makes more sense now. As for your latest question – I wouldn't say it's much harder, if at all. I think it's one of those things which even if troublesome in the beginning, you get used to it and then forget it ever bothered you.

    Offline
    • 0
    • Reputation: 0
    • Registered: 24-Feb-2011
    • Posts: 40

    How would I go about implementing some chorded input under linux (with xkb)?
    I use a typematrix and colemak, and don't think I'd like to change that, but the idea of using chords to access different symbols makes me really curious. As a programmer I think I have a lot of unusual combos and frequencies, and I am interested in exploring different ways to include these. Any tips would be really appreciated :) my experience with xkb is rather limited.

    Offline
    • 0
    • Reputation: 214
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,363

    My experience with xkb is steadily growing. :)

    The only kind of chording I've managed to implement is an Extend layer that maps modifier levels 5+; I use the Caps key for that (see my Big Bag topic linked to in my sig). Also, you can use the four available groups and switches to the next and last groups for two more mapping layers (so I could use a mirrored and a Greek phonetic layout to enhance my basic one for instance). This means you can make three more modifier keys and do lots of fancy stuff with them, but it's not true chording.

    I don't think true chording is possible in the current state of the XKB.

    *** Learn Colemak in 2–5 steps with Tarmak! ***
    *** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

    Offline
    • 0
    • Reputation: 0
    • From: Bogota, Colombia
    • Registered: 08-Aug-2012
    • Posts: 8

    Beautiful idea but where can we practice? http://www.asetniop.com/colemak.html doesn't register my keys correctly. maybe I am doing something wrong?

    thx 4 the inspiration, mate.

    Offline
    • 0
    • Reputation: 2
    • Registered: 24-Apr-2012
    • Posts: 46

    Thanks for giving it a try!  Were you having a problem with the semicolon key (and associated chords)? There was a bug in my code; apparently Firefox uses a different code (59 vs. 186) and I've gone ahead and fixed that.  If it's something else, let me know and I'll get it sorted out.  I'm actually close to having a Colemak version ready for iPads/tablets, which is VERY exciting (at least to me; hopefully it will be to Colemak users too!) and I'll post a link to it once it's available.

    Offline
    • 0