• You are not logged in.

    Alternate second level choosers for coders

    • Started by ethana2
    • 12 Replies:
    • Reputation: 0
    • Registered: 09-May-2007
    • Posts: 79

    A programmer expressed a desire for a layout that would put common syntax characters where he could get to them often without straining.  Basically I think this should be done with a version of colemak that's designed secondarily for C instead of Español, that is, the 'second level choosers', or the chars you get when you hit keys in combination with altgr, would be things like ( and { and # instead of the accent dead key, ß, and á (perhaps respectively).
    The conversation is below.  Feel free to skip it if you understand what the need is.

    from #colemak on irc.freenode.net
    (02:58:02 PM) ethan: I wonder...
    (02:58:10 PM) Ghost-r: Perogies ethana2 gonna takeover from here
    (02:58:22 PM) ethan: what about second level choosers for programmers?
    (02:58:24 PM) ethan: heh
    (02:58:28 PM) Ghost-r: may the Gods help you :P
    (02:58:29 PM) Perogies: ok ok,
    (02:58:30 PM) ethan: instead of multilingual stuff....
    (02:58:33 PM) ethan: like á and ñ
    (02:58:37 PM) ethan: { (, etc
    (02:58:40 PM) Perogies: I have given up on entikey
    (02:58:44 PM) ethan: Yes.
    (02:58:53 PM) Perogies: it was neat, but its a hassle to get working
    (02:59:13 PM) ethan: ...I like the idea of coder oriented second level choosers with colemak
    (02:59:26 PM) ethan: altgr+t (
    (02:59:31 PM) ethan: altgr+n )
    (02:59:37 PM) ethan: altgr+s {
    (02:59:41 PM) ethan: altgr+e }
    (02:59:47 PM) ethan: any thoughts?
    (03:00:03 PM) Perogies: I am wondering if there is a colemak oriented for programmers~ I havnt learned how to type with all the special keys, and frankly I wish they were in better places
    (03:00:55 PM) ethan: I'll start a colemak forums thread, there's no way you're alone
    (03:02:26 PM) Perogies: oh sheesh
    (03:02:43 PM) Perogies: so you mean like alt-gr
    (03:02:58 PM) Perogies: to have the symbols in a relivant space
    (03:03:58 PM) ethan: so you don't have to move any fingers for parethneses and stuff
    (03:04:05 PM) Perogies: yah
    (03:04:12 PM) Perogies: man, that strains my pinky
    (03:05:03 PM) Perogies: so there isnt one out there yet? Cause I am looking at all the multi lingual stuff, and I cant ever remember a time I needed it, except for writing Blue Oyster Cult
    (03:08:03 PM) Ghost-r: afaik no
    (03:08:21 PM) Ghost-r: theres one in dvorak

    Last edited by ethana2 (01-Nov-2008 21:09:01)
    Offline
    • 0
    • Reputation: 0
    • Registered: 27-Apr-2008
    • Posts: 166

    There has been discussion of this here:

    https://forum.colemak.com/viewtopic.php?id=524

    I'm not a programmer, but having the most commonly used punctuation symbols nearer to the home row is very easy by remapping the /? key to AltGr, as discussed in the above link. As Tomlu has pointed out in that thread, finding a low same finger, minimal row/hand jumping layout is not easy. Mainly due to the requirements of different programming languages. I have the left side of the 'board set up like this:

    ! ? + = *  < Q W F P G
    - _ ( ) @   < A R S T D
    | \ / & %  < Z X C V B

    I'm still undecided on the right side of 'board. This works very well for me as a non-programmer (I attempt to learn then quickly throw in the towel).

    The word is that Shai would not want to include this as a part of Colemak, which I understand. Too much memory burden for the new user plus it would be very hard to have a standard Alt. layout that would appeal to all programmers.

    Last edited by simonh (01-Nov-2008 21:45:07)

    "It is an undoubted truth, that the less one has to do, the less time one finds to do it in." - Earl of Chesterfield

    Offline
    • 0
    • Reputation: 0
    • Registered: 09-May-2007
    • Posts: 79

    I would certainly not put open and close brackets of any kind on the same hand..  they should be opposite fingers.
    I'm thinking of a coder's colemak as perhaps a seperate implementation from the 'normal' one.
    What about an altgr layout like this:

    !@#$%^&*_=
    \ [ { ( <  > ) } ] +

    Offline
    • 0
    • Reputation: 0
    • Registered: 27-Apr-2008
    • Posts: 166
    ethana2 said:

    I would certainly not put open and close brackets of any kind on the same hand..

    Why do you say that? Using Qwerty (or standard Colemak), programmers have all brackets same hand...

    Plus, using Python which often has (), it makes for a nice inward roll.

    Last edited by simonh (01-Nov-2008 22:08:48)

    "It is an undoubted truth, that the less one has to do, the less time one finds to do it in." - Earl of Chesterfield

    Offline
    • 0
    • Reputation: 0
    • Registered: 25-Oct-2008
    • Posts: 11

    A problem with the right side is you can't touch type it effectively because of the single AltGr key. Some might use double finger operations with the pinky of thumb, or cross hands, but I wouldn't make any of that official. Other custom solutions seen here involve remapping other keys such as Caps Lock and even z and /, but I'd also leave those as what they are: custom tweaks with your favorite keymap editor.

    deskthority.net - input devices extraordinaire

    Offline
    • 0
    • Reputation: 0
    • Registered: 17-Mar-2008
    • Posts: 192

    I would certainly not put open and close brackets of any kind on the same hand..  they should be opposite fingers.

    Unless you have dedicated non-modified keys for your brackets, or you access them with a foot pedal, you will find that putting them on opposite hands is painful. Either you chord correctly and have to switch modifier hand every other keystroke, or you do not chord correctly - along with its concomitant disadvantages.

    Offline
    • 0
    • Reputation: 0
    • Registered: 09-May-2007
    • Posts: 79

    Interesting points..

    I suppose we have enough implementation trouble without using the space bar as a modifier.

    Last edited by ethana2 (08-Nov-2008 07:18:24)
    Offline
    • 0
    • Reputation: 210
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,345

    The space bar was attempted for the mirrored "half"-colemak as you'll recall. I think it's a horrible idea since it's the most used of all keys and therefore mixups will be that much more common. I never tried it a lot, but enough to get this impression at least.

    Its' beauty lies in the symmetry: For the mirrored Colemak for instance, you could type right-handed or left-handed without remapping more than one modifier. Too bad it's too problematic. What I've found to work though, is the old B key when you move the ZXCVB one step to the left. In the "comfort Colemak" layout in PKL that key becomes an Enter key which is a decent enough idea, but it could just as well become a new modifier. Symmetric, hardly used beforehand and all in all a good choice I think.

    Last edited by DreymaR (02-Dec-2008 09:41:19)

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

    Offline
    • 0
    • Reputation: 0
    • Registered: 02-Dec-2008
    • Posts: 2

    I made a colmak layout with prgramming second level choosers by copying of the ddvorak layout. This uses altgr to modify for common prgramming symbols on the other side of the keyboard, and uses the ; as a modifier (where ";" "spacebar" is "; ") on the theory that we only ever use "; " and never ";d' or anything else?

    The ddvorak creater puts it like this for what he did with comma:
    "Other keys are accessed using , (comma). I came up with the idea of using comma as a modifier (dead key) when I realized comma is always followed by a space or a number. So comma + space can output just that, but comma + a letter can output, for example, a symbol. Microsot Keyboard Layout Creator lets you do exactly that if you set comma (,) as a dead key. In addition, the left ring finger operates the comma and it happens to be the least used finger in Dvorak (so it can handle the extra work)."

    He also had a numpad acesable from ddvoraks second altgr but since colemak only has one I removed it.

    What do you think? What could be improved?

    DDvorak layout - http://www.siteuri.ro/dvorak/DDvorak.aspx

    Picture:

    colemakprogrammersmikeble8.png

    Last edited by Wassname (02-Dec-2008 06:59:27)
    Offline
    • 0
    • Reputation: 210
    • From: Viken, Norway
    • Registered: 13-Dec-2006
    • Posts: 5,345

    Not sure what you're saying here; that a semicolon is invariably followed by whitespace? This certainly isn't the case for me. I'm prone to writing semicolon-delimited lists for instance. If you just release the semicolon character with space, will it be too annoying to have to type the other space directly afterwards?

    The other way of implementing this is the combined-hotkey way with AutoHotKey. Releasing the semicolon alone would then produce the semicolon, but if you depressed something else first you'd get the corresponding symbol. You could use the PKL program if you want to, redefining the 'extend key' to semicolon and the 'extend' mappings to yours.

    Your brackets could have been a bit more aligned, maybe? I think that for instance Tomlu's layout is easier on the eye. Try to imagine that someone else sees your layout for the first time and hasn't got a lot of time and energy to learn everything; how will you make it easier for them both to learn and later to use?

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

    Offline
    • 0
    • Reputation: 0
    • Registered: 02-Dec-2008
    • Posts: 2

    I was saying the semicolon was modifier, and the combination of the semicolon/modifier and space would give the double charector semicolon-space. Thats what was implemented with ddvorak but with the comma which is a fascinating idea but perhaps not feasible - since you couldnt add semicolons repeatedly onto the end of a list. The comma could always be used, or your idea which is simple and good!

    Your right about a more intuitive arragement of keys since the arrangment here hasnt been optimised anyway. I had a look at the other thread with tomlus layout which looks better than mine, so I'll probobly use that. Thanks

    Last edited by Wassname (04-Dec-2008 11:34:54)
    Offline
    • 0
    • Reputation: 0
    • Registered: 17-Mar-2008
    • Posts: 192

    My five cents' worth:

    If you design the layout carefully, you don't need any of ==, <=, >=, !=, +=, -=

    Instead, separately place all of =, >, <, !, +, - such that they roll nicely. You'll save space.

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

    In the spirit of gravedigging: Hmmm... maybe the semicolon-compose idea could be good after all?

    I'm thinking that if you let semicolon plus numbers, whitespace or another semicolon pass through unharmed then for the most part you shouldn't be in trouble with this. And it does open some intrigueing possibilities for a coding layer for instance.

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

    Offline
    • 0