Author Topic: A modified Colemak  (Read 6864 times)

0 Members and 1 Guest are viewing this topic.

Offline batfink

  • Thread Starter
  • Posts: 69
A modified Colemak
« on: Wed, 10 December 2014, 10:10:45 »
Came across this modified version of Colemak which might be of interest. It seems to be based on a similar principle as the Workman layout i.e. reducing usage of the centre-column (D and H keys in Colemak's case).

http://colemakmods.github.io/mod-dh/


Offline Sc0tTy

  • Posts: 167
  • Location: Netherlands
  • Ergo enthousiast
Re: A modified Colemak
« Reply #1 on: Thu, 11 December 2014, 05:45:28 »
The switch with H and M makes no sense according to my data. I'm a programmer writing a in Dutch and English and I actually use the H less.
M   33727
H   32753
Data from the last 1.5 years from home and work.
For us dutch folks its better to move the J to Colemak's M position
J   46045

I've been doing analysis for a while and I'm trying to figure what keys I should change from original Colemak, switching the position of D actually makes a lot of sense.
Here's the data I've collected:
E   178461   r
T   112957   l
A   103738   r
N   94651   l
R   83908   l
I   82971   r
      
O   73682   r
S   69451   l
      
C   54929   l
D   53089   l
L   52231   r
V   51346   r
      
J   46045   r
M   33727   l
H   32753   r
G   30487   l
P   29121   l
K   27713   r
U   27671   r
Z   22494   l
B   21036   l
W   20492   r
F   16714   r
Q   14880   l
X   10774   r
Y   8403   l
« Last Edit: Thu, 11 December 2014, 06:21:58 by Sc0tTy »
1x ErgoDox EZ
2x Truly Ergonomic Keyboard 229
2x Kinesis Freestyle V3-VIP
2x Bamboo Pen & Touch (Mouse replacement)
2x Salli Swing
1x Herman Miller Aeron

Offline mstechfreak

  • Posts: 9
Re: A modified Colemak
« Reply #2 on: Thu, 11 December 2014, 05:55:59 »
Just wanted to share my switching to colemak experience. Not easy at all! :D At least for me. However, when I tried some typing tutors and finally stopped at one (http://www.typingstudy.com) it became a lot easier. However, I'm still not sure whether it is neceesary, but I guess it's worth to try! :D

Offline PieterGen

  • Posts: 135
Re: A modified Colemak
« Reply #3 on: Thu, 11 December 2014, 06:33:24 »
@ Sc0tTy - your analysis is too simplistic.  Yes, letter frequency is an important factor in keyboard layout design. Frequent letters should be in easy to reach positions. But, letter frequency is certainly not the only factor. Some other factors are:
- bigram frequencies. A bigram is a combination of two letters. In English the most common bigrams are th he and in. This means that it should be easy to type those combinations. Which means that for instance t and h should not be typed with the same finger. Likewise for he, in and so forth. In Dutch the three most common bigrams are en er de
- alternation (prevention of too long one hand strings). You don't want all frequent letters/ bigrams on one hand and all infrequent on the other hand. On an English layout, the five most common bigrams are th he in er an. If you would put therans on one hand, you would end up with far too much long strings on one hand. There are rats near here, the rest treats ..... and so on, all on one hand. A Dutch layout that puts enratid on one hand would be equally horrible.
- hand and finger load. Usually a 50%/50% hand load is desirable. An ideal finger load would be something like (not counting thumbs, and counting l.pinky-l.ring-l.middle-l.index-r.index-r.middle-r.ring-r.pinky)  9% - 11% - 16%-14%  14%-16%-11%-9%  Preferences may differ though, some people want less load on the pinkies (thus more on the rest), others like less load on the index and more on the middle and so on.
- low same finger use; low row jumps, low home jump (bottom row -> top row or vice versa)
« Last Edit: Thu, 11 December 2014, 06:37:26 by PieterGen »

Offline Sc0tTy

  • Posts: 167
  • Location: Netherlands
  • Ergo enthousiast
Re: A modified Colemak
« Reply #4 on: Thu, 11 December 2014, 06:44:16 »
@ Sc0tTy - your analysis is too simplistic.  Yes, letter frequency is an important factor in keyboard layout design. Frequent letters should be in easy to reach positions. But, letter frequency is certainly not the only factor. Some other factors are:
- bigram frequencies. A bigram is a combination of two letters. In English the most common bigrams are th he and in. This means that it should be easy to type those combinations. Which means that for instance t and h should not be typed with the same finger. Likewise for he, in and so forth. In Dutch the three most common bigrams are en er de
- alternation (prevention of too long one hand strings). You don't want all frequent letters/ bigrams on one hand and all infrequent on the other hand. On an English layout, the five most common bigrams are th he in er an. If you would put therans on one hand, you would end up with far too much long strings on one hand. There are rats near here, the rest treats ..... and so on, all on one hand. A Dutch layout that puts enratid on one hand would be equally horrible.
- hand and finger load. Usually a 50%/50% hand load is desirable. An ideal finger load would be something like (not counting thumbs, and counting l.pinky-l.ring-l.middle-l.index-r.index-r.middle-r.ring-r.pinky)  9% - 11% - 16%-14%  14%-16%-11%-9%  Preferences may differ though, some people want less load on the pinkies (thus more on the rest), others like less load on the index and more on the middle and so on.
- low same finger use; low row jumps, low home jump (bottom row -> top row or vice versa)

This is the exact reason why I haven't changed anything yet :) But for us Dutch folk it makes a lot of sense to put J on a better position.
1x ErgoDox EZ
2x Truly Ergonomic Keyboard 229
2x Kinesis Freestyle V3-VIP
2x Bamboo Pen & Touch (Mouse replacement)
2x Salli Swing
1x Herman Miller Aeron

Offline PieterGen

  • Posts: 135
Re: A modified Colemak
« Reply #5 on: Thu, 11 December 2014, 07:49:35 »
Yep! Interesting keyboard layout analysis software  (nice word  :cool: ) is that of Adnw, it's on adnw.de/downloads,  Entwicklungsprogramme,  Optimierer
It is a C++ program (as source code) that calcutes keyboards, based on your texts and your assumptions/goals (like: maximize alternation, or rolls, etc.) It is very hard to do thius by hand.

A handicap that we Dutchies and all others have who type in 2 or more languages: do go go for a compromise keyboard, that is good enough for all languages? Or do you optimise for one language - and accept that the keyboard is suboptimal in the other language?  Case in point: Colemak. Nice keyboard for English, but in Dutch it suffers from a high same finger ratio.

Offline luisbg

  • Posts: 248
  • Location: London
Re: A modified Colemak
« Reply #6 on: Thu, 11 December 2014, 19:04:34 »
Yep! Interesting keyboard layout analysis software  (nice word  :cool: ) is that of Adnw, it's on adnw.de/downloads,  Entwicklungsprogramme,  Optimierer
It is a C++ program (as source code) that calcutes keyboards, based on your texts and your assumptions/goals (like: maximize alternation, or rolls, etc.) It is very hard to do thius by hand.

I am using Bu-TECK from AdnW.

A friend of mine who has been studying keyboard ergonomics for way longer than me told me, "Switching away from qwerty is totally worth it. Which optimal layout (dvorak, colemak, workman) doesnt matter much. They all are heaps better than qwerty, and just slightly better than each other in particular cases".

I tend to agree.
Leopold FC660M - Brown mx switches - black case - white blank keys :: ErgoDox - Blue mx switches - classic case - black blank keys

Offline stevep

  • Posts: 36
    • Colemak Mod-DH
Re: A modified Colemak (Mod DH)
« Reply #7 on: Sat, 07 March 2015, 09:54:32 »
Hello geekhackers!

I am the creator of the Colemak DH mod mentioned in the original post.

As has been mentioned, the aim was to make a modification to Colemak to fix one of its most common cited criticisms: the placement of common keys (D and H) in the centre column. I believe the Workman layout was created largely on the basis of that percieved flaw. However I would argue this mod addresses the problem in a more elegant way, keeping Colemak's other advantages, such as its low rate of same-finger bigrams.

D and H are both in the top 10 of English letters and should be easy to type! At the same time, the two keys on the bottom row beneath the index finger (C and M in Qwerty) are often underrated - I would say they are almost home row quality!

The mod's purpose it therefore to offer an alternative solution for those who find reaching for centre-column awkward. It certainly makes it much more comfortable to type common words containing HE (the, there, when, etc). I have been using for several months and am very happy with it.

Just thought I would say hello to the forum and offer a bit of context/explanation.
« Last Edit: Sat, 07 March 2015, 09:56:49 by stevep »

Offline Oobly

  • * Esteemed Elder
  • Posts: 3929
  • Location: Finland
Re: A modified Colemak
« Reply #8 on: Mon, 09 March 2015, 07:52:23 »
It breaks the shortcut key familiarity of Colemak, though. If you're doing that, you may as well go for an even more optimised layout.
Buying more keycaps,
it really hacks my wallet,
but I must have them.

Offline stevep

  • Posts: 36
    • Colemak Mod-DH
Re: A modified Colemak
« Reply #9 on: Mon, 09 March 2015, 12:41:34 »
It breaks the shortcut key familiarity of Colemak, though. If you're doing that, you may as well go for an even more optimised layout.

You are right that V is separated by one key from X and C but they are all on the same fingers before and still on the bottom row, so actually shortcuts don't feel *so* unfamiliar. Trying to maintain some Qwerty similarity where possible is worthwhile in my view, as it makes a new layout a little easier to learn. For those for whom shortcuts are sacrosanct, on the Colemak forum an alternative version was also proposed, where the bottom row is Z X C V D, to avoid exactly that problem.

I would be interested to see what an "even more optimized layout" would look like. I'm not saying such a thing is impossible, but I think the scope to get improved key positions while not adversely affecting same-finger bigrams or finger balance would be a tough challenge indeed!
« Last Edit: Mon, 09 March 2015, 12:50:05 by stevep »

Offline Oobly

  • * Esteemed Elder
  • Posts: 3929
  • Location: Finland
Re: A modified Colemak
« Reply #10 on: Mon, 09 March 2015, 13:49:40 »
It breaks the shortcut key familiarity of Colemak, though. If you're doing that, you may as well go for an even more optimised layout.

You are right that V is separated by one key from X and C but they are all on the same fingers before and still on the bottom row, so actually shortcuts don't feel *so* unfamiliar. Trying to maintain some Qwerty similarity where possible is worthwhile in my view, as it makes a new layout a little easier to learn. For those for whom shortcuts are sacrosanct, on the Colemak forum an alternative version was also proposed, where the bottom row is Z X C V D, to avoid exactly that problem.

I would be interested to see what an "even more optimized layout" would look like. I'm not saying such a thing is impossible, but I think the scope to get improved key positions while not adversely affecting same-finger bigrams or finger balance would be a tough challenge indeed!

I prefer an alternate layout to be as different from QWERTY as possible in terms of the alpha characters, since then it impacts your QWERTY skills less during the learning period, but it depends on if you want to replace your QWERTY skills or keep them in tandem with your new layout. I didn't have a choice as I needed to keep my QWERTY skills up to speed for my work.

I agree that it's not easy to come up with a better layout, but if you put enough time and effort in you can do it. Here's one I came up with:

93280-0


You can try in the patorjk analyser:

Code: [Select]
{
    "label": "Modified AdNW",
    "fingerStart": {
        "1": 29,
        "2": 30,
        "3": 31,
        "4": 32,
        "5": 56,
        "6": 56,
        "7": 35,
        "8": 36,
        "9": 37,
        "10": 38,
        "11": 56,
        "false": -1
    },
    "keyboardType": "standard",
    "author": "Stephen Keen",
    "authorUrl": "",
    "moreInfoUrl": "",
    "moreInfoText": "",
    "keys": [
        {
            "primary": 96,
            "shift": 126,
            "finger": 1,
            "id": 0
        },
        {
            "primary": 49,
            "shift": 33,
            "finger": 1,
            "id": 1
        },
        {
            "primary": 50,
            "shift": 64,
            "finger": 2,
            "id": 2
        },
        {
            "primary": 51,
            "shift": 35,
            "finger": 3,
            "id": 3
        },
        {
            "primary": 52,
            "shift": 36,
            "finger": 4,
            "id": 4
        },
        {
            "primary": 53,
            "shift": 37,
            "finger": 4,
            "id": 5
        },
        {
            "primary": 54,
            "shift": 94,
            "finger": 7,
            "id": 6
        },
        {
            "primary": 55,
            "shift": 38,
            "finger": 7,
            "id": 7
        },
        {
            "primary": 56,
            "shift": 42,
            "finger": 8,
            "id": 8
        },
        {
            "primary": 57,
            "shift": 40,
            "finger": 9,
            "id": 9
        },
        {
            "primary": 48,
            "shift": 41,
            "finger": 10,
            "id": 10
        },
        {
            "primary": 45,
            "shift": 95,
            "finger": 10,
            "id": 11
        },
        {
            "primary": 61,
            "shift": 43,
            "finger": 10,
            "id": 12
        },
        {
            "primary": 8,
            "finger": 10,
            "id": 13
        },
        {
            "primary": 9,
            "finger": 1,
            "id": 14
        },
        {
            "primary": 98,
            "shift": 66,
            "finger": 1,
            "id": 15,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 117,
            "shift": 85,
            "finger": 2,
            "id": 16,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 44,
            "shift": 60,
            "finger": 3,
            "id": 17,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 46,
            "shift": 62,
            "finger": 4,
            "id": 18,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 113,
            "shift": 81,
            "finger": 4,
            "id": 19,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 112,
            "shift": 80,
            "finger": 7,
            "id": 20,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 99,
            "shift": 67,
            "finger": 7,
            "id": 21,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 108,
            "shift": 76,
            "finger": 8,
            "id": 22,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 109,
            "shift": 77,
            "finger": 9,
            "id": 23,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 102,
            "shift": 70,
            "finger": 10,
            "id": 24,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 91,
            "shift": 123,
            "finger": 10,
            "id": 25
        },
        {
            "primary": 93,
            "shift": 125,
            "finger": 10,
            "id": 26
        },
        {
            "primary": 92,
            "shift": 124,
            "finger": 10,
            "id": 27
        },
        {
            "primary": 20,
            "finger": 1,
            "id": 28
        },
        {
            "primary": 104,
            "shift": 72,
            "finger": 1,
            "id": 29,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 105,
            "shift": 73,
            "finger": 2,
            "id": 30,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 101,
            "shift": 69,
            "finger": 3,
            "id": 31,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 97,
            "shift": 65,
            "finger": 4,
            "id": 32,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 111,
            "shift": 79,
            "finger": 4,
            "id": 33,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 100,
            "shift": 68,
            "finger": 7,
            "id": 34,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 116,
            "shift": 84,
            "finger": 7,
            "id": 35,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 114,
            "shift": 82,
            "finger": 8,
            "id": 36,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 110,
            "shift": 78,
            "finger": 9,
            "id": 37,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 115,
            "shift": 83,
            "finger": 10,
            "id": 38,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 47,
            "shift": 63,
            "finger": 10,
            "id": 39,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 13,
            "finger": 10,
            "id": 40
        },
        {
            "primary": 16,
            "finger": 1,
            "id": 41
        },
        {
            "primary": 107,
            "shift": 75,
            "finger": 1,
            "id": 42,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 121,
            "shift": 89,
            "finger": 2,
            "id": 43,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 39,
            "shift": 34,
            "finger": 3,
            "id": 44,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 45,
            "shift": 95,
            "finger": 4,
            "id": 45,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 120,
            "shift": 88,
            "finger": 4,
            "id": 46,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 106,
            "shift": 74,
            "finger": 7,
            "id": 47,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 103,
            "shift": 71,
            "finger": 7,
            "id": 48,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 119,
            "shift": 87,
            "finger": 8,
            "id": 49,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 118,
            "shift": 86,
            "finger": 9,
            "id": 50,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": 122,
            "shift": 90,
            "finger": 10,
            "id": 51,
            "altGr": -1,
            "shiftAltGr": -1
        },
        {
            "primary": -16,
            "finger": 10,
            "id": 52
        },
        {
            "primary": 17,
            "finger": 5,
            "id": 53
        },
        {
            "primary": -91,
            "finger": 5,
            "id": 54
        },
        {
            "primary": 18,
            "finger": 5,
            "id": 55
        },
        {
            "primary": 32,
            "finger": 5,
            "id": 56
        },
        {
            "primary": -18,
            "finger": 6,
            "id": 57
        },
        {
            "primary": -91,
            "finger": 6,
            "id": 58
        },
        {
            "primary": -93,
            "finger": 6,
            "id": 59
        },
        {
            "primary": 17,
            "finger": 6,
            "id": 60
        }
    ]
}

I designed it for a vertical staggered board like ErgoDox with thumb keys that make it even more efficient. It uses different philosophy to Colemak, though, with alternation favoured over rolls.
Buying more keycaps,
it really hacks my wallet,
but I must have them.

Offline Oobly

  • * Esteemed Elder
  • Posts: 3929
  • Location: Finland
Re: A modified Colemak
« Reply #11 on: Mon, 09 March 2015, 14:40:44 »
I feel I should apologise for my abrupt statement about the layout. I  must commend you on taking a well established layout and improving it. I should also point out that my layout is designed around the criteria that I find important, so it may well not be a good fit for others.
Buying more keycaps,
it really hacks my wallet,
but I must have them.

Offline stevep

  • Posts: 36
    • Colemak Mod-DH
Re: A modified Colemak
« Reply #12 on: Tue, 10 March 2015, 08:57:13 »
I feel I should apologise for my abrupt statement about the layout. I  must commend you on taking a well established layout and improving it. I should also point out that my layout is designed around the criteria that I find important, so it may well not be a good fit for others.

No worries!  I had a bit of a look at your layout. It has some nice features - the same-finger ratio is slightly lower than Colemak's which is no mean feat. Of course, it looses all Qwerty (and shortcut) similarity which for me is a significant down side, but OK for those who want to make a completely clean break. Since I switched to Colemak and haven't needed to use Qwerty so I don't care about maintaining Qwerty ability at all, and ease of learning was a major factor.

I notice you have O and D in the middle row centre column. I presume therefore you don't hold with the Workman criticism that those are awkward keys?  For intermediately-common keys, I like to make to good use of the best available non-home keys i.e. bottom-row index finger and top-row middle finger. For your layout, that means I would probably want to switch O with - and also D with G!  It's amazing how subjective Keyboard layouts can be :)


Offline EZPZ

  • Posts: 1
Re: A modified Colemak
« Reply #13 on: Mon, 27 September 2021, 04:55:13 »
I have been using the swapped version of V and D, and it works out really nicely - maintaining the shortcut key functionality is such a big plus!