# PYKB **Repository Path**: makerdiary/python-keyboard ## Basic Information - **Project Name**: PYKB - **Description**: 从手焊一个跑Python的USB蓝牙双模键盘,到设计一个Python键盘 - **Primary Language**: Python - **License**: MIT - **Default Branch**: zh-cn - **Homepage**: https://makerdiary.com/m60/ - **GVP Project**: No ## Statistics - **Stars**: 115 - **Forks**: 14 - **Created**: 2020-06-19 - **Last Updated**: 2024-06-12 ## Categories & Tags **Categories**: hardware **Tags**: None ## README Python Keyboard =============== 中文 | [English][1] ------|-------------- 从手焊一个跑Python的USB蓝牙双模键盘,到设计一个跑Python键盘 ![](img/python-inside-keyboard.png) ## 自己手焊键盘 如果想深入了解键盘,最好的方式是自己造一把,可以按照仓库中的 [hand-wiring-a-keyboard.md](hand-wiring-a-keyboard.md),软硬兼施,手焊一个跑Python键盘。 ![](img/colorful-keycaps.jpg) ## 从原型到产品 跑Python的手焊键盘得到了不少反馈,很多人喜欢它,有的人质疑为什么要用Python。 开始只是觉得这很有趣而已,当投入更多时间完善和探索之后,越来越觉得Python可以给键盘带来很独特的非凡体验。 而手焊一个键盘对于很多人来说很难,于是决定设计一个跑Python的新键盘,让更多人能体验Python和键盘结合在一起的惊喜。 跑Python的键盘,不仅是个键盘,也是一个U盘,键盘的Python代码则保存在U盘中,可以用任意文本编辑器修改Python代码,无需配置任何开发环境。 配置键盘的keymap,添加一个新的宏,或者实现一个新功能,变得非常简单——修改U盘中的Python文件,保存后,即刻运行生效。 更多详情见[M60键盘](https://python-keyboard.gitee.io/)。 [![](https://item.taobao.com/item.htm?id=623296623963)](https://python-keyboard.gitee.io/) ## 更进一步——让键盘更具生产力 这是一个 60% 键盘,缺少了包括 F1~F12、 方向键、小键盘等键位。 但通过引入[ TMK ](https://github.com/tmk/tmk_keyboard/blob/master/tmk_core/doc/keymap.md)中的层级切换和组合按键功能,并融入 [Toward a more useful keyboard](https://github.com/jasonrudolph/keyboard) 中把手指尽量停留在 ASDFJKL; 等起始键位的理念,我们可以让这个小键盘更具生产力。 这里引入 Tap-key 功能,Tap-key通过短按和长按两种功能,短按用作正常按键,长按不放则激活额外的功能。 ### D 键导航 这里将 D 被用作Tap-key。短按,输出`d`;长按D不放,则激活移动光标功能,HJKL被映射为方向键,而 UN 则为 PgUp 和 PgDn。 ![](img/d-for-navigation.png) + d + h = + d + j = + d + k = + d + l = + d + u = PgUp + d + n = PgDn ### ; 键用作 Ctrl ;也被用作Tap-key,短按输出`;`,长按用作Ctrl。 ![](https://github.com/xiongyihui/keyboard/raw/master/img/semicolon_as_ctrl.png) + ; + c = Ctrl + c + ; + v = Ctrl + v + ; + x = Ctrl + x + ; + a = Ctrl + a 在VS Code里面双手打字时,用左右手配合按; + C比左手按Ctrl + C要方便一些。值得一提的是,VS Code中未选中文本时,Ctrl + C是复制光标所在的行,之后Ctrl + V,则把复制的行粘贴到光标下新的一行。再配合D + HJKL移动光标,可以很便捷。 而在浏览器中,可用; + Tab替代Ctrl + Tab切换标签页,; + T打开新标签页,; + W关闭标签页。 ### 结对快捷键 (Pair-Keys) 另外,键盘还支持同时(或10ms以内)按下两个键触发特殊功能,这里称之为结对快捷键(pair-keys)。 ## Todo - [x] 鼠标功能 - [x] RGB灯效 - [ ] Heatmap - [ ] 设置U盘为只读,或可隐藏U盘 ## 致谢 + [MicroPython](https://github.com/micropython/micropython) + [CircuitPython](https://github.com/adafruit/circuitpython) + [TMK](https://github.com/tmk/tmk_keyboard) + [Toward a more useful keyboard](https://github.com/jasonrudolph/keyboard) [1]: https://github.com/makerdiary/python-keyboard