Closed ghost closed 3 years ago
Hi, glad you're enjoying Mod-DH so far.
I am a programmer too, so I share your concerns over symbol positions. However, I find that punctuation characters like comma and dot are OK as they are - the bigger issue is the frequently needed symbols that are further away from the home position, such as brackets, underscore, etc.
To this end, I have created a Programmer Extension layer, activated via the AltGr key. Note the numeric keypad on the right-hand keys - if you prefer to use that for numbers, you could then use the top-row number keys to produce other symbols (i.e. without needing shift).
I guess with the Kinesis Advantage2, B is slightly harder and J is slightly easier compared to a staggered keyboard. Since neither are highly frequent letters, I find their positions are OK. Certainly B is much better than the standard staggered-keyboard Qwerty position. I would be worried about introducing awkward bigrams if B and J moved to the comma and dot positions.
You should be able to enter custom keys and values in the layout analyzer. Make sure that left box (showing keymap) and the right box (showing scores) have the same number of values for each row.
Hello, thank you for your response.
After more experimenting, I agree that the position of ',' and '.' are actually good where they are and should just leave the letters where they are too. I've read some keyboard theory that characters that finish statements/lines should ideally be on the top layer to avoid mistakes like the very common mistake of finishing a question with "/" instead of "?". Because of this, I've changed my goal to have all the finishing punctuation like "," "." ";" "?" "};" "{" ">" and I'm experimenting with macroing {enter} after some of them [any more that i should include? Still new to programming.]
Your extended layout is interesting. The kinesis doesn't seem to have an altgr action but I think the keypad layer is the same thing. How did you decide on what symbols to place where? Did you use a heatmap to find the most commonly used symbols? And did you place them according to your finger effort diagram or some other method?
Currently, my own attempt is derived partly from a heatmap I found of the most common symbols and partly from programmer's dvorak number row being placed in the low finger effort parts of the keyboard. But it still seems a bit random, maybe because i don't have enough programming experience yet. I've read about Benford's Law and the way the numbers are organized there also makes more sense to me so the way I'm looking at it atm is:
n n n n n n n n n n 7 5 3 1 n n 0 2 4 6 n n n 9 n n 8 n n n
n = null and the numbers will probably be the shifted version of whatever symbols I put there in order of importance. Probably have another modifier in there to activate function keys in the same spots as the numbers with F11 and F12 being on the top row.
The reason I'm trying to stick to 3 rows is because i think they are the most ergonomic and efficient. I've always hated the number row and especially the function row, even though I have big hands so i'm trying my best to fit in everything here. Also there are no finger effort diagrams I can find past the 3 rows. Do you think what I'm saying makes sense? I'd like to know if I'm making any mistaken assumptions.
As for the layout analyzer, I can enter custom keys, but it won't let me enter in my own data or use your non-punctuation english data since it seems to be missing/corrupted. It would be amazing if you could extend the analyzer to allow custom data or had it use more entries dedicated for programmers. Also adding a way to have the extend layer be included in the analysis and include all the symbol positions would be amazing too, that would basically solve a lot of the issues I'm seeing lots of programmers have.
Thank you again.
In my setup, I actually have two separate layers:
I didn't use a heatmap to work out what to put where to put symbols, but I was aware of the most common symbols typically typed. Here is one example. Using Benford's Law, your proposed number mapping makes sense, but to me it was more important keep familiarity with the standard "numpad" layout. So I decided upon having symbols on the left, numbers on the right. I'm strongly sympathetic to the idea of avoiding using the numbers/top row, hence in my symbols layer, most of the common characters are accessible within the three main rows.
In the layout analyzer, you can assign more than one character to a key by entering them as a single token, for example ";:" would mean both semicolon and colon are assigned to that key. However, this is somewhat limited, as it will still only work for a limited number of symbols, defined here:
ETAOINHSRDLUMWCFYG,PB.VK';?JXQ:Z/
These are the only characters included in the currently used letter and bigrams stats files.
Yes I saw your extend layer and I like the concept, but after fiddling around a lot I felt that it was just easier to move them to the bottom 4th row for movement because holding something down while moving felt cumbersome. Also, everything I use including my browser uses vim commands so I (probably?) won't need to use actual arrow keys too often, especially now that I'm switching to Arch Linux. With that being said, I find it very strange that movement is on the right. Maybe it is because I am used to gaming controls but navigation on the left with modifiers on the left and "actions" on the right has always seemed far more practical and is the standard in all gaming controllers, so I've moved navigation over there. Afaik vim movement is entirely arbitrary since its based off of an old terminal computer the creator had. Like using a joystick in the right hand would feel super weird at an arcade for example, or the analog stick on a gamepad. WASD is also standard movement for most people in games. Do you have an opinion on this?
I did see that frequency chart you linked before. I'm thinking of making a keylogger and just building up a frequency chart for myself because frankly even if we analyzed a bunch of files, it won't take into account things like vim commands and the fact that I don't just program.
As for keys outside of the 3 rows in your frequency chart, do you know or can you at least guess what order of difficulty the 6th column (Tab/Caps/lShift & \'rshift) and the other surrounding keys on the kinesis would be? I'm trying to figure out where to put ";" for example and I'm currently leaning on where " ' " is as the easiest spot.
It's strange how so little real research has been done on what is fundamentally used by everybody everywhere for most high level work. I'm thinking QWERTY will simply never go away unfortunately.
Hi. I'm the original creator of Extend. Please read my Extend topic on the Colemak Forum to learn more about it. I do have left-hand navigation for my second Extend layer (NumPad), but I prefer the right-hand navigation as it combines with the home row modifiers which is very important.
I also use Extend navigation with Vim and find that it integrates very well.
I don't believe heat maps are that important for symbol and edting layers, as they are more about ease of thinking than about typing flow. I may be wrong of course, but I believe that for most people it'll be more important to have a logical symbol layer than one optimized for frequency like letter layouts are.
Hello, I've recently switched to Mod-DH and I find it has definitely helped me type more efficiently. However, I am studying to be a programmer so the positions of ',' '.' '/' ';' aren't really suitable for me since I use them more often than many letters.
I'm using a Kinesis Advantage2 and I've decided that what makes the most sense for me is to map the extend layer with the symbols using your finger effort chart but have the top layer comprise of your matrix layout. Do you feel this makes sense?
Also, because I am thinking of removing the symbols from the top layer, I was wondering if it would in turn make more sense to replace the position of ',' and '.' with 'b' and 'j' since b and j are in more difficult positions. I tried testing this in your layout analyzer without punctuation but there seems to be an error with it. Is there a way to input my own data and does this change make sense to you? Also a programmer centric analyzing mode would be very helpful.
Thank you for your time and your layout.