this post was submitted on 08 Oct 2023
24 points (96.2% liked)

ErgoMechKeyboards

5634 readers
22 users here now

Ergonomic, split and other weird keyboards

Rules

Keep it ergo

Posts must be of/about keyboards that have a clear delineation between the left and right halves of the keyboard, column stagger, or both. This includes one-handed (one half doesn't exist, what clearer delineation is that!?)

i.e. no regular non-split¹ row-stagger and no non-split¹ ortholinear²

¹ split meaning a separation of the halves, whether fixed in place or entirely separate, both are fine.
² ortholinear meaning keys layed out in a grid

No Spam

No excessive posting/"shilling" for commercial purposes. Vendors are permitted to promote their products/services but keep it to a minimum and use the [vendor] flair. Posts that appear to be marketing without being transparent about it will be removed.

No Buy/Sell/Trade

This subreddit is not a marketplace, please post on r/mechmarket or other relevant marketplace.

Some useful links

founded 1 year ago
MODERATORS
 

https://github.com/semickolon/fak

FAK is a keyboard firmware for the CH55x series of very cheap chips, with the purely functional programming power of Nickel. The project aims to make keyboards much cheaper and to make configuration more declarative and fun.

New features:

  • You can now make split keyboards with FAK!
  • Combos of up to 8 keys that get the same treatment as physical keys
  • Media keys for playback and volume control

Most importantly, three full examples are now in the repo of varying difficulties. The beginner example demonstrates how to make a simple keyboard and keymap definition and it looks almost like JSON (but with "variables").

The intermediate and advanced examples demonstrate how powerful Nickel can be. It features parameterization of keymaps and layouts, advanced home-row mods with eager decision, automatic generation of home-row mod behaviors based on their key position, and more. You can even bring your configs to a higher level of abstraction and be able to do something like this:

base_layout = "WFPBJLUYSTHKXNAIRCGDM,.O"

This, for example, defines the sequence of keys in your base layer and, since it's just a string, you can change it very easily. Somewhere along the way, this string of characters becomes kc.W, kc.F, kc.P, ... but done automatically. Abstractions like these can help make your configs more flexible and modular and they allow for code reuse across multiple keyboards and layouts (like QMK userspaces!)

I'd love to hear what you guys think! Any feedback, suggestions, and testing is appreciated! :)

you are viewing a single comment's thread
view the rest of the comments
[–] semickolon 2 points 9 months ago