Share your layout

This is my current Colemak layout. I have switched the thumb key position of SHIFT because I use it more than CTRL, I restored the leftmost keys to their original function, I have a dedicated Colemak toggle button, I made butterfly into a thumb press enter key, I make home/pgup/pgdn/end mirror the arrow keys, and I use a single key for my programming braces (paren,sq bracket, angle bracket). Some of these choices are to accommodate my muscle memory and give me comfort when switching back to my ANSI laptop keyboard.

http://www.keyboard-layout-editor.com/#/gists/7b39946291d5c8a9f9ccdee8c6cec7e1
keyboardio-model-01---mattmc3

Im just beginning to learn how to program and Im wondering how you got the programming braces onto one key? Did you use the tapdance pluggin? Could you give me an example of the code that allows you to do that? Thanks!

I didn’t have to code anything at all. I used Chrysalis to map [ and ] onto layer0 which then also gives you { and } by hitting shift, and then on the function layer (fn) I added “shift-9” and “shift-0”, which gives you the parens when you hit fn. Chrysalis makes all this setup really easy.

1 Like

Cool, thanks. I customised my keyboardio a good while ago before Chrysalis was available and I’m only getting back into it now after experimenting with voice recognition. I am definitely going to try that tomorrow. Having the braces as efficiently accessible as possible can only be a good thing when coding.

2 Likes

I wasn’t sure whether to pile onto this thread, or start a new one.

I just spent way more time today than I care to admit automating the programming of a custom layout. I’ll probably cross-post to the “Programming” category, since part of the project is about that automation.

But here’s a link if you’re interested in the layout: https://github.com/shajra/shajra-keyboards

I also took a bit of time writing up how I designed it: https://github.com/shajra/shajra-keyboards/blob/master/doc/design.md

The highlights are QWERTY+Programming-friendly+Qukeys+Nix.

Feedback welcome. But mostly, it’s just nice to share it since I put in the work.

3 Likes

@shajra - just saw your nix tutorial. looks really good, thanks for creating it. :slight_smile:


Since I have to adjust to a new keyboard and I’m learning proper touch typing instead of my custom typing variation I’ve used previously I decided that I could also ditch QWERTY for a different layout. Might not get a better chance to switch since I need to re-wire my brain anyway.

The base layer is ADNW-PUQ, which is a trigram optimized layout for matrix keyboards with thumb keys and optimized for for german/english (1:1). ADNW-PUQ was developed for a keyboard with 40 keys (30 finger + 10 thumb keys) by it’s creator and is used by the Kissboard (QMK based bluetooth keyboard built upon the mitosis hardware).

BASE

SHIFT

FUNCTION and NUMBER

SPECIAL CHARS

NAV

MOUSE

3 Likes

http://www.keyboard-layout-editor.com/#/gists/461453c06ba2562abf119c2ccd2dd967

I made it a point not to move my fingers more than one space away from the home keys in any direction, which inspired this layout. This means I don’t use the top row or innermost columns of keys on the Keyboardio. I also avoid the two innermost thumb buttons, and switched my home thumb keys to be the outermost.

I’m a big vim user, so I didn’t want to make any extreme changes compared to where keys are on a typical layout. The number layer still retains a lot of the muscle memory (i.e., left index finger is still responsible for “4” and “$”). Biggest adjustment was to use a thumb for the enter key, but I got over that quickly. Most of the keys the right pinky is responsible for was moved to the bottom row. Biggest difficulty I faced when making a 42-key layout is where to put the Alt key. I opted to put it on one of two places, depending on the layer used. This means it should still be possible to use complicated key combinations without stretching your fingers at all or killing your pinky ligaments.

There is a fourth layer not really shown that is reserved for mouse movements, accessible by holding both left-hand thumb keys (I usually do this by using the thumb and index finger). It still follows the same pattern used as the right-hand arrow keys on the function layer if I want to use a medium speed, or I can move my fingers up a row for fast or down a row for slow. Left and right-click fall on the home and secondary thumb keys on the right hand, and the right-hand knuckle button handles a middle-click. I threw some scroll wheel buttons on the right pinky as well.

I took advantage of Qukeys to allow for easy tap access of two really important symbols on the normal layer: period (right-thumb-knuckle, usually Win/Gui key) and slash (right shift key). Without these, it can make the number/symbols layer a little unwieldy when using, say, the calculator. I wouldn’t mind being able to do this for the angle brackets as well (would probably put them on the left-hand shift and alt), but Qukeys only supports normal keys without a modifier. I would love to use a tap-to-lock and hold-to-shift functionality on all my layer modifier keys, which would bring it all together.

My ino file isn’t quite where I want it, but if you’re interested, let me know, and I’ll gladly share.

2 Likes

Hey @ChrisWestsideJX, I really liked your decision to only move your fingers one space away from the home keys. Recently I asked on the Discord group how could I physically modify my Model 01 to add more keys and now I feel like I have to put more effort into learning other ways to program my keyboard.

Would it be ok to share your .ino file? I’m really interested on how I can use your approach to better my own layout to suit my needs.

Cheers!

Model01-Firmware.ino (26.2 KB)

Thanks, everything you need should be in the INO file above.

1 Like

Oh! Nice idea. I’m going to have to give that a try.

Hi there,

I do have my keyboardio for a week now and of course I needed to create a proper layout. I was used to an Ergodox-EZ and I could not get used to thumb Shift for whatever reason (maybe in an upcoming iteration of the layout). So I use shift on both sides with my pinky finger. One of those Shifts is Typing + using Qukeys plugin.

I implemented a layout, that allows switching between ADNW-XOY and QWERTZ, cause since about a year or so I try to switch over to XOY and never managed it. But I want to be able to switch there once in a while to try to improve my typing there.

I also implemented a feature where you can set an LEDEffect for each layer - but you need a bit more than just the ino-file then.

For the programmers: added a “Special” layer for all those braces. And I do not need a CapsLock - so I do not have one.

Have a look at https://github.com/sboesebeck/keyboardioLayout

1 Like

I’ve been meaning to do this since forever, so here’s the list of changes I’ve made to the default QWERTY layout, in approximately the order I made them:

(For context, my Model 01 lives on my Windows desktop which I primarily use for gaming. My key considerations so far have been to make the layout better suited to Windows use, reduce expensive mistakes especially while learning the layout, increase memorability, and make it easier to type with only one hand or the other, because I eat at my computer a lot.)

  • Moved mute, volume down, and volume up one key right on the function layer to M, <, and >, giving them nice mnemonics
  • Disabled the Any key
  • Moved the LED key to the function layer
  • Moved Enter to the function layer
  • Moved Play/Pause to the function layer on Space
  • Swapped LAlt on the right thumb row for RAlt
  • Swapped Cmd on the left thumb row for LAlt
  • Swapped RightAlt on the Butterfly key for LeftGui (Windows key)
  • Removed the NumPad layer
  • Doubled 5 and - on the right half (formerly the Any and Num keys)
  • Doubled 6 on the left half (formerly the LED key)
  • Doubled Space on to the function layer of Backspace for left-handed typing
  • Replaced Insert with Delete on the function layer of X
  • Doubled Enter on the function layer of Tab
  • Doubled Backspace on the function layer of Space for right-handed typing
  • Moved Play/Pause to the function layer on ’ (apostrophe)

Most of these are particular to my personal use of the keyboard, but might prove inspiring to others. A couple, but particularly the first one (moving Mute/volume), I think could and probably should be adopted into the official layout :slight_smile:

So… I my Layout keeps evolving. Still work in Progress, but seems to be a good one for me. Still need to figure out more on how to play with the LEDs etc. But for now it is working. I was not able to post an image of the actual layout last time, but here is the Primary Layer:

I do have a “Special” layer for all those fancy brackets when coding:


I also tried to keep some of the characters you can usually reach using ALT also there, so I do not have to memorize two places. This way, the Special-Shift feels a bit more like ALT.

The Function layer does have some Macros and all the Media keys… but my guess is, that is not too interesting :wink:
The more interesting thing is probably my Cursor Movement block. Although I am a huge VI fan, I did not want to have the cursor-keys aligned in one row, I wanted to have an inversed T of some kind…

Nice! I have to ask @zagdul, what does the ‘MEH’ key do?

Also how are you defining the macro keys on the function layer?

As found in the feature list :

To make this easier, `Ctrl+Shift+Alt` is commonly abbreviated as `Meh` , while `Ctrl+Shift+Alt+Gui` is often called `Hyper` .

It was common to have such keys on Lips machines like this one :

using the Space Cadet Keyboard :
Imgur

Emacs was developed on this kind of hardware, emphasis the use of Esc-Meta-Alt-Control-Super combinations :slight_smile:

Wow, this is good to know. Did not know, that MEH has such a history… Thanks

regarding the Macros: well, in the Function Layer I just removed the Mouse-Keys and added my set of macros there. I did that directly in the code though, not using Chrysalis…

My layout is avaiable on github, if you want to take a closer look: https://github.com/sboesebeck/keyboardioLayout

to get the best out of your layout, you also need to have some tools on your OS to use those keys. In My case on the Mac, I use Keyboard Maestro which can call actions on certain Shortcuts and I have my IDE set to use Hyper and MEH for some functions. I also use Alfred to automate things even further.

Otherwise those keys MEH and Hyper actually do not make a lot of sense…

And the way I have placed them, makes the use of MEH with keys on the left half of the keyboard nearly impossible, but at least quite hard. It would probably be best, to have MEH or Hyper on both halfs. But for now, it works.

Still improving the layout. I am not 100% sure, it will stay this way. I still have some double assignments that seem unnecessary (like <>, and + and alike). Still have to figure out the best layout.

But that is the fun of it, right? :wink:

This is one thing I like so much about those programmable keyboards: the range of different Layouts just here in this forum! Its awesome!

This my current bépo layout (I made a lot of changes since my previous post one year and half with the experience of using it).

All the explanations (a long text) why I did it like that are available here, some stuffs I tried but it was not successful, it can help you to improve your personal layout.

There is also a quick explanation of my kind of vi mode if some are interested.

Don’t hesitate if you have any questions.

The last version of the layout for the future.

1 Like