IwYvI

干了这碗鸡汤

; fixup GDT base in descriptor
 MOV ECX,EDX
 MOV [EDX].bas_0_15+GDT_DESC_OFF,CX
 ROR ECX,16
 MOV [EDX].bas_16_23+GDT_DESC_OFF,CL
 MOV [EDX].bas_24_31+GDT_DESC_OFF,CH

 ; copy EPROM IDT to ram at:
 ; RAM_START+size(STARTUP_DATA)+SIZE (EPROM GDT)
 MOV ECX, CS_BASE
 ADD ECX, OFFSET (IDT_EPROM)
 MOV ESI, [ECX].table_linear
 MOV EDI,EAX
 MOVZX ECX, [ECX].table_lim
 MOV APP_IDT_ram[EBX].table_lim,CX
 INC ECX
 MOV APP_IDT_ram[EBX].table_linear,EAX
 MOV EBX,EAX
 ADD EAX,ECX
 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]

我的gh60客制化键盘

我的第一个客制化gh60机械键盘,使用了无钢板g轴红轴,同时刷了自己喜欢的配列。

之前的那个贼鸥87键的机械键盘坏了,有一个键一直触发,但是按键的时候却不触发了,不知道是不是因为pcb某处短路。然后前一段时间一直想换一个新的键盘,然后由于预算各种纠结,当然也学习到了许多新的东西。

最开始想直接买把薄膜键盘算了,然后还是觉得薄膜存在手感问题。而后又看了人体工学键盘,然而机械的人体工学键盘贵的简直不忍直视。微软的Sculpt键盘看起来好漂亮但是迫于预算也只能看一看,微软3000似乎已经是很多年前的型号了,但是还是很贵,这个价格可以买一个机械键盘了。所以当时也在考虑微软2000。后来根据网上评论说这个键盘手感并不好,我又不是特别想买薄膜键盘,所以又想起了曾经看到的客制化。

然后就接触了一种神奇的60%键盘,这种连f区都被阉割的布局。客制化的键盘主要是gh60,然后网上查到可用通过刷固件改变键盘配列。反正忘了具体为什么下决心买了一套,虽然当时对自己的焊工没有信心。

上面说了一堆我自己都不会说的废话。

这是拆包后的材料,加了一个奇怪的电影滤镜

然后开始装卫星轴、测试、装轴、刷配列、装键帽、焊轴、拆键帽、装灯、上壳、装键帽(这个顺序是我的顺序,刷配列可以放在最后)。

这里给几个我参考的教程:

tangdyy的GH60组装过程(修改多层按键配列)

【KB230】archlich的GH60进程

Simmo 的GH60进程

【白杨】satan版GH 60组有钢茶 POKER配列详细教程

这个是焊完轴插上灯以后的照片

成品图明天再放因为键帽还没到

这是成品图

配列

设计配列:keyboard-layout-editor

生成固件:TMK Keymap Generator

我的板子就是淘宝上satan的gh60板子,默认是poker配列,首先我想刷成pure配列,然后加上自己喜欢的功能。上面两个网站里第一个是设计配列的网站,按键内容是在第二个网站帮助里,可以实现所有帮助有的按键效果。

我一共有5层

第0层是默认层,基本上是标准键盘,右下角的几个键改成了方向键,大小写锁定键改成了fn,esc作为trick esc(正常按下是esc,shift+esc按下是~)

第一层是dvorak布局层

第二层将数字键变成f区

第三层是小键盘层

第四层是fn0按下瞬间弹出来的层,主要放了大量的功能,wasd附近按键控制鼠标操作,tab当作大小写锁定,cvb控制背光,右边是媒体键和功能键。fn5切换第一层,fn6切换第二层,fn6切换第三层。

注意,高层会将低层内容覆盖。

将每一层的raw data复制到第二个网站里,satan的板子选择GH60(RevCHN)

这里是fn和灯的设置

这里让大小写锁定灯和背光保持一致,原本我以为把大小写放在别的层上面只有切换到那一层才显示为大小写灯,没想到这个灯强制为标准的大小写键位灯。

下面是我的各层的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//-------------layer0-----------
["Fn4","!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","_\n-","+\n=",{w:2},"Backspace"],
[{w:1.5},"Tab","Q","W","E","R","T","Y","U","I","O","P","{\n[","}\n]",{w:1.5},"|\n\\"],
[{w:1.75},"fn0","A","S","D","F","G","H","J","K","L",":\n;","\"\n'",{w:2.25},"Enter"],
[{w:2.25},"Shift","Z","X","C","V","B","N","M","<\n,",">\n.","?\n/",{w:1.75},"↑","Del"],
[{w:1.25},"Ctrl",{w:1.25},"Win",{w:1.25},"Alt",{w:6.25},"space",{w:1.25},"Fn0",{w:1.25},"←",{w:1.25},"↓",{w:1.25},"→"]

//-------------layer1-----------
[{a:7},"",{a:4},"!\n1","@\n2","#\n3","$\n4","%\n5","^\n6","&\n7","*\n8","(\n9",")\n0","{\n[","}\n]",{a:7,w:2},""],
[{w:1.5},"",{a:4},"\"\n'","<\n,",">\n.","P","Y","F","G","C","R","L","?\n/","+\n=",{a:7,w:1.5},""],
[{w:1.75},"",{a:4},"A","O","E","U","I","D","H","T","N","S","_\n-",{a:7,w:2.25},""],
[{w:2.25},"",{a:4},":\n;","Q","J","K","X","B","M","W","V","Z",{a:7,w:1.75},"",""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]

//-------------layer2-----------
[{a:7},"",{a:4},"F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",{a:7,w:2},""],
[{w:1.5},"","","","","","","","","","","","","",{w:1.5},""],
[{w:1.75},"","","","","","","","","","","","",{w:2.25},""],
[{w:2.25},"","","","","","","","","","","",{w:1.75},"",""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]

//-------------layer3-----------
[{a:7},"","","","","","",{a:4},"numlock","7\nhome","8\nup","9\npgup","/",{a:7},"","",{w:2},""],
[{w:1.5},"","","","","","","",{a:4},"4\nleft","5","6\nright","*",{a:7},"","",{w:1.5},""],
[{w:1.75},"","","","","","","",{a:4},"1\nend","2\ndown","3\npgdn","-",{a:7},"",{a:4,w:2.25},"penter"],
[{a:7,w:2.25},"","","","","","","",{a:4},"0\nins",".\ndel","+","+",{a:7,w:1.75},"",""],
[{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:6.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},"",{w:1.25},""]

//-------------layer4-----------
["~\n`","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12",{w:2},"fn6"],
[{w:1.5},"capslock","button1","mouseup","button2","wheelup","accel0",{a:7},"","",{a:4},"calc",{a:7},"",{a:4},"PSc","ScrLk","pause\nbreak",{w:1.5},"fn7"],
[{a:7,w:1.75},"",{a:4},"mouseleft","mousedown","mouseright","wheeldown","accel1",{a:7},"","","","",{a:4},"prevtrack","nexttrack",{a:7,w:2.25},""],
[{w:2.25},"","","",{a:4},"Fn2","Fn3","Fn1",{a:7},"",{a:4},"Mute","VolDn","VolUp","play",{w:1.75},"Home","PgUp"],
[{a:7,w:1.25},"",{w:1.25},"",{w:1.25},"",{a:4,w:6.25},"Fn5",{a:7,w:1.25},"",{a:4,w:1.25},"Ins",{w:1.25},"End",{w:1.25},"PgDn"]

这个是fn设置

1
"0":["ACTION_LAYER_MOMENTARY","4"],"1":["ACTION_BACKLIGHT_TOGGLE"],"2":["ACTION_BACKLIGHT_DECREASE"],"3":["ACTION_BACKLIGHT_INCREASE"],"4":["ACTION_FUNCTION",0,0],"5":["ACTION_LAYER_TOGGLE",1],"6":["ACTION_LAYER_TOGGLE","2"],"7":["ACTION_LAYER_TOGGLE","3"]

放心去刷适合自己的配列吧嘤嘤嘤

Disqus Comments