Awesome
PYKB - Python Keyboard
English | 中文 |
---|
Create a hand-wired keyboard, run Python on it, turn it into production.
Hand-wiring a keyboard
Follow the guide - hand-wiring-a-keyboard.md to rapidly make a keyboard with 100 lines of Python code.
From prototype to production <sup><kbd>in progress</kbd></sup>
With putting more time into the Python keyboard, we find it more and more interesting. We think a Python keyboard can make a big difference, so we decide to design a new keyboard for everyone. Check out the M60 mechanical keyboard.
To be a productive keyboard
As the 60% keyboard lacks a lot of keys (F1~F12, arrow keys and etc). We can use features like TMK's layers and composite keys to make the small keyboard much more powerful. With the idea from Toward a more useful keyboard to keep our fingers at the home row, we can optimize the keyboard to make us more productive.
Adding the Tap-key feature, which is holding a key down to activate an alternate function, can make a big difference.
Using <kbd>D</kbd> for Navigation
Taping <kbd>d</kbd> outputs <kbd>d</kbd> (press & release quickly), holding <kbd>d</kbd> down activates navigation functions.
- <kbd>d</kbd> + <kbd>h</kbd> as <kbd>←</kbd>
- <kbd>d</kbd> + <kbd>j</kbd> as <kbd>↓</kbd>
- <kbd>d</kbd> + <kbd>k</kbd> as <kbd>↑</kbd>
- <kbd>d</kbd> + <kbd>l</kbd> as <kbd>→</kbd>
- <kbd>d</kbd> + <kbd>u</kbd> as <kbd>PageUp</kbd>
- <kbd>d</kbd> + <kbd>n</kbd> as <kbd>PageDown</kbd>
Using <kbd>;</kbd> as <kbd>Ctrl</kbd>
Use <kbd>;</kbd> as a MODS_TAP key, taping <kbd>;</kbd> outputs <kbd>;</kbd>, holding <kbd>;</kbd> down outputs <kbd>Ctrl</kbd>.
Using Pair-keys
Simultaneously pressing two keys (interval less than 10ms) activates an alternate function.
Optimizing with C modules<sup><kbd>in progress</kbd></sup>
A C module matrix
of keyboard matrix is written to reduce latency and power consumption. The module has the same function as keyboard/matrix.py
.
Todo
- add system keys
- add mouse keys