Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Why do you need both snap and pop? I use something similar, but get by perfectly well with only one layer for all programming symbols. Seems your life would be a little easier if you didn't have to surrender another two keys for your pop modifiers.


I wanted to keep all of the keys fairly close to the home row. If I do that I can't fit all of them under just snap. It's already full.


Are your snap and pop keys shifts (works like shift), dead keys (I full press & release, then strike another key), or locks (like a dead key, but good until I strike it again to unlock it, e.g., caps lock)?

(Let's say lower case is your first layer, upper case is your second layer, snap is your third layer, and pop is your fourth layer.)

I've worked on a similar design, and I've replaced Caps Lock with a "level 2 shift", which gets me to third layer. (Perhaps in your case, "Snap") The fourth layer is then Level 2 Shift and normal Shift, together.

If your snap & pop keys are shifts, combined with normal shift, you have a total of eight layers, potentially.

(I was inspired by the Neo Layout[1], but it's for German.)

(Also, since programmers often use - and _ for word separators, I put those on the space (which is a word separator) bar; they're level3+space and level3+shift+space, though I don't remember which was which. This made sense to me, but keyboard layouts are a personal thing, I think.)

[1]: https://neo-layout.org/index_en.html


Both of the modifier keys (Snap and Pop) work just like Shift and Control. You hold them down to get the other layer. On mac keyboards you can't count on more than 2 keys pressed at the same time so a Shift + Snap + A might (or might not work). I had a few failed attempts at combo modifiers before I decided they wouldn't be reliable enough (at least not on my mac pro).


All my keys are on alpha keys, so pretty close to the home row. No worse that typing letters.

As an aside, I developed my "snap" layout using a genetic algorithm run over the corpus of my programming career, then shifted around for aesthetic taste. It's served me well for more than ten years.

EDIT:

   ^{}\ 1+[]
  @*:/" 0=();
   ~|&# _-<>


That's nice. One of my goals was to make it easy to remember the key locations so I ended up with <{[(/\)]}> all on one row.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: