geekhack

geekhack Projects => Making Stuff Together! => Topic started by: EdibleCrab on Sat, 11 March 2017, 15:00:56

Title: tkg.io keymap for 60%
Post by: EdibleCrab on Sat, 11 March 2017, 15:00:56
Introduction
This layout is built specifically for Windows-based programming and Excel use. It must also be serviceable for general text entry, such as writing emails and Word documents. It does use Vim arrows, which may seem like an odd choice for a Windows layout, but it works for me. My keyboard is a GH60 Satan with US key layout, a blank 1976-style PBT keyset, and MX Clear switches. My goal here is to finalize a key mapping that I can then replicate on another identical board, so that I can preserve muscle memory between home and work. All feedback is welcome.

Edit: I've added a fourth layer, which allows keyboard shortcuts to work during navigation and calculation.

Layer keys

Layer 0 is general text entry.

(http://i.imgur.com/3ia4BSI.png)

Layer 0 special keys

Layer 1 is the navigation layer. Navigation refers to multiple ideas here. There is navigation within text, within a webbrowser, and within the operating system.

When writing text, both hands will be firmly on the keyboard, but when surfing the web, often the right hand will be on the mouse. This means the functions that the left hand can still access should be the ones that are still useful when mousing, which luckily ties in well with the Vim arrows. I turn off most unused keys, to prevent typos.

Originally I tried to put dedicated keys for manipulating webbrowser tabs here, but it was quite a squeeze. Leaning on left-ctrl and using the standard w/r/t for close/refresh/new tab isn't a hardship.

(http://i.imgur.com/GZstfqB.png)

Layer 1 special keys

Layer 2 is the numeric calculation layer. The right hand acts in-place as a numpad, the left hand has access to basic operations. I tried '0' on 'b' and even 'e' key, but it turned out to be too difficult to remember, so I made it a big target (spacebar!), and put the decimal point closer to where it would be on a regular numpad. Again, most unused keys are explicitly turned off.

(http://i.imgur.com/IrZ1lGC.png)

Layer 2 special keys

Layer 3 is a simple set of keys commonly combined with ctrl in keyboard shortcuts. Having this layer triggered on ctrl allows these shortcuts to work during navigation and calculation.

(http://i.imgur.com/EJ8JeBT.png)

Code for Keyboard Layout Editor (http://www.keyboard-layout-editor.com)

1976 Satan Layer 0 - General Alpha and Symbols
Code: [Select]
[{c:"#5dceba",sm:"cherry",sb:"cherry",st:"MX1A-C1xx"},"FN7","FN21","FN22","FN23",{c:"#ba1312"},"FN24",{c:"#d83712"},"FN25",{c:"#e1ba44"},"FN26",{c:"#5b3314"},"FN27","FN28","FN29","FN20","_\n-","+\n=",{w:2},"Backspace"],
[{c:"#5dceba",w:1.5},"FN17","Q","W",{c:"#ba1312"},"E",{c:"#d83712"},"R",{c:"#e1ba44"},"T",{c:"#5b3314"},"Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{c:"#5dceba",w:1.75},"FN0","A",{c:"#ba1312"},"S",{c:"#d83712"},"D",{c:"#e1ba44",n:true},"F",{c:"#5b3314"},"G","H",{n:true},"J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{c:"#5dceba",w:2.25},"FN5",{c:"#ba1312"},"Z",{c:"#d83712"},"X",{c:"#e1ba44"},"C",{c:"#5b3314"},"V","B","N","M","<\n,",">\n.","?\n/",{w:2.75},"FN6"],
[{c:"#5dceba",w:1.25},"LCtrl",{c:"#ba1312",w:1.25},"FN1",{c:"#d83712",w:1.25},"LAlt",{c:"#5b3314",w:6.25},"FN2",{w:1.25},"RAlt",{w:1.25},"RCtrl",{w:1.25},"FN3",{w:1.25},"FN4"]

1976 Satan Layer 1 - Navigation
Code: [Select]
[{c:"#5dceba"},"FN8","F1","F2","F3",{c:"#d83712"},"F4",{c:"#e86700"},"F5",{c:"#e1ba44"},"F6",{c:"#5b3314"},"F7","F8","F9","F10","no","no",{w:2},"Del"],
[{c:"#5dceba",w:1.5},"FN12","no","FN10",{c:"#d83712"},"FN11",{c:"#e86700"},"no",{c:"#e1ba44"},"no",{c:"#5b3314"},"no","FN14","FN15","no","no","no","no",{w:1.5},"no"],
[{c:"#5dceba",w:1.75},"FN9","home",{c:"#d83712"},"pgup",{c:"#e86700"},"pgdn",{c:"#e1ba44",n:true},"end",{c:"#5b3314"},"no","left",{n:true},"down","up","right","no","no",{w:2.25},"Enter"],
[{c:"#5dceba",w:2.25},"FN5",{c:"#d83712"},"no",{c:"#e86700"},"no",{c:"#e1ba44"},"no",{c:"#5b3314"},"no","no","no","no","no","no","no",{w:2.75},"FN6"],
[{c:"#5dceba",w:1.25},"FN19",{c:"#d83712",w:1.25},"FN1",{c:"#e86700",w:1.25},"LAlt",{c:"#5b3314",w:6.25},"FN2",{w:1.25},"RAlt",{w:1.25},"FN19",{w:1.25},"FN3",{w:1.25},"FN4"]

1976 Satan Layer 2 - Numeric
Code: [Select]
[{c:"#5dceba"},"FN8","no","no","no",{c:"#d83712"},"no",{c:"#e86700"},"no",{c:"#e1ba44"},"no",{c:"#5b3314"},"no","no","no","no","no","no",{w:2},"Backspace"],
[{c:"#5dceba",w:1.5},"FN17","no","no",{c:"#d83712"},"no",{c:"#e86700"},"no",{c:"#e1ba44"},"no",{c:"#5b3314"},"7\nhome","8\nup","9\npgup","no","no","no","no",{w:1.5},"no"],
[{c:"#5dceba",w:1.75},"FN13","/",{c:"#d83712"},"*",{c:"#e86700"},"-",{c:"#e1ba44",n:true},"+",{c:"#5b3314"},"no","4\nleft",{n:true},"5","6\nright","no","no","no",{w:2.25},"Enter"],
[{c:"#5dceba",w:2.25},"FN5",{c:"#d83712"},"no",{c:"#e86700"},"no",{c:"#e1ba44"},"no",{c:"#5b3314"},"no","no","1\nend","2\ndown","3\npgdn",".\ndel","no",{w:2.75},"FN6"],
[{c:"#5dceba",w:1.25},"FN19",{c:"#d83712",w:1.25},"FN1",{c:"#e86700",w:1.25},"LAlt",{c:"#5b3314",w:6.25},"0\nins",{w:1.25},"RAlt",{w:1.25},"FN19",{w:1.25},"FN3",{w:1.25},"FN4"]

1976 Satan Layer 3 - Alpha Shortcuts
Code: [Select]
[{c:"#5dceba",sm:"cherry",sb:"cherry",st:"MX1A-C1xx"},"Esc",{a:7},"","","",{c:"#ba1312"},"",{c:"#d83712"},"",{c:"#e1ba44"},"",{c:"#5b3314"},"","","","","","",{w:2},""],
[{c:"#5dceba",a:4,w:1.5},"Tab","Q","W",{c:"#ba1312"},"E",{c:"#d83712"},"R",{c:"#e1ba44"},"T",{c:"#5b3314"},"Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{c:"#5dceba",a:7,w:1.75},"",{a:4},"A",{c:"#ba1312"},"S",{c:"#d83712"},"D",{c:"#e1ba44",n:true},"F",{c:"#5b3314"},"G","H",{n:true},"J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{c:"#5dceba",a:7,w:2.25},"",{c:"#ba1312",a:4},"Z",{c:"#d83712"},"X",{c:"#e1ba44"},"C",{c:"#5b3314"},"V","B","N","M","<\n,",">\n.","?\n/",{a:7,w:2.75},""],
[{c:"#5dceba",a:4,w:1.25},"FN19",{c:"#ba1312",a:7,w:1.25},"",{c:"#d83712",w:1.25},"",{c:"#5b3314",a:4,w:6.25},"Space",{a:7,w:1.25},"",{a:4,w:1.25},"FN19",{a:7,w:1.25},"",{w:1.25},""]

Code for tkg.io (http://tkg.io)

Code: [Select]
"0":["ACTION_LAYER_ON",1,"ON_PRESS"],"1":["ACTION_MODS_KEY","LR_LEFT",["MOD_GUI"],"KC_R"],"2":["ACTION_LAYER_TAP_KEY",1,"KC_SPACE"],"3":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_ALT"],"KC_PSCREEN"],"4":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_ALT"],"KC_L"],"5":["ACTION_MODS_TAP_KEY","LR_LEFT",["MOD_SFT"],"KC_CAPSLOCK"],"6":["ACTION_MODS_TAP_KEY","LR_LEFT",["MOD_SFT"],"KC_CAPSLOCK"],"7":["ACTION_FUNCTION",0,0],"8":["ACTION_LAYER_CLEAR","ON_PRESS"],"9":["ACTION_LAYER_ON","2","ON_PRESS"],"10":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT"],"KC_TAB"],"11":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL"],"KC_TAB"],"12":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_ALT"],"KC_TAB"],"13":["ACTION_LAYER_OFF","2","ON_PRESS"],"14":["ACTION_MODS_KEY","LR_LEFT",["MOD_ALT"],"KC_LEFT"],"15":["ACTION_MODS_KEY","LR_LEFT",["MOD_ALT"],"KC_RIGHT"],"17":["ACTION_LAYER_TAP_KEY","2","KC_TAB"],"19":["ACTION_LAYER_MODS","3",["MOD_CTL"]],"20":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_0"],"21":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_1"],"22":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_2"],"23":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_3"],"24":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_4"],"25":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_5"],"26":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_6"],"27":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_7"],"28":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_8"],"29":["ACTION_MODS_KEY","LR_LEFT",["MOD_SFT"],"KC_9"]
Title: Re: tmk.io keymap for 60%
Post by: yangdigi on Sat, 11 March 2017, 21:10:43
Maybe in your subject title tmk.io is tkg.io.
Am I right?
Title: Re: tmk.io keymap for 60%
Post by: EdibleCrab on Sun, 12 March 2017, 05:23:08
Maybe in your subject title tmk.io is tkg.io.
Am I right?

Yep, fixed it, thanks :)
Title: Re: tkg.io keymap for 60%
Post by: EdibleCrab on Mon, 13 March 2017, 17:00:20
Here's a new keycap set I've come up with to complement the mappings. It has a sort of bright 80's techno-vibe to it. It could have been the corporate colours for a company that made computers.

(http://i.imgur.com/Jjw1LG2.png)

It's easy to identify F5, as well as the round and square brackets. The 1976 scheme makes it easy to find F5, but not so much the brackets, as the right side of the board is entirely brown.

And another asymmetric version, toned down with grey this time.

(http://i.imgur.com/W2ie8aN.png)
Title: Re: tkg.io keymap for 60%
Post by: mnmlisme on Sat, 12 August 2017, 17:10:06
was having trouble mapping multiple layers layout but this post helps me figure out how it works. thanks!
Title: Re: tkg.io keymap for 60%
Post by: EdibleCrab on Fri, 18 August 2017, 06:53:31
Glad to hear it helped. What do your layers look like?

Now that I'm halfway through building a duplicate Satan to use at home, I'm adding a new layer specifically for gaming. For the gaming layer, I'll re-enable the numeric keys, tab and caps-lock, and disable the Windows key and caps-lock-on-shift function. It will be pretty much a standard keyboard layout, just minus the Win-key, and still with functions on the function keys along the bottom-right.

I've also bought a cheap wireless numpad to help further with data entry, which I can put out of the way when it's not needed, and clear up precious mouse-pad space. The numeric layer is still good for typing numbers in the middle of other text.
Title: Re: tkg.io keymap for 60%
Post by: EdibleCrab on Sat, 16 June 2018, 17:41:58
After using this layout for a while, I've decided to simplify it. I think the idea of having numbers on the home row (I experimented with 1 on "a", through to 0 on ";", instead of the numpad-style layout, and found it was better overall, as the stagger was a problem) is better suited to a 40% with a split spacebar, which is not something I'm going to be moving to any time soon. The split space would also allow selection with naviation, e.g. you could select text in exactly the same way you navigate - just progressively hold down one half of the space to enable navigation, then use the other half to trigger shift for selection.

I ended up buying a cheap Bluetooth numpad for the times I really need it, and I just push it out of the way when I don't. I find the battery life is good enough. The whole point of smaller keyboards, at least to me, is to free up space for the mouse, as I find it very uncomfortable to have the mouse a long way to the right, so having the completely detached numpad gives me what I want.

Anyway, this is no longer the old layout from the first post... this is SIMPLE SATAN!


Simple Satan Layer 0 - General Alpha and Symbols

Very close to a completely standard layout. An unsuspecting user could sit down at this keyboard, and not be surprised by it's behaviour. Space is still the primary function key. FN1 through 4 are print-screen, run command, open explorer, and lock screen, respectively.

(https://i.imgur.com/irQrQyk.png)

Code: [Select]
[{c:"#963838",t:"#ffffff",sm:"cherry",sb:"cherry",st:"MX1A-C1xx"},"Esc",{c:"#ffffff",t:"#000000"},"!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{c:"#1d1cb8",t:"#ffffff",w:2},"Backspace"],
[{w:1.5},"Tab",{c:"#ffffff",t:"#000000"},"Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{c:"#1d1cb8",t:"#ffffff",w:1.5},"|\n\\"],
[{w:1.75},"Caps Lock",{c:"#ffffff",t:"#000000"},"A","S","D",{n:true},"F","G","H",{n:true},"J","K","L",":\n;","\"\n'",{c:"#963838",t:"#ffffff",w:2.25},"Enter"],
[{c:"#1d1cb8",w:2.25},"Shift",{c:"#ffffff",t:"#000000"},"Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{c:"#1d1cb8",t:"#ffffff",w:2.75},"Shift"],
[{w:1.25},"LCtrl",{w:1.25},"Win",{w:1.25},"LAlt",{c:"#ffffff",t:"#000000",w:6.25},"FN30",{c:"#1d1cb8",t:"#ffffff",w:1.25},"FN1",{w:1.25},"FN2",{w:1.25},"FN3",{w:1.25},"FN4"]

Simple Satan Layer 1 - Navigation

The navigation keys were my favourite bit in the old layout, and I used them all the time, so I've kept them. I don't need the tricky esc functionality, I've used layers to achieve the same effect, which has the bonus of making backtick available again. FN11 to FN14 send ctrl-alt-shift a through d, which are handy for grabbing with AutohotKey while not interfering with other shortcuts. Caps enables layer 2...

(https://i.imgur.com/dsJQuZs.png)

Code: [Select]
[{c:"#963838",t:"#ffffff",sm:"cherry",sb:"cherry",st:"MX1A-C1xx"},"~\n`",{c:"#ffffff",t:"#000000"},"F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",{c:"#1d1cb8",t:"#ffffff",w:2},"Del"],
[{a:7,w:1.5},"",{c:"#ffffff",t:"#000000",a:4},"no","FN15","FN16","no","no","no","no","FN17","FN18","no","no","no",{c:"#1d1cb8",t:"#ffffff",a:7,w:1.5},""],
[{a:4,w:1.75},"FN10",{c:"#ffffff",t:"#000000"},"home","pgup","pgdn",{n:true},"end","no","no",{n:true},"left","down","up","right","no",{c:"#963838",t:"#ffffff",a:7,w:2.25},""],
[{c:"#1d1cb8",w:2.25},"",{c:"#ffffff",t:"#000000",a:4},"no","no","no","no","no","no","no","no","no","no",{c:"#1d1cb8",t:"#ffffff",a:7,w:2.75},""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{a:4,w:1.25},"FN11",{w:1.25},"FN12",{w:1.25},"FN13",{w:1.25},"FN14"]

Simple Satan Layer 2 - Games

Layer 2 is dedicated to gaming. I hate using caps lock in games, as it triggers an on-screen caps status display in a Rainmeter theme I use. Using F11 (not FN11!) avoids that. I've also put F12 (also not FN12) over the top of the Windows key, so it doesn't get pressed accidentally and try to take me back to the desktop. There's room for three more AutoHotkey macro buttons, as well as the button to exit the layer.

(https://i.imgur.com/nNacFyb.png)

Code: [Select]
[{c:"#963838",t:"#ffffff",sm:"cherry",sb:"cherry",st:"MX1A-C1xx"},"Esc",{c:"#ffffff",t:"#000000"},"!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{c:"#1d1cb8",t:"#ffffff",w:2},"Backspace"],
[{w:1.5},"Tab",{c:"#ffffff",t:"#000000"},"Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{c:"#1d1cb8",t:"#ffffff",w:1.5},"|\n\\"],
[{w:1.75},"F11",{c:"#ffffff",t:"#000000"},"A","S","D",{n:true},"F","G","H",{n:true},"J","K","L",":\n;","\"\n'",{c:"#963838",t:"#ffffff",w:2.25},"Enter"],
[{c:"#1d1cb8",w:2.25},"Shift",{c:"#ffffff",t:"#000000"},"Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{c:"#1d1cb8",t:"#ffffff",w:2.75},"Shift"],
[{w:1.25},"LCtrl",{w:1.25},"F12",{w:1.25},"LAlt",{w:6.25},"Spacebar",{w:1.25},"FN21",{w:1.25},"FN22",{w:1.25},"FN23",{w:1.25},"FN24"]

tgk.io :
Code: [Select]
"1":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT"],"KC_PSCREEN"],"2":["ACTION_MODS_KEY","LR_LEFT",["MOD_GUI"],"KC_R"],"3":["ACTION_MODS_KEY","LR_LEFT",["MOD_GUI"],"KC_E"],"4":["ACTION_MODS_KEY","LR_LEFT",["MOD_GUI"],"KC_L"],"10":["ACTION_LAYER_ON","2","ON_RELEASE"],"11":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_A"],"12":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_B"],"13":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_C"],"14":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_D"],"15":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT"],"KC_TAB"],"16":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL"],"KC_TAB"],"17":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL"],"KC_LEFT"],"18":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL"],"KC_RIGHT"],"21":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_X"],"22":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_Y"],"23":["ACTION_MODS_KEY","LR_LEFT",["MOD_CTL","MOD_SFT","MOD_ALT"],"KC_Z"],"24":["ACTION_LAYER_CLEAR","ON_RELEASE"],"30":["ACTION_LAYER_TAP_KEY","1","KC_SPACE"]