#原创新人# 极客范:打造一把程序员专属无线机械键盘

2016-07-02 09:30:22 147点赞 335收藏 110评论

前言

作为一个程序猿,外设是工具,是饭碗,是每天接触时间最长的东西。这其中,机械键盘无疑是提高生产力及工作愉悦感的神器。本人三年前已经购入了两把机械键盘,一把雷蛇黑寡妇青轴放家里用,一把凯酷红轴放公司用。然而,面对着机械键盘越来越火的形势,张大妈不停的推送,以及值友们层出不穷的晒单,看着手上两把老家伙,自己忍不住又想剁手了。可是,市面上提到机械键盘,似乎都是为游戏而生,我只是想要一把办公用的,无线小巧,功能强大的键盘,选择却少之又少。2.4G的基本没有,蓝牙的大概只有大F符合要求,然而荷包君异常羞涩,信仰充值不得。

这样,只能选择自己DIY的路了。之前也翻过很多帖子,改造现有的有线键盘为无线的,要么是用蓝牙,需要画板子或搭一堆模块,并且加装一块体积不小的锂电池,作为只粗懂硬件的程序员,没有这个技能点,只能放弃。另外一种就是用罗技优联改造。作为一个手残党,我也天真地飞了一把优联无线,改造对象为:

#原创新人# 极客范:打造一把程序员专属无线机械键盘优派(ViewSonic)KU520背光游戏机械键盘?87键8键发光青轴 白银色 金属面板...¥99京东

这把键盘百元不到,87键,PCB又是单面板,比较好割线。主控是收了一个二手的罗技K230,对应87键没有问题。现在看着这密密麻麻的蜘蛛网似的飞线,我也是醉了,制作过程及其艰辛,这里暂且不表。其实一开始这把用用还是可以的,但后来发现老是串线,反应也迟钝,有时按下去几个键只能出来一部分按键。小心翼翼拆开用万用表测也测不出什么原因,估计不用二极管直飞也会造成按键冲突,我飞线的时候有些地方可能也有短路或断路。于是用了两星期就弃用了,真是一个伤心的故事。

▲ 就是这货▲ 就是这货

后来,看到了这篇晒单,又激活了我折腾的心。作者提供的思路使得改造小键盘成为了可能,而且得益于TMK固件的强大,提供了键盘无限强大的可能性。

#原创新人# 极客范:打造一把程序员专属无线机械键盘DIY的极致追求—极轻极薄极小的 YD40w 优联无线机械键盘[前言]可能有不少人看过我去年发的优联40%键盘的DIY帖子,主要的原理部分已经在那篇文章里全部解释了,有兴趣的可以去查看,这次我不再花篇幅介...6247167 yangdigi

果断把原来的键盘拆掉,取出K230的主控,并利用狗东键鼠大促的机会,低价入了一把小巧颜值较高的键盘,用优惠券加白条后仅149,作为本次改造的主体。

#原创新人# 极客范:打造一把程序员专属无线机械键盘魔蛋(magicforce)68键机械键盘青轴 白金 背光¥249京东

其实这款键盘分为两个版本,常规版和普及版。区别是常规版用的凯华轴,有背光,以及前板高光边工艺,而普及版用的是高特轴,颜值也稍差一点。狗东促销时,常规版降价加优惠券后甚至比普及版价格还低,果断入了常规版。作为一把小键盘,魔蛋68有方向键以及Del键,平常使用还是比GH60之类客制化的小键盘方便一点,这也是选择它的原因。

DIY的思路:

  1. 用魔蛋68的外壳,钢板,轴,以及键帽作为主体

  2. 飞线连罗技的优联主控来触发68个按键

  3. 通过usb2usb键盘转换器转换成正确的按键

  4. 修改TMK的keymap来实现全键盘功能以及更强大的扩展功能。

虽然前面引用的晒单里前辈已经描述的挺详细了,但这里再阐述一下原理,帮各位看官理一理思路,不然可能还是稀里糊涂不知道我要干什么。反正我智商堪忧,看别人的晒单看了几遍才明白这种DIY到底是怎么搞出来的。

  1. 罗技K230是薄膜键盘,其原理和机械键盘一样,每个键上的两个引脚对应着主控上的行列信号,按键按下去之后,信号被激活,主控就会知道哪一行那一列被触发了,然后翻译成对应的key code发送给电脑。

  2. 改造68键键盘,使其68个轴的引脚都连到K230主控芯片的引脚上。

  3. 受限于68键键盘的限制,如果不通过usb2usb转换,直接把优联接收器插在电脑上,那么只能发送68个键的key code,其它键位不能触发。

  4. 使用usb2usb转换,得益于tmk固件的强大,那么键位就不是问题,我们完全没必要让键盘的键位和K230的键位一一对应,避免了漫天的飞线。举例说,我们把ESC键连了两根线到K230主控上,这时候在K230眼里这两根线不是ESC,而是F4键,但usb2usb会截获键位码,帮你把F4键转成ESC键发送给电脑端。

  5. 68个键以外的按键,通过修改tmk固件里usb_usb converter的keymap实现。

成本方面:

  1. 魔蛋68: 149

  2. Arduino Leonardo R3开发板: 28

  3. Arduino USB Host Shield: 45

  4. 二手罗技K230: 35

  5. 材料若干: 20

▲ 物料清单▲ 物料清单

总共280左右,一把国产杀马特风格机械键盘的价格。我准备把取下来的PCB出掉,还能回点血,这样总共才200出头的成本。

硬件改造

硬件改造分为几个部分:1. 取下PCB。 2. 装轴飞线。 3. 连优联主控。 4. 装USB2USB转换器。在改造之前需准备的工具:烙铁、吸锡器、焊锡、锡膏、镊子、0.1mm漆包线、电池CR2016、二极管1N4148。

取下PCB

第一步要把每个轴先取下来,我买的常规版带灯的还有68个LED灯珠也要一并取下来,这样每个轴都有四个焊孔需要去锡。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

轴的两个脚由于焊孔比较大,很容易清理干净,而LED就麻烦一些,由于手头的烙铁没有刀头,只能用尖头加吸锡器先把LED的两个脚的锡都尽量吸掉,同时加热的时候拨动灯珠的引脚使其松动并居中,最后在另一面勾住灯珠再同时加热两个焊孔把灯珠给拔出来。

▲ 取出一半了▲ 取出一半了

吃完晚饭开搞,也一直搞到晚上11点才把整个PCB取下来。

▲ 终于把所有的轴都取下来了,这是PCB和钢板▲ 终于把所有的轴都取下来了,这是PCB和钢板

▲ 一堆青轴和LED灯珠▲ 一堆青轴和LED灯珠

搭桥飞线实现键盘矩阵

搭键盘矩阵之前,我们还是要分析一下K230的原有矩阵。网上已有矩阵图,不用对着薄膜一个一个测了,省了很多时间。看这个图的时候K230的芯片向上,右边第一根金手指为1,一直到最左边是23。

▲ K230矩阵图▲ K230矩阵图

看一下68键盘,横向有5行,竖向有16列,而K230是11X12的结构,这意味着起码有4列是与其它列并用的,并且规划行列时要考虑到每一行每一列对应到K230矩阵里是有按键触发的。下面这张图便是我冥思苦想之后得出的矩阵图。这里A键是个坑,我后面会填。

▲ 68键矩阵图▲ 68键矩阵图

从图中可以看出,我一共用满了12列,并且右边4列我是和左边几列复用的,那么在实际连线的时候就要飞4根线线过去。行数我用了10行,第18行没用到。之所以这么排列,就是为了最大程度的对应K230的键,不是要一一对应,而是确保不能有用到的行列不能触发的。看一下对应的实际按键矩阵图:

▲ 68键盘对应K230实际按键矩阵图▲ 68键盘对应K230实际按键矩阵图

好了,有了理论基础,我们可以装轴搭桥飞线了。先把所有的轴装到钢板上,轴上面和钢板接触的地方有两个小卡扣,会让轴卡在钢板上,虽然不是很牢靠,但也能确保翻过来时轴不会掉下来,焊接时够用了。但这样轴毕竟不是焊在PCB上的,比较松动,以后换键帽时可能会把轴拔下来,那就坏菜了。我这里先临时这么用着,等都弄好了用一段时间觉得没问题了再把每个轴用热熔胶黏在钢板上固定死,就不会松动了。

▲ 装轴后▲ 装轴后

中间的主键我是用的G茶轴,用惯了青轴红轴想换换口味,而且因为以后要在办公室用,所以还是静音一点好,四边一周大键及方向键等用的青轴,保持一种爽脆感。

▲ 看一下背面▲ 看一下背面

开始连线了,我先连的行线,也就是用二极管连。二极管起到的作用就是防止按键冲突,具体的原理有兴趣的看看这里,没兴趣的只要知道把二极管弯成这样:

▲ 二极管▲ 二极管

然后把每一个轴其中一个脚和二极管相连,二极管的红端朝上黑色朝下,把我上面提供的矩阵里一行的二极管都连起来,最后连到对应的K230引脚上。

▲ 轴与轴之间的二极管相连▲ 轴与轴之间的二极管相连

空格键太长了,只能用导线接了一下。把所有轴的二极管按矩阵连起来后便是这样的:

#原创新人# 极客范:打造一把程序员专属无线机械键盘

再用导线把所有的列相连,其中几根长导线就是右边4列和左边几列复用的。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

连优联主控

下一步就是用漆包线把K230的引脚引出来。这里借用一张图:

▲ K230主控▲ K230主控

每一个金手指上要刮开石墨涂层,要能看到铜,然后用漆包线焊接在金手指上。建议一次性把所有金手指的石墨刮掉然后用无水酒精擦拭干净再焊接,不然会弄得很脏,并且用锡膏涂在漆包线上再往金手指上焊可能好焊一些,记着把漆包线留长一点,好往键盘上焊。我这23根线反反复复焊了好久,最后焊成这么丑,各位看看就好,反正是能用了。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

当你确定每个脚都可以用的时候用热熔胶将其固定住,漆包线还是很脆弱的。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

最后再把K230主控的每根引脚按照矩阵图和每行每列相连。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

我把K230的主控放在如图所示的位置。这个位置非常好,背面有个小口,本来是魔蛋68的三个拨动开关所在位置,用来实现键盘几个键切换的功能,现在把K230的主控放在这里可以露出主控背面的小开关,不用的时候把开关关了可以省电,要与新的优联接收器配对时也能用到。主控背面用点双面胶就可以粘在外壳上,正面用点黑胶布贴一下做绝缘。

▲ K230主控所在位置▲ K230主控所在位置


▲ 主控背面开关▲ 主控背面开关

因为魔蛋68用的是键线分离,有个小板子取下来后,背面的usb口就会留个小洞出来,正好引出两根线连接到K230主控的电源引脚,然后恰巧这个地方凹进去一块,我们可以焊一个纽扣电池的底座放在这里,一颗纽扣电池能提供3v的电,满足K230的供电需求,然后用胶布固定住电池底座,以后需要换电池的时候很方便。

▲ 电池底座▲ 电池底座

▲ 用胶布封好电池底座▲ 用胶布封好电池底座现在可以将优联接收器插到电脑上,试试每个按键能不能触发了。运气好的话每个键都好使,嗯,除了“A”键。本来我也没放在心上,"A"对应的是“Fn”键,一般都不能识别。但后来在用usb2usb转换时还是出问题了,tmk的固件识别不了罗技的fn键,我只能把这个键拆下来重新飞线连在了17行上面,也就是和Enter键连起来了。所以我那个矩阵图里A所在的位置列是对的,行不对,应该是17。

usb2usb

接下来要做的是usb2usb转接器,usb2usb有三种规格,还是借用原作者一张图给大家看看区别:

三种usb2usb转换器三种usb2usb转换器

中间一个是成品,卖50刀,太贵了而且国内不方便买。右边一个我也买了,我天真的以为把两块小板子叠起来就行,结果排针焊上去连起来后发现不好使,放狗搜后发现还要改造一下,结果排针取不下来了,最后强行取下来时焊盘掉了。

▲ 惨不忍睹的Arduino pro micro▲ 惨不忍睹的Arduino pro micro

后来我索性就买了最左边这种,这个用起来很简单,直接叠加起来就行了。回头再搞右边那种小的吧,有大神做好出我一个更好。

▲ Arduino Leonardo 和 USB host shield合体▲ Arduino Leonardo 和 USB host shield合体

软件篇

终于搞定硬件了,真心不容易,下面是软件,作为软件工程师,还是码代码得心应手,而且,最重要的是,硬件要花钱,软件怎么折腾都不要花钱!!!!其实这套东西最强大的还是软件,通过软件,我们可以实现很多功能。网上有些教程讲怎么改键位刷配列,并且有些图形化的工具来实现。其实仔细看看代码你会发现这个固件能实现的不仅仅是按个键这么简单的功能,它能实现很多高级功能,直接改代码才能够玩得High!

搭环境

我这里用的Windows平台,装一个Mingw以及WinAvr就可以编译tmk固件了

Mingw在这里,不会的网上搜一搜安装教程,很简单,装完后加bin目录到环境变量,命令行里敲gcc有用就行。

WinAVR在这里WinAVR-20100110-install

然后从github上下载下来tmk_keyboard firmware的整个工程,会用git的直接git clone,不会也没关系,github上点download zip包然后解压到随便一个目录就行。然后命令行进入tmk_keyboardconverterusb_usb目录,敲个make试试,应该就能编译了。编译完了会在当前目录下产生一些名字为usb_usb不同后缀的文件,其中usb_usb.hex就是我们即将下载到Arduino Leonardo R3开发板里的固件。这里会用到一个国人写的工具: Arduloader

▲ Arduloader▲ Arduloader

Arduloader里选好Arduino Leonardo,按一下开发板上的复位开关,这时开发板进入boot模式,电脑会多出来一个串口,Arduloader会自动扫描到这个串口,选好hex文件并点upload就可以烧录固件了。注意boot模式时间很短,大概8秒,一些设置请提前做好。

修改按键对应关系

这时候编译的是标准键盘,什么键还是什么键,我们的目的是要把F4改成ESC这样68个转换。打开usb_usb目录下的keymap_common.c文件,在最后面加入这样一个宏:

▲ keymap_common.c▲ keymap_common.c

我这里定义了一个宏KEYMAP_68,里面是68个按键值,这些值怎么来的呢?看见这个文件上面原来的KEYMAP宏没有,这是一个标准键盘,我们定义的宏和他类似,只不过精简成了68个值,然后每个值的排列发生了变化,比如第一个K3D,在KEYMAP里是在F4的位置,我把它放在第一个,就代表ESC那个位置,以后我用这个宏的时候,定义第一个键为ESC,那么usb2usb实际接收到了优联接收器发来的F4的key code,但它转换了一下,发给电脑是ESC的key code。以此类推,把其它的键都按照我的矩阵找出来,一一对应好,并把随后的KEYMAP_ALL里除了这68个键的其它值都改为定义成NO。

接下来要做的事情是新建一个keymap_my.c的文件。在usb_usb的目录下除了keymap_common还有好几个其它以keymap开头的c文件,我们可以先copy其中一个并进行修改。在修改之前,我先介绍一下几个基本概念。具体的文档可以从这里找到。

  1. TMK的固件里有层的概念,也就是layer。每个层里可以对每个键进行定义,也就是说,不同层里同一个物理按键可能代表不同的键。

  2. 你可以定义最多32层(这么多足够用了)。层的切换有好几种方式,最普通的就是按住一个功能键Fn0来切换,类似于普通键盘上的Fn键,比如K230里Fn+F12是静音,TMK里完全可以实现。

  3. 另外一个概念就是Fn0,Fn1...Fn32这样的function key。这种功能键可以实现很多高级功能,最简单的就是用来切换层。

  4. tmk提供了一些函数和宏来组合Fn键和layer,具有很大的灵活性。

好了,我们先来实现一个基本的键位,也就是第0层默认层。

▲ Layer0▲ Layer0

用先前实现的宏KEYMAP_68映射出一个基本键位,然后在fn_actions里用ACTION_DEFAULT_LAYER_SET把第0层设为默认层。OK,命令行里编译一下,用这个命令:“make KEYMAP=my”,注意大小写,编译好了烧录进去,看一下键位是不是和你实际键盘的相吻合了吧。

高级功能

在fn_actions里可以使用的宏ACTION_DEFAULT_LAYER_SET只提供了设置默认层的功能,实际上,还有另外一些以ACTION开头的宏,借助于这些宏我们可以实现很多高级功能。我粗略介绍一下这些宏,更详细的还是要看tmk的文档。

  1. ACTION_LAYER_MOMENTARY(layer); // 按住fn瞬间切换到layer层

  2. ACTION_LAYER_TOGGLE(layer); // 按一下fn切换到layer层,再次按fn切换回来

  3. ACTION_LAYER_TAP_KEY(layer, key); // 按住key键瞬间切换到layer层,比如key是;,在当前层仍然是;,按住;可以切换到layer层

  4. ACTION_LAYER_TAP_TOGGLE(layer); // 按fn键多次后切换到layer层,默认次数5次

  5. ACTION_LAYER_MODS(layer, MOD_LSFT | MOD_LALT); // 用modifier键(Alt,Ctrl等)切换layer

  6. ACTION_MODS_TAP_KEY(MOD_RCTL, KC_ENT); // 双角色键,比如这里按一次是Enter,按住不动是右边的Ctrl

  7. ACTION_MODS_ONESHOT(MOD_LSFT); // 当你输入The时按Shift有时会来不及松开就按下t了,Shift+t此时只起一次作用,t为大写T,此时再按住LShift+h,h是小写

  8. ACTION_MODS_TAP_TOGGLE(MOD_LSFT); // hold住时是LShift,按多次时换层,和ACTION_LAYER_TAP_TOGGLE类似

  9. ACTION_MACRO(ALT_TAB); // 组合键实现的宏

有了这些宏,我们可以实现下一层也就是第1层的内容了,这里用到的是ACTION_LAYER_MOMENTARY,注意到在第0层里我在左下角Win键的位置设置的是Fn1,这时按住这个键再按别的键就是第1层的键啦。Win键被我放在右边了,平常不怎么用到。

▲ Layer1▲ Layer1

最上面一排已经变成了“~ F1-F12”了,WSAD变成上下左右了,h改成了浏览器后退,l改成了浏览器前进,p改成了打开音乐播放器,zxcvbnm改成了音乐播放音量调整这些媒体键。要说明的是TRNS,这个意味着和上一层的键一样的,不需要重复设置了。这里需要按住fn1才能实现这些功能,当然你也可以用ACTION_LAYER_TOGGLE,按一下fn1就可以切换1层了,然后wsad就是上下左右,可以用来玩游戏了。

好玩吧,我们再加一层试试:

▲ Layer2▲ Layer2

这一层的作用是改Caps这个键,先把0层里Caps改成Fn2,然后用到了这个宏ACTION_LAYER_TAP_KEY。现在单独按Caps键一下,它还是切换大小写,当你按住它时就能切换到第2层了。作为一个标准Vim党,我把hjkl改成了左下上右,左手小指勾住Caps键就可以实现全平台用hjkl移动光标了。然后右上角四个键改成了“我的电脑,计算器,浏览器,音乐播放器”。另外,还能控制鼠标!上下左右改成了鼠标移动,空格键改成了鼠标左键,回车变为鼠标右键。

目前实现的还是键位映射,更高级的功能还可以借助于ACTION_FUNCTION和ACTION_MACRO来实现。晒单时大段大段贴代码还是不好,有兴趣的可以看看我提供的这个gist代码。利用这两个宏,我还实现了:

  1. Shif+ESC=~,Fn+ESC=`

  2. 程序员专属,按一下左边的Shift是左括号,右边的是右括号,一直按住还是shift的功能。真是懒到极致了,觉得括号太远,并且要按两个键。

  3. Fn1+Space=Win+Space。这样Win10里还是用习惯的键位切换输入法。

  4. 右边的Alt+4=Alt+F4。

  5. 借助于ACTION_MACRO,一键输入账号或密码。可以把密码隐藏在某一层的一个键上,网上登录方便多了。

总结

没什么可以总结的,放工位图吧,usb2usb藏在了那个金属盖板下了,桌面非常清爽。

#原创新人# 极客范:打造一把程序员专属无线机械键盘

#原创新人# 极客范:打造一把程序员专属无线机械键盘


展开 收起
110评论

  • 精彩
  • 最新
  • 好折腾的改造。。。通过短接机械键盘的芯片,把原矩阵测出来,然后对比k270的矩阵,你会有惊喜

    校验提示文案

    提交
    这样搞碰到vcc搞不好会烧芯片吧

    校验提示文案

    提交
    短接芯片测原矩阵具体怎么做呀?求教

    校验提示文案

    提交
    收起所有回复
  • 赞楼主的动手能力,不过我觉得程序员还是多花时间修炼内功升职加薪然后买把好键盘来得实在 [高兴]

    校验提示文案

    提交
    没有好的才自己动手的,和用别人的库用着不爽了自己轮一个一个道理

    校验提示文案

    提交
    收起所有回复
  • 弄吧hhkb退坑吧,飞线的都是电子工程师不是软件工程师,搬两天砖比飞两天线好多了吧

    校验提示文案

    提交
    hhkb实现不了按一下shift出来个括号吧

    校验提示文案

    提交
    你这个usb2usb我准备抄袭,然后配一把正常的键盘,动手能力倒是可以做,但是真的太费时间了,哈哈哈

    校验提示文案

    提交
    收起所有回复
  • 没有数字区敢是程序猿?

    校验提示文案

    提交
    程序猿手一般都不离开主键位区

    校验提示文案

    提交
    请教下什么样的程序猿需要熟悉区?

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 大神,请收下我的膝盖 顺带一句多少钱出一副

    校验提示文案

    提交
    仅此一把,还要自用呢

    校验提示文案

    提交
    收起所有回复
  • 那个micro加usb shield的我做出来了,很简单的,体积特别小,比那个50美金的都小。跟大板子的区别是需要切断3.3v供电,用5v代替,另外编译固件需要把频率改成8MHz

    校验提示文案

    提交
    用5V倒是搜到了,改频率却没看到过,多谢,有空我试试

    校验提示文案

    提交
    收起所有回复
  • usb2usb最后应该是接主机的吧?你最后说藏在金属板下面————是键盘的金属板下面吗?这不科学了啊!!

    校验提示文案

    提交
    不是,是我桌子有个金属面板下面是插座,里面有空间放usb2usb

    校验提示文案

    提交
    收起所有回复
  • usb2usb会影响优联鼠标吗?如果键盘和鼠标使用一个优联接收器的话。

    校验提示文案

    提交
    不能使用同一个接收器,插在usb2usb上的只能用于键盘了

    校验提示文案

    提交
    收起所有回复
  • 我最大的心愿就是在MINILA AIR上装个小红点 [邪恶]

    校验提示文案

    提交
    理论上可以吧,已经有人在GH60上装上小红点了,不过是有线版本的,要用蓝牙实现估计很难

    校验提示文案

    提交
    收起所有回复
  • 请问程序员学长,为啥要青轴?很吵吧?

    校验提示文案

    提交
    后来我把主键区改成茶轴了啊

    校验提示文案

    提交
    茶轴用起来很好?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 能定做一把么楼主

    校验提示文案

    提交
    我不是专业做这个的,还是建议自己动手吧,有问题问我好了

    校验提示文案

    提交
    收起所有回复
  • 光头哥的9.9 RGBY?

    校验提示文案

    提交
    谁的不知道,反正9.9包邮

    校验提示文案

    提交
    收起所有回复
  • 您好,我按照您的方法下载了avr和gcc,但是编译不了,我只下载了gcc+gcc-那个和winavr,命令make显示不是内部也不是外部文件,请问哪里出错了?

    校验提示文案

    提交
    确保mingw\bin加到环境变量了

    校验提示文案

    提交
    加进去了,今天找了个完整版的不需要自己选择package的mingw,加了bin,输入gcc/g++ -v都出来了正确版本,make的时候还是显示avr-gcc.exe无法正常启动,

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 看得我脑仁疼,这种深技术控不适合我

    校验提示文案

    提交
  • 上班时候要是看见有人用机械键盘,绝对要弄死他,请考虑别人耳朵的感受

    校验提示文案

    提交
    为了报复办公室那群天天逼逼叨叨的大妈,我买了青轴,专门在办公室打字。唉。我太心里阴暗了。

    校验提示文案

    提交
    这种情况又不一样了..

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 看了这么久张大妈终于看到一个有技术含量的帖子了!佩服! [赞一个]

    校验提示文案

    提交
  • 现在一把无线的机械键盘真的那么稀有吗?

    校验提示文案

    提交
  • 这种成本要赞

    校验提示文案

    提交
  • 6上天了。。。

    校验提示文案

    提交
  • 真是极客,比我们这些只知道买不知道装的半吊子高到不知道哪里去了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
335
扫一下,分享更方便,购买更轻松