有一些高频率的输入字符串,我们可以写入到源代码中,让键盘可以替我们输入,比如说我们的密码、我们的用户邮箱等等,这样可以提高我们的效率。

我们先看看K大给的文档,里面有

Build firmware
--------------
### 1. Open terminal
Open terminal window to get access to commands. Use Cygwin(or MingGW) `shell terminal` in Windows or `Terminal.app` on Mac OSX. In Windows press `Windows` key and `R` then enter `cmd` in 'Run command' dialog showing up.

### 2. Change directory
Move to project directory in the firmware source.

cd tmk_keyboard/{'keyboard' or 'converter'}/

### 3. Make
Build firmware using GNU `make` command. You'll see `_.hex` file in that directory unless something unexpected occurs in build process.

里面很清楚地讲解了制作固件的步骤。

第一步,打开调试终端,在Windows下面就是打开cmd,然后第二步就是cd到tmk_keyboard/{'keyboard' or 'converter'}/这个目录,比如说GH60就是\tmk_keyboard_custom-master\keyboard\gh60这个目录。

然后使用make -f Makefile.clean
make -f Makefile.
命令就可以生成一个_.hex文件,我们就可以把它烧录进去了。

我们可以看到GH60下面有keymap_hhkb.c等很多keymap_打头的c文件,我们把下载得到的c文件加上_xxx后缀就好了,然后放到GH60目录下面。

Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `keymap_.c` and see keymap document(you can find in top README.md) and existent keymap files.

To build firmware binary hex file with a certain keymap just do `make` with `KEYMAP` option like:

$ make KEYMAP=[poker|poker_set|poker_bit|plain|hasu|spacefn|hhkb|]
按照文档里面的说法,我们只需要 $ make KEYMAP =就可以了。

回到

[1] = ACTION_MACRO(),
[2] = ACTION_MACRO(),
[3] = ACTION_MACRO(),

这三条语句,我们需要给他们加上自己写的函数、

首先在keyboard文件夹下面搜索ACTION_MACRO,找到一个keymap_hasu.c里面有这个语句使用,

[8] = ACTION_MACRO(ALT_TAB),                      // Application switching

//  [x] = ACTION_MACRO(HELLO),                          // Macro: say hello
//  [x] = ACTION_MACRO(VOLUP),                          // Macro: media key

/*
* Macro definition
*/
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case HELLO:
return (record->event.pressed ?
MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
MACRO_NONE );
case VOLUP:
return (record->event.pressed ?
MACRO( D(VOLU), U(VOLU), END ) :
MACRO_NONE );
case ALT_TAB:
return (record->event.pressed ?
MACRO( D(LALT), D(TAB), END ) :
MACRO( U(TAB), END ));
}
return MACRO_NONE;
}

照猫画虎:

[1] = ACTION_MACRO(PASSWORD1),
[2] = ACTION_MACRO(MAIL),
[3] = ACTION_MACRO(PASSWORD2),

const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch (id) {
case PASSWORD1:
return (record->event.pressed ?
MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :     //密码改T()括号里面的字符,下同
MACRO_NONE );
case MAIL:
return (record->event.pressed ?
MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) :
MACRO_NONE );
case PASSWORD2:
return (record->event.pressed ?
MACRO( I(0), T(H), T(E), T(L), T(L), W(255), T(O), END ) : 
MACRO_NONE );
}
return MACRO_NONE;
}

这里我使用了两个密码,一个邮箱名,大家按自己所需改T()

case MAIL:
return (record->event.pressed ?
MACRO( I(0), T(p), T(a), T(l), T(e), T(2), T(5), T(2), T(6), T(@), T(f), T(o), T(x), T(m), T(a), T(i), T(l), T(.), T(c), T(o), W(255), T(m), END ) :
MACRO_NONE );
我不知道这个W(255)等待时间是要每隔4个等待一次还是最后等待一次就可以了,现在先试一下最后等待一次,这里我的邮箱是pale2526@foxmail.com,大家可以看到。

然后我发现在Windows下面用cmd或者powershell都出报错,看了make还需要在linux或者缺少什么组件,待研究待更

【极简版GH60】【GH60剖析】【八】增加一键输入密码(邮箱)功能相关推荐

  1. 【极简版GH60】【GH60剖析】【六】修改配列

    说完了GH60的硬件部分,接下来到软件部分,我觉得,软件部分才是极简版GH60的精髓部分,毕竟仅有硬件的话GH60只是一个有手感可以按动的一堆没有功能的按键,而软件让他变成了灵活多变的键盘.通过对软件 ...

  2. 【极简版GH60】【GH60剖析】【二】原理图的分析

    说完了配件的选择,下面分析下原理图,因为我要做的是极简的GH60,所以PCB上的原件有很多都不需要焊上去,我们来分析下GH60revQE原理图. 首先可以看到大概有61个按键,然后每个按键由一个轴,一 ...

  3. 【极简版GH60】【GH60剖析】【五】壳和键帽的装配

    既然没有什么问题了,下面就可以装壳上螺丝了, 上好键帽后,这样我们极简GH60的硬件部分就完成了,连接USB数据线,就是一个实用的小键盘了. ​ 这里我用的USB数据线是TI原厂的MSP430开发板数 ...

  4. 7句话让Codex给我做了个小游戏,还是极简版塞尔达,一玩简直停不下来

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 梦晨 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 什么,7 ...

  5. 《重大人生启示录》极简版

    <重大人生启示录>极简版 献给所有活着和将要死去的人们,献给所有历经悲伤的人们 本文摘录了启示录最重要的内容,不必非要看全本,不必购买书 序言 这是极为特殊的历史转折期,物质文明发展到这一 ...

  6. python入门笔记——飞机大战(极简版、未进行继承优化)

    python入门笔记--飞机大战(极简版.未进行继承优化) import random import pygame# 引用pygame里的模块 from pygame.locals import *# ...

  7. 【Liunx】进程的程序替换——自定义编写极简版shell

    目录 进程程序替换[1~5] 1.程序替换的接口(加载器) 2.什么是程序替换? 3.进程替换的原理 4.引入多进程 5.系列程序替换接口的详细解析(重点!) 自定义编写一个极简版shell[6~8] ...

  8. 10分钟手撸极简版ORM框架!

    最近很多小伙伴对ORM框架的实现很感兴趣,不少读者在冰河的微信上问:冰河,你知道ORM框架是如何实现的吗?比如像MyBatis和Hibernte这种ORM框架,它们是如何实现的呢? 为了能够让小伙伴们 ...

  9. 美团推出极简版 为用户提供“米面粮油”等生活用品采购服务

    近日,有用户反馈,安卓应用商店显示,美团更新推出了极简版,对主应用的功能进行了删减,保留了美团主应用中涉及生活用品采购的相关业务.用户在打开极简版后,首页会呈现出采购蔬果.米面水油等生活用品的购买入口 ...

  10. python3web库_基于 Python3 写的极简版 webserver

    基于 Python3 写的极简版 webserver.用于学习 HTTP协议,及 WEB服务器 工作原理.笔者对 WEB服务器 的工作原理理解的比较粗浅,仅是基于个人的理解来写的,存在很多不足和漏洞, ...

最新文章

  1. 研究生调剂!!急!!!跪求解答!!?
  2. postman可以测试websocket吗_小海塔罗娱乐测试2021年可以脱单吗?
  3. blob jdbc mysql,JDBC能否处理Blob和Clob?
  4. Applications Manager Docker监控
  5. FreeSql (九)删除数据
  6. 【精心总结】java内存模型和多线程必会知识
  7. 安防监控必备的基础知识
  8. ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条...
  9. 【优化求解】基于matlab粒子群算法求解仓库成本控制优化问题【含Matlab源码 1577期】
  10. MySQL与Oracle 差异比较之五存储过程Function
  11. winform5、高清屏下字体模糊的解决方法
  12. 北京服务器机房位置,北京服务器机房
  13. HTML和JavaScript学习笔记
  14. 海康SDK语音转发实现(ubuntu)
  15. java.util.Scanner包的使用
  16. 第一天 游戏策划学习
  17. FJUT 3097(hdu 3333) 区间种类数 主席树+在线
  18. c语言常用延时程序,新手常用单片机延时程序
  19. 计算机系统崩溃了怎么办,电脑系统崩溃开不了机怎么办
  20. Jmeter中参数化的使用

热门文章

  1. 网狐提示您已经在房间,无法进入新房间解决办法
  2. 请求大佬们帮我找下问题
  3. DNF启动时出现“tcls Parsing Failed“ 的解决方法
  4. 高斯定理的理解——工程电磁场 P2~P5
  5. 笔记本网络连接其他正常但所有浏览器网页打不开问题解决
  6. 【产品方案】如何全面建设B端产品中的数据迁移方案
  7. toolkit-frame之toolkit-sprider(数据采集)---笔趣阁小说
  8. ajax请求 拦截窗口,ajax请求成功后新开窗口window.open()被拦截解决方法
  9. 加载TQ2440驱动-Hello World 模块
  10. 新装win7系统C盘占用70G的空间