2016-01-03 21:42:25
主要是找到了所有的keymap文档,然后大概扫了一眼源代码,它是自动前面给你加上KC_
的所以源代码不太好找。
调整一下文字渲染,使文档更加容易阅读。
我通过找到keymap文档找到了音乐控制的快捷键。非常方便,只是不兼容网易云音乐,还未解决。你可以在这里找到我的最新keymap。
可以直接参考淘宝店里面的教程
我的组装焊锡的过程不表示,淘宝店直接买的是白杨外设店的套餐,选来选去,一次性完成最方便了。
总结一下我遇到的坑,以及犯的错误:
这个路程走的还是比较艰辛的,因为教程非常少,而且找到的也非常针对个人的来写的。我使用的是C语言代码来定制layout 并没有使用网上各种工具,使用我这种方法刷进去比较省心,并且也不用研究那么多东西。我使用的电脑是osx,我写的 方法适用于linux 和osx。至于其他操作系统通过查看doc配置cygwin就一样了。
整个过程还是比较简单的
但是有部分大下载不下来,或者gist被墙,可以自己先找个地方下载下来之后。
使用 brew edit
修改下载脚本来帮助brew完成整个下载流程。
git clone https://github.com/kairyu/tmk_keyboard_custom.git
代码下载之后我发现了一个问题submode并没有被克隆然后使用递归也没有克隆成功,反正依赖模块不多先手动搞定。 操作如下:
cd tmk_keyboard_custom
git clone https://github.com/kairyu/tmk_core_custom.git
rm -rf tmk_core
ln -s tmk_core_custom tmk_core
对上面的操作进行解释:
主要是在编译的时候遇到了不少坑,找不到头文件之类的,后来我主动查看了github上的源码目录才发现里面有一个子模块引用的还是一个比较老的版本的源码,在这里经过我的测试使用最新版的是没有问题的。
到这里固件源代码都已经准备好。
主要是两个地方需要调整
KEYMAP_IN_EEPROM_ENABLE = yes
第一条调整,只需要在config.h中 #define CONFIG_H
的下面加上代码 #define GH60_REV_CHN 1
即可完成,注意
: 貌似有些教程比较坑,define语法明显不对,后面少了个1
第二条调整,在目标代码前面加 #
就可以了。
首先说明一下为啥不想用网页上的工具来生成C文件:
然后说明一些我已经遇到的坑。
GRV
那么你需要吧所有的layer的左上角的键位都改成GRV
,原因不明,如果不照做结果就是ESC注意: 如果你不知道所有的功能请参考这里:tmk_core/doc/keycode.txt
你会找到所有TMK支持的键位。
需要注意的主要是两个部分的代码
/* 0: qwerty */
KEYMAP_ANSI(
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \
ESC,A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, \
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH, FN0, \
LCTL,LGUI,LALT, SPC, DEL, UP,HOME, END),
这里的注释非常有用哦,提示你这里是什么index,键盘布局,以及下面的详细布局可以自己调整哦。
const uint16_t PROGMEM fn_actions[] = {
/* Poker Layout */
[0] = ACTION_LAYER_MOMENTARY(6), // to Fn overlay
[1] = ACTION_LAYER_TOGGLE(4), // toggle arrow overlay
[2] = ACTION_LAYER_TOGGLE(5), // toggle Esc overlay
[3] = ACTION_MODS_KEY(MOD_RCTL|MOD_RSFT, KC_ESC), // Task(RControl,RShift+Esc)
[4] = ACTION_LAYER_MOMENTARY(7), // to Layout selector
[5] = ACTION_DEFAULT_LAYER_SET(0), // set qwerty layout
[6] = ACTION_DEFAULT_LAYER_SET(1), // set colemak layout
[7] = ACTION_DEFAULT_LAYER_SET(2), // set dvorak layout
[8] = ACTION_DEFAULT_LAYER_SET(3), // set workman layout
};
layout里面存储的是,八层键盘布局。 注意函数内参数为上面数组的index 看函数的内容不难看出来是什么意思。 然后自己定制调整就非常简单了。
一个键盘两种device,一种是输入,一种是刷机状态的,如果想进入刷机状态直接按主板背面的小按钮就行了。(不需要三秒钟,按一下就行了)
查看device:system_profiler SPUSBDataType
键盘模式:
GH60:
Product ID: 0x6060
Vendor ID: 0xfeed
Version: 0.01
Speed: Up to 12 Mb/sec
Manufacturer: geekhack
Location ID: 0x14100000 / 14
Current Available (mA): 500
Current Required (mA): 100
可以刷机的模式:
ATm32U4DFU:
Product ID: 0x2ff4
Vendor ID: 0x03eb (Atmel Corporation)
Version: 0.00
Serial Number: 1.0.0
Speed: Up to 12 Mb/sec
Manufacturer: ATMEL
Location ID: 0x14100000 / 15
Current Available (mA): 500
Current Required (mA): Unknown (Device has not been configured)
注意区分即可。如果要刷入信的layout进入到键盘中直接使用命令make dfu
即可
由于搞键盘的时间非常紧,而且我也是个机械键盘的新手,所以这里有一些用词不准确,方法不正确,还请大神批评指正! 给各位新手一个参考时间,我从所有都是零件开始组装到最后修改完成整个键盘大概需要一天的时间,从早10点到半夜。
最后上一个工作时候的图作为本文的结束