Need help with python-keyboard?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

makerdiary
361 Stars 31 Forks MIT License 151 Commits 18 Opened issues

Description

A hand-wired USB & Bluetooth keyboard powered by Python and more

Services available

!
?

Need anything else?

Contributors list

# 24,989
C
Python
Raspber...
stt
119 commits
# 348,241
CSS
Django
HTML
mechani...
19 commits
# 256,858
C++
jieba
Shell
embedde...
5 commits
# 424,349
Vim
mechani...
The Jul...
bayesia...
2 commits
# 228,131
C
C++
Shell
flash
1 commit
# 474,047
C
C++
fido2
mechani...
1 commit

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 in progress

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 D for Navigation

Taping d outputs d (press & release quickly), holding d down activates navigation functions.

  • d + h as
  • d + j as
  • d + k as
  • d + l as
  • d + u as PageUp
  • d + n as PageDown

Using ; as Ctrl

Use ; as a MODS_TAP key, taping ; outputs ;, holding ; down outputs Ctrl.

Using Pair-keys

Simultaneously pressing two keys (interval less than 10ms) activates an alternate function.

Optimizing with C modulesin progress

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

Credits

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.