Skip to content
This repository has been archived by the owner on Mar 14, 2021. It is now read-only.

wigingtont2/Model01-sketch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

algernon's Keyboardio Model01 firmware

CI 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 (Layout editor)

  • 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 plugin 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.
    • 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 (/). Tapped three times, they input Japanese brackets, /.
  • 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 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.
    • LEAD GUI switches to a special APPSEL layer where a few (highlighted) keys on the right side can be used to select an application to switch to.
    • LEAD Enter GUI launches an application selector on the host side.
    • LEAD r inputs Right Alt, my Compose key of choice.
  • The R2C6 key is also a tap-dance key, which inputs : on a single tap, ; otherwise.
  • The R0C0 key acts as F11, but triggers only on release. This is so that it can be held to go into programmable mode when re-flashing, without sending way too many F11 held events.
  • There are a few other actions one can trigger with magic combos:
    • PALMS + AD: Switch to the ADORE layer.
  • We are also using mouse keys, and macros for some of the features.
  • The keyboard can also communicate with the host bidirectionally, thanks to the FocusSerial plugin. See Chrysalis for a simple client.

ADORE layer

ADORE layer (Layout editor)

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.

Installation

The repository and its build system is set up in a way that allows one to download Arduino only, and let the repository handle the rest. For an initial setup, simply type make setup, and it will clone every other repository one needs. From that point on, make (compile the firmware without flashing) and make flash (compile & flash) will work as in the case of the factory firmware. The rest of the targets supported by the official sketch will also work here.

To update the repositories this sketch depends on, use make update.

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 [mirror]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.4%
  • Shell 7.5%
  • Python 7.5%
  • Makefile 0.6%