Skip to content

obra/Algernon-Model01-sketch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

algernon's Keyboardio Model01 firmware

Build Status

This is my work in progress firmware Sketch for the Keyboardio Model 01, using Kaleidoscope together with a fair amount of plugins.

This is a reasonably complete example of how to work with the firmware, and surrounding libraries, to extend it, to compose the various components, to have something useful in the end.

It is a heavy work in progress, with some awful hacks and workarounds here and there. Eventually these will be cleaned up.

It is based on my previous ErgoDox EZ layout, a lot of things are common between the two.

Table of Contents

Layouts

Base layer

This is a Dvorak-inspired layout, with some changes here and there, to make it more suited for programming, and for a non-traditional keyboard.

Base layer

  • Keys with blue front-prints are activated by tapping or holding the left palm key (also colored blue).
  • Keys with red front-prints are activated by tapping or holding the right palm key (also colored red).
  • The Alt, Control, Shift modifiers are all one-shot, and so are the two palm keys.
  • The LED colors are governed by the Colormap/EEPROM-Colormap plugins for the most part:
    • By default, the modifiers and palm keys are highlighted with different colors.
    • On different layers, the keys that have changed behaviour, are colored differently.
    • When a modifier is active, the LED-ActiveModColor plugin turns it white.
    • A blazing trail effect is provided by LED-Stalker.
    • One can also switch LEDs off.
  • The top row was inspired by Programmer Dvorak, but the symbols are arranged so that the most used ones are easier to access. The numbers are available in a numpad-like layout on a separate layer.
  • The R0C6 and R0C9 keys are to control tmux and screen, and are dependent on my tmux setup.
  • The R1C6 and R1C9 keys are tap-dance keys. Tapped once, they input [{/}] (without and with Shift, respectively). Tapped twice, they input (/).
  • The LEAD keys is a leader key, with the following sequences built-in:
    • LEAD u starts the symbolic unicode input method.
    • LEAD s does a lot of magic to type a shruggy: ¯ \_(ツ )_/¯.
    • LEAD r enters keymap remapping mode, using the EEPROM-Keymap-Programmer plugin.
    • LEAD LEAD switches to the next LED mode.
    • LEAD BUTTERFLY (where BUTTERFLY is the R2C9 key) does an M-x butterfly RET y, in honor of xkcd#378.
  • The R0C7 key is also a tap-dance key, which inputs : on a single tap, ; otherwise.
  • The R3C8 key (another tap-dance key) acts as a GUI key when tapped once. When tapped twice, it swithes to a special APPSEL layer, where the number row on the left half can be used to select an application to switch to. This needs a helper program on the host side.
  • The R0C0 key acts as F11 on a single tap, and if tapped more than one time, does nothing. This is so that it can be double tapped and held to go into programmable mode when re-flashing.
  • There are a few other actions one can trigger with magic combos:
    • PALMS + A: Switch to the ADORE layer.
  • We are also using mouse keys, mouse gears, and macros for some of the features.
  • The keyboard can also communicate with the host bidirectionally, thanks to the Focus plugin. See Chrysalis for a simple client.

ADORE layer

ADORE layer

A heavy work in progress. The main difference is in the layout of alphanumerics, but most other things work as on the base layer.

Special features

Symbolic Unicode Input

Once in the Symbolic Unicode Input mode (implemented by using the Syster plugin), one is able to type in symbol names, press Space, and get the Unicode symbol itself back. When in the mode, is printed first. Once the sequence is finished, all of it is erased by sending enough Backspace taps, and the firmware starts the OS-specific unicode input sequence. Then, it looks up the symbol name, and enters the associated code.

For the list of supported symbols, please see the source.

This is an experimental feature, and may or may not work reliably.

Plugins used

This sketch makes use of a fair amount of plugins, most of them have been listed above, but below, you'll find a list of all plugins used (directly, or transitively), in alphabetical order:

License

The code is released under the terms of the GNU GPL, version 3 or later. See the COPYING file for details.

About

algernon's firmware Sketch for the Model 01

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published