机械键盘吧 关注:1,200,630贴子:22,977,603

关于的VIA的简单教学

只看楼主收藏回复

逛了半天发现吧里没有VIA的帖子,顺手写一篇
首先,什么是VIA? QMK,VIAL又是什么?
VIA 是一个用于自定义机械键盘的网页(可以下载本地程序)。通过VIA,用户可以轻松地对键盘进行编程和配置,而无需编写复杂的代码,由于VIA操作简单、上手门槛较低,因此只能实现一些比较基础的配置,如改键、宏、设置切层(不能手动添加层)
https://www.caniusevia.com/
VIAL可以理解为VIAL的升级版,同样有网页版和本地程序,比起VIA,VIAL的宏功能更加强大,支持Tap Dance(多种触发方式)和Combos,而且可以使用QMK的某些功能。不过适配VIAL的成本更高,部分键盘也会阉割VIAL的最大宏数量,量产除了RK的某些型号(铜配键盘语),貌似没有支持VIAL的键盘
https://get.vial.today/
QMK (Quantum Mechanical Keyboard) 是一个社区维护的开源软件,包括 QMK 固件, QMK 工具箱,qmk.fm网站, 和这些文档。QMK 固件是一个基于tmk_keyboard的键盘固件,上手有一定难度,需要先部署环境再进行固件编写,支持原生QMK的键盘一般比较贵
https://qmk.fm/zh-cn/

本帖仅讲解VIA的功能,部分内容涉及QMK的原理,如有较难理解的部分欢迎提问
本帖所有文字图片均打包为word上传至机吧群聊,如网页浏览不便请自行下载


IP属地:江苏1楼2024-07-23 16:49回复
    注意:在改键之前,请提前获取键盘的json文件(自己去问客服或者团长)
    下图的Json文件保存了键盘的配列布局,出厂键位等信息,没有json文件将无法使用VIA
    改键需要在有线模式下操作,部分键盘虽然也支持2.4G和蓝牙模式的VIA,但仍然建议使用有线模式

    找到VIA的网站进入,具体解释请看下图

    某些客制化键盘也支持VIA,但并不包含在网站的SupportedKeyboard中,使用之前最好问清楚团长,量产也一样,使用之前请找客服问清楚是否支持VIA,不要糊里糊涂操作半天连支不支持VIA都不知道
    一般来说,使用私有驱动改键的键盘不支持VIA,可通过刷固件升级,具体因厂商而异
    点击StartNow或者左上角的Try Now进入改键网页(记得插线),如果无法显示网页请尝试歪劈嗯


    IP属地:江苏2楼2024-07-23 16:53
    收起回复
      2025-08-31 20:04:56
      广告
      不感兴趣
      开通SVIP免广告
      好贴顶了! 感谢分享


      IP属地:湖南3楼2024-07-23 16:54
      回复
        链接如果用手机发 后面加一个空格就行了 还不会被吞


        IP属地:安徽来自iPhone客户端4楼2024-07-23 16:54
        回复
          第一次使用VIA,页面顶部只有3个按钮,无法导入json文件。需要点击SETTINGS齿轮图标然后将第一项Show Design Tab(显示设计视图)打开

          在DESIGN页面点击Load,然后选择合适的json文件导入,这里以维咖Record为例

          可以看到出现了红字的错误,这时候需要将Load下方的Use V2 definitions打开,然后重新导入
          之后网页左上方会出现一个提示框,点击连接即可
          打开ShowMatrix按钮可以显示PCB的走线

          然后回到Configure(键盘图标)界面,开始改键
          注意:如果导入时报错,但仍然跳出提示框要求连接的话请无视报错(VIA偶尔也会抽风),同时支持驱动和VIA的键盘请先刷固件后再导入json(自己刷,不同键盘方法不一样)
          如果仍然报错,请尝试刷新VIA网页重新导入
          至此,导入教学结束,下面进入改键教学


          IP属地:江苏5楼2024-07-23 16:55
          回复
            来到Configure界面,先来讲讲VIA的网页布局

            左上角的0 1 2 3 是层(Layer),每一层的按键都能自定义,键盘连接设备后的默认键层一般是0层,剩余的层需要通过特殊键进行切换,可以是长按切换(MO等),短按切换(TG、TO等),以及一次性切换(OSL,按下后输入一个键值就会返回0层)
            正是因为层的存在,小配列(如40%)才能使用缺失的某些功能键,
            左侧第一列为Keymap(键值列表),Macros(宏的编写),Save&Load(保存和加载json文件)以及Lighting(实时调节灯光,如果没有灯可能无此选项),改键主要使用的是Keymap和Macros,建议经常保存改好的json以免丢失。如果键盘的PCB支持多配列,那么左侧第一列还会有Layout选项用于设置分裂空格、7回等布局
            Configure界面右侧的KeyTester(听诊器图标)是键盘测试界面,默认键盘为104布局

            打开Test Matrix按钮会将104键盘变为当前连接的键盘,可用于测试键盘是否触发

            打开Key Sounds按钮可以在按下任意键时发出声音,下面的Volume、Transpose等用于调节触发时的声音、音调等(不是轴体本身的声音),还能调整声音波形(正弦、三角、锯齿、方形等)和发音模式(Wicki–Hayden是一种同构音符的手风琴布局,Random为随机)


            IP属地:江苏6楼2024-07-23 16:58
            收起回复
              下面开始讲改键。VIA的改键逻辑很简单,先在键盘上选中想改的键(选中后显示深色),然后在Keymap中选择键值即可,选择后via会自动跳转至该键右侧的另一个键(反复改一个键请注意)
              Keymap分为5个类别,分别是Basic(104基础键),Media(媒体键),Macro(16个宏键),Layers(切层键,较为复杂),Special(特殊键,如开关机、Any),Lighting(灯光特效),其中宏需要在第一列的Macros中编写,Keymap中的Macro只负责把编辑好的宏映射到键盘上
              某些厂商的键盘可能还会自带CUSTOM类别功能(如渴创),这里就不做详细解释了
              如果某个键在VIA显示0x0000的奇怪形式,那么该键一般是QMK功能键(如恢复出厂设置等)


              IP属地:江苏7楼2024-07-23 17:00
              收起回复
                Keymap中的Basic是最基础、最常见的键值的集合,比如字母、数字、功能键等

                注意:Win键在VIA中被称为GUI,Mac系统的Command键也为此键,一些老古董键盘的Meta键在VIA中也对应GUI;Mac中的option键在VIA中对应alt键
                Basic有两个特殊的键,空白键(左上第一个空白)和倒三角键(空白键右边的那个)
                空白键(KC_NO)按下无任何反应,不输出任何键值
                倒三角键(KC_TRNS),意义为向下查找并输出最近层的非倒三角键
                举个例子,在第2层把A键设置为KC_TRNS,在第1层把A键设置为KC_NO,第0层不动,那么切到2层按下A键时,由于第1层的A键不是KC_TRNS,那么输出结果仍然是第1层的KC_NO,并且由于0层在1层之下,不会输出0层的键值。如果第1层也是KC_TRNS的话将会输出第0层的键值
                一般情况下,键盘出厂时第1层会保存厂家预设的某些组合键,比如Fn+w切换灯光,其余的键均会设置为KC_TRNS
                Media类别集合了一些常用的媒体键,Vol+和Vol-调节声音大小,Mute为静音,Play为播放,Media stop为暂停,Prev和Next对应上一首/下一首歌,Rewind和FastForward对应快进/倒回,Select选择,Eject弹出(磁盘等)
                这里的Macro并不是用来编写的宏的,而是将16个宏的按键映射到键盘上


                IP属地:江苏8楼2024-07-23 17:02
                回复
                  2025-08-31 19:58:56
                  广告
                  不感兴趣
                  开通SVIP免广告
                  在讲解LAYERS的功能键之前,首先要明确一些关于层(Layers)的概念
                  在QMK环境下,键盘最多可以定义32个层(0-31层),不过一般的键盘只会自带3-5个
                  键盘刚通电时,只有默认层(默认层一般是0层,但是可以修改)是激活的,层的数字越大,在输出键值时具有更高的优先级,QMK固件会在输入时检测已激活的层中最大的一层,并输出该层的键值,若键值为KC_TRNS(即倒三角),则向下查找并输出最接近该层的非KC_TRNS键值
                  理论上来说,“切层”的意思将某个层临时或永久地激活,然后输出的该层的键值,多个层可以同时被激活,但由于QMK固件的性质,输出的键值必然是唯一的

                  最简单的切层键是Momentarily,即MO(n),具体为MO(1)、MO(2)……….长按可临时激活第n层,松开自动返回默认层
                  注意:在0层设置MO(1)切换至1层,然后在1层设置某个键为MO(2)试图切换2层是无效的,因为一次只能识别一个MO的长按
                  Fn1(Fn3)和Fn2(Fn3)的功能类似MO,长按临时激活1/2层,但不同之处在于,同时长按Fn1(Fn3)+Fn2(Fn3)可临时激活第3层,相比MO节省了一个键,该键本质上为QMK中的Tri-Layer功能
                  SpaceFn(n)的功能为:短按正常输出空格,长按激活第n层。如果想长按输出很多空格,请先快速短按2次后再长按
                  OSL(n)的全称为One Shot Layer,短按直接激活第n层,在该层触发任意键后自动返回默认层。OSL是One Shot Keys的一个功能,很遗憾,VIA除了OSL并没有实装该功能
                  TG(n),即Toggle,仅激活/关闭第n层,可以将第n层及以下的该键位设置为KC_TRNS,这样在切层后能够再次按下TG(n)关闭该层回到0层(因为按2下就相当于没按)
                  TO(n),激活第n层并关闭所有其他层(默认层除外),由于TO(n)能关闭其他层,因此可以实现TG(n)无法做到的非默认层之间的互切,可在第1层使用TO(2)切换至第2层,并在第2层设置TO(1)回到第1层
                  TT(n),即Tap-Toggle,长按与MO(n)无异,但重复短按2次及以上为TG功能
                  DF(n)的用处为切换默认层,按下后将第n层临时设置为默认层,正常默认层为0层。注意DF(n)只能在键盘断电前临时设置非0默认层,如果想永久设置默认层需要使用QMK 进行底层修改


                  IP属地:江苏9楼2024-07-23 17:05
                  回复
                    Special类别中集合了一些非常少用的键,这些键基本上不会出现在键帽上

                    NUHS对应非美国标准的#和~,NUBS对应非美国标准的 \ 和 |,这两个键在中文输入法中均会输出顿号 。而Ro则是日本产业规格(JIS)的 \ 和 |
                    “無変換”(Muhenkan)是日语输入法特有的键,通常用于停止输入模式的转换。例如,在使用罗马字输入法(罗马字母输入日语字符)时,按下该键可以取消转换,把已经输入的内容保持为原来的罗马字母,而不转换成日语假名或汉字。而“変換”(Henkan)键可以将输入的罗马字母或假名转换为适当的日语汉字或其他字符, 用罗马字输入 "nihon" 时,按下 “Henkan” 键会将其转换为 "日本",即nihon对应的日语汉字
                    在标准日语输入法键盘上,常见的特殊功能键包括:
                    Muhenkan(無変換):取消转换。
                    Henkan(変換):进行转换。
                    Kana:切换平假名和片假名输入。
                    Eisu(英数):切换到英文字母和数字输入(VIA好像没有)
                    在韩语键盘上,常见的特殊功能键包括:
                    漢字(한자):用于在韩文和汉字之间进行转换
                    Hanyeong(한영):在韩文和英文输入模式之间切换
                    Esc‘ (注意不是Esc)的功能为单按输出ESC,Shift+~输出~,GUI+~输出` 该键本质上为QMK的Grave Escape功能,如果你的键盘没有F区(比如60%和65%),无法取舍Esc和~键的时候可以考虑设置一下
                    LS( 的含义为单按输出左括号,长按为Shift,其他如LC( 、LA( 同理,只不过输出的是Ctrl和Alt,没啥用
                    ShfEnt为短按Enter长按Shift(不能快速双击+长按正常输出一堆Enter)
                    ToggleNKRO 的意思为切换全键无冲,Locking Numlock/Capslock/ScrollLock为锁定对应的三个键
                    PowerOSX和Power可以实现电脑关机(OSX的是Mac系统),Sleep和Wake对应电脑休眠和唤醒,而开机需要My Comp键(单模的键盘可能开不了机)
                    Calc,Mail等可以启动windows系统自带的计算器/邮件等,mac不行
                    Screen+和Screen-可以调节屏幕亮度(mac可以用)
                    Copy、Paste、Cut为复制粘贴剪切
                    F13-F24对于正常人没什么用,不过mac也可以用F14和F15调节屏幕亮度
                    以Mouse开头的键可以用键盘模拟鼠标
                    Mouse↑这4个键可以模拟鼠标的上下左右移动
                    MouseBtn可以模拟鼠标的点击,其中1和2是鼠标左右键,其余键位看具体鼠标
                    Mouse Wh↑这4个键模拟滚轮的上下左右移动
                    MouseAcc为设置鼠标DPI
                    说实话没啥用,只是列出来给大家看看而已


                    IP属地:江苏10楼2024-07-23 17:08
                    收起回复
                      来讲讲Special类别中一个非常实用的键——Any组合键
                      Any本质上是QMK中一些实用键值的组合,实际操作非常简单,选中一个键然后点Any,之后VIA会跳出一个提示框让使用者输入文本

                      Any主要有以下几种用法:
                      1,短按输出键值,长按切层,为QMK中的LT(Layer-Tap)功能
                      LT语法: LT(layer,kc)
                      LT(2,KC_A)的意思为长按临时激活第2层(松开自动返回默认层),短按输出A,如果想要屏蔽切层,让长按像原来一样一直输出A,请快速双击2次后再长按。使用LT可以完全替代MO(n)的功能
                      2,短按输出键值,长按输出修饰键(Ctrl,SHIFT,GUI,ALT四个键或其组合),即为QMK中的MT(Mod-Tap)功能
                      MT语法:MT(mod,kc)
                      MT(L_CTRL,A)的意思为长按输出左Ctrl,短按输出A,屏蔽用法同上
                      上面提到的LS(等可以用MT替代
                      3,修饰键组合(也可以用宏替代,但VIA宏最多只能编写16个,Any却可以设置无数个)
                      S(KC_A)为Shift+A
                      A(KC_A)为Alt+A
                      C(KC_A)为Ctrl+A
                      G(KC_A)为GUI+A(windows的GUI键就是win,Mac为command,老键盘是Meta键)
                      这是最简单的4个修饰键组合,可以嵌套(放在括号内即可),嵌套后VIA会自动修改以适应VIA自身的语法


                      IP属地:江苏11楼2024-07-23 17:11
                      回复
                        Lighting类别主要为灯光选项,这里只介绍几个常用的

                        RGB Toggle作用为开/关RGB灯光
                        RGB Mode+/-可切换预设好的RGB模式
                        Bright+/-用于调整灯光亮度
                        Effect Speed+/-调整灯光速度
                        Sat+/-用于调整饱和度、Hue+/-用于调整色相(某些静止的灯光特效可以用Hue换色)
                        其他按键中的“BL”指的是“BackLight”,即键盘的背光,可能供某些拥有非主键区独立灯光模块的键盘使用


                        IP属地:江苏12楼2024-07-23 17:14
                        收起回复
                          好帖帮顶,建议加精


                          IP属地:湖南来自iPhone客户端13楼2024-07-23 17:14
                          回复
                            下面开始讲VIA的Macros(宏)功能
                            在编写宏之前,需要知道如何查找一个键的键值
                            1. 在QMK官网查找:https://docs.qmk.fm/keycodes
                            2. 在任意Keymap界面将光标悬浮在一个键上即可在网页底部看到该键的键值
                            3. 啥都不干,VIA在输入键值时有智能提示
                            VIA的宏只有两种功能:输出字符串(比如按M1输出固定藏话)和输出自定义组合键(比如M2输出Ctrl+C)
                            VIA的宏也支持两种方法编写:录制和编写代码

                            编写代码输出字符串非常简单,直接输入想要的内容保存即可,而输出组合键则需要按语法编写
                            首先写一个大括号 { ,然后直接输入想要的键值,VIA会智能识别并提供选项(逗号不用自己写),点击想要的即可


                            写完想要的组合键之后,再写一个 } 即可,不写会导致语法错误保存失败
                            输入完一定要点Save保存,直接切换页面不会保存!
                            由于这里使用的是M12,需要在Keymap中的Macro类别找到M12并将其修改到键盘上,将光标悬浮到改键上可以查看宏或Any的内容


                            IP属地:江苏14楼2024-07-23 17:21
                            收起回复
                              2025-08-31 19:52:56
                              广告
                              不感兴趣
                              开通SVIP免广告
                              接下来讲一下怎么录制宏,首先回到录制界面,先点击Fullscreen全屏按钮(不点全屏无法录制),然后点击全屏旁边的圆点开始录制,录完后再按一下圆点(会变成方块)即可结束录制

                              开始录制后输入任何键都将记录,直到按下结束录制

                              右边两个开启按钮分别为:优化性能、应用输入延迟(比如录制的时候停顿了几秒再按)
                              应用输入延迟需要看键盘的固件是否支持
                              录制完成后记得去刚才的页面点一下Save,不然就白录了


                              IP属地:江苏15楼2024-07-23 17:24
                              收起回复