机械键盘吧 关注:1,195,774贴子:22,890,058

没人看的键盘驱动教学——VIAL的简单入门

取消只看楼主收藏回复

上一篇帖子介绍了VIA的简单操作,这次讲讲VIA的进阶版——VIAL

首先,什么是 VIAL
VIA 是一个用于自定义机械键盘的网页。通过VIA,用户可以轻松地对键盘进行编程和配置,而无需编写复杂的代码。而VIAL可以理解为VIAL的升级版,同样有网页版和本地程序,比起VIA,VIAL的宏功能更加强大、复杂且支持嵌套,集成了非常多的QMK组合键,支持Tap Dance(多种触发方式)和Combos(多个按键组合输出一个键值),而且可以使用QMK Settings(具体取决于PCB是否支持)
https://get.vial.today/
国内知名客制化工作室MatrixLab的官网也有VIAL可供使用(英文原版),同时,Matrix官网的Vial和QK官网的Via一样进行了魔改升级,可供matrix的某些套件使用更多功能,例如更改灯组效果,调节Caps指示灯颜色、第三方PCB主键区灯光等
如果你手上有matrix的键盘,非常建议使用matrix的修改版VIAL而非VIAL官网

zFrontier上有大佬制作的汉化VIAL,新增了轮盘、摇杆的功能,如果你的英语水平不够,强烈建议使用该版本
https://www.zfrontier.com/app/flow/YX3dPZbPPA8L


IP属地:江苏1楼2024-11-07 19:03回复
    下面先聊点东西
    1.有哪些键盘支持VIAL?
    随着国产卷王越来越卷,PCB舍得加钱上QMK芯片的越来越多,VIA也逐渐普及了,遗憾的是VIAL并没有普及
    99%量产键盘无法使用VIAL,貌似只有rk的某些型号支持VIAL,客制化也较少
    支持VIAL有两种途径,第一种是PCB选用更好的芯片(国内非常少)并在固件中添加对VIAL的支持,另一种是通过特殊方法兼容(铜哥语,貌似是编点代码让vial能识别),通过特殊方法兼容VIAL的成本非常低,比QMK芯片(qmk&via需要32u4单片机,需在PCB的成本上+30)还要便宜很多,但这会导致键盘只能使用VIAL,同时这种方法可能会阉割一部分VIAL的功能(例如QMK Settings)
    虽然用特殊方法兼容VIAL成本很低,但VIAL的纯英语界面并没有VIA和各家驱动那么友好(虽然VIA也不咋地),新手确实比较难上手,这也是VIAL没有在量产键盘普及的重要原因之一(VIA没有完全普及的原因是QMK芯片成本就要多花30,而且使用VIA等于强制开源,对于量产品牌来说并不好)
    2.我觉得量产驱动/VIA已经很好用了,VIAL相比VIA,还能干什么?
    举几个例子:
    ① 一个键实现单击复制,双击粘贴,长按剪切,双击+长按全选(双击判定的延迟可改),节省大量键位同时方便记忆
    ② Ctrl+Alt输出Win+R,Shift+Win+Tab输出空格,W+A+S+D输出Esc
    ③ 编写一个能直接打开软件的宏,并且可以设置每一步的延迟
    ④ 不喜欢常规的Shift+a输出大写的A,所以改成了输出小写的b,还自定义了Ctrl+ 音量加/减的组合输出亮度加/减,并且仅在第一层启用该设置
    相比于VIA,VIAL无需导入json文件即可自动识别键盘开始改键,如果你的键盘支持via,也可以尝试将json导入vial,如果无法识别一般是固件不支持,需要自己编译一下(方法可能是修改某个层的固定键,也可能需要自己手动写代码)


    IP属地:江苏2楼2024-11-07 19:04
    回复
      翻译自Vial官网说明文档:
      “默认情况下,Vial会启用所有支持的功能。因此,在AVR系列(ATmega32U4和ATmega328P)等低功耗芯片上,你可能会遇到闪存、RAM或EEPROM(带电可擦可编程只读存储器)不足的问题。根据键盘的类型,某些选项可能没有用,而其他选项可能对其正常运行至关重要。
      这也意味着一些老旧设计,如流行的Pro Micro控制器中的经典AVR系列,可能需要禁用某些功能或减少配置的槽位数量,以使固件适应编译内存,并避免EEPROM或RAM不足。
      除了编译大小,所有功能共享可用的EEPROM,如果你希望获得比标准数量更多的槽位,可能需要完全禁用某个功能,或者减少其分配的内存以达到平衡”
      如果你进入vial之后无法使用某些下文提到的功能,是因为它们在代码层面被禁用了(芯片性能限制)


      IP属地:江苏3楼2024-11-07 19:05
      回复
        首先进入vial官网
        VIAL使用网页或本地应用程序均可,本地版可以 尝试 加载VIA的json文件(但不一定能用),有此需求的建议下载本地版
        这里选择网页版进入

        下图的灰色表示VIAL网页未完全加载,请耐心等待

        待中间的”Start Vial”变为黑白,加载完成后点击,会跳出提示框,点击连接即可
        本地程序版本无需连接,打开软件就会进行识别,如果失败请尝试导入json



        IP属地:江苏6楼2024-11-07 19:07
        收起回复
          连接后进入改键页面,VIAL的改键和VIA一样简单,甚至更为直观,先在键盘上选中想改的键(选中后会有白色框),然后在Keymap中选择键值即可,改完会自动跳转同一高度(可能不是右边的一个键)的另一个键
          如果选择了LT(kc)这种带嵌套的键,那么你还需要点击该键的小框,并再次填入一个键值,相比VIA的手写键值会方便很多


          和VIA一样,左上角的0 1 2 3 是层(Layer),每一层的按键都能自定义
          最上方的Keyboard Layout用于切换不同语言的布局(日语、俄语、法语、西班牙语等),Security用于锁定/解锁键盘以及重启BL模式(BootLoader是写入MCU 受保护区域的特殊程序,允许 MCU 升级自己的固件),最后的About可以查看Vial的版本以及当前键盘对各个功能是否支持
          Keymap该行有Keymap(键盘布局)、Layout(切换多配列,例如7回,阶梯Caps)、Macros(编写宏)、TapDance(编写按键复用,映射使用下方的TD(n) )、Combos(自定义1-4个按键组合的键值输出)、Key Overrides(修饰键的键值覆盖)、QMK Settings(修改部分QMK底层设置,此处被禁用)、Matrix Tester(键盘触发测试,网页版触发的时候可能会有延迟)
          如果你使用Matrix的键盘连接matrix官网的vial,该行可能会多出三个类别(取决于具体的套件),分别是Misc Settings(设置全键无冲和主控回报率)、RGB Led Stripes(各灯组控制)、RGB Matrix(主键区RGB灯光,和灯组各自分开控制,一般m副厂PCB才有主键区灯光)正是因为这些附加类别的存在,matrix的键盘建议使用m自己的vial而非官方的vial


          IP属地:江苏7楼2024-11-07 19:10
          回复
            下方的Basic行也分为多个类别,Basic(基础键值)、ISO/JIS(7回+R1&R4行日语键盘布局)、Layers(切层键)、Quantum(QMK组合键)、BackLight(RGB调节)、App,Media and Mouse(媒体键、鼠标键等)、TapDance(映射已经编写好的按键复用)、User(自定义键值)、Macro(映射编写好的宏)
            先从Basic讲起,Basic和VIA一样集成了最基础的104键值以及主键区数字上的单独符号,Any,空白键(KC_NO)和倒三角键(KC_TRNS,正经翻译为穿透键)在Basic和ISO/JIS类别中都位于左下角

            如果你选择了不同的语言布局(在最上方的Keyboard Layout中修改),那么Basic和ISO/JIS中的某些键会发生变化,如下图的法语布局,默认是英语布局

            ISO/JIS类别和Base的区别并不大,ISO是国际标准化组织(International StandardOrganization )的缩写,JIS是日本工业标准(JapanaseIndustrial Standards)的缩写。ISO和ANSI(American National Standards Institute,美国国家标准学会)的区别就是7字回车+分裂左shift 和 一字回车+完整左shift,目前市面上还是以ANSI的一字回车为主,薄膜键盘倒是有不少7回
            JIS使用7回,将2U退格分裂为1U的JYEN(默认为日元符号)和1U退格,同时,JIS在空格左边塞入了Muhenkan(無變換),在右边塞入了Henkan(變換)和Kana(平/片假名输入),如果是笔记本键盘的话,空格左右可能是Eisu(英数)和Kana(切换假名输入)


            IP属地:江苏8楼2024-11-07 19:13
            回复
              Layers界面和VIA几乎一模一样(看不懂请去看VIA帖子),层(Layers)允许根据键盘当前处于哪个“层”来改变整个键盘的功能。可以把层想象成叠在一起的结构。可以根据需要配置用于切换层的键,类似于笔记本电脑上的功能键Fn
              VIAL取消了SpaceFn(n)而把LT n(kc)直接加入了Layers

              Fn1(Fn3)和Fn2(Fn3)的功能类似MO,长按临时激活1/2层,但不同之处在于,同时长按Fn1(Fn3)+Fn2(Fn3)可临时激活第3层,该功能为QMK中的Tri-Layer功能
              MO(n)长按可临时激活第n层,松开自动返回默认层,是最简单的切层方式,键盘一次只能识别一个MO的长按
              DF(n)的用处为切换默认层,按下后将第n层临时设置为默认层,正常默认层为0层。该键只能在键盘断电前临时设置非0默认层,如果想永久设置其他默认层需要使用QMK 进行底层修改
              TG(n),即Toggle,仅激活/关闭第n层,可以将第n层及以下的该键位设置为KC_TRNS,这样在切层后能够再次按下TG(n)关闭该层回到0层(按2下就相当于没按)
              TT(n),即Tap-Toggle,长按与MO(n)无异,但重复短按2次及以上为TG功能
              OSL(n)短按直接激活第n层,在该层触发一个键后自动返回默认层,后面的OSM也是类似的功能,QMK Settings中可以调节OSL的相关功能
              TO(n),激活第n层并关闭所有其他层(默认层除外),由于TO(n)能关闭其他层,因此可以实现TG(n)无法做到的非默认层之间的互切,可在第1层使用TO(2)切换至第2层,并在第2层设置TO(1)回到第1层,比起TG(n)来说更为灵活
              LT n(kc),长按与MO(n)无异,短按输出键值,输出什么键值需要在改键后再次填写 ,相当于把Any的一个功能拉出来做了个键方便使用


              IP属地:江苏9楼2024-11-07 19:15
              收起回复
                Quantum是QMK中的一些独特键值和各种组合键,由于Vial中使用了大量缩写,因此请认真阅读下面的解释
                缩写意义(请认真看完):
                kc=keycode=键值
                L代表左,R代表右
                Sft代表Shift
                Ctl代表Ctrl,Alt就是Alt
                Gui取决于操作系统(windows代表win、mac代表command)
                例:LCS(kc)代表 左Ctrl+左Shift+键值(键值要自己填上)
                LCA(kc)代表 左Ctrl+左Alt+键值,以此类推
                Meh(kc)代表 左Ctrl+左Shift+左Alt+键值
                Hyper(kc)代表 左Ctrl+左Shift+左Alt+左Gui+键值
                下面开始讲键值含义
                Esc‘ (注意不是单个Esc)的功能为单按输出ESC,Shift+ Esc‘ 输出~,GUI+ Esc‘ 输出` , 该键本质上为QMK的Grave Escape功能(QMKSettings中可进一步设置),如果你的键盘没有F区,无法取舍Esc和~键的时候可以考虑设置一下
                LS( RS( 的意义为单按输出括号长按输出左右shift,后面的LC/RC是左右Ctrl,LA/RA是左右Alt,没什么实用性
                RS Enter的功能为单按输出Enter长按输出右shift,该键无法双击+长按连续输出Enter


                IP属地:江苏10楼2024-11-07 19:17
                回复
                  第二行的OSM(xxx)是QMK中的One Shot Keys功能,这个功能允许在按下下一个键之前使得某个/某些键一直保持激活状态,例如,按下 OSMLSft 后,左Shift会一直保持激活状态,这时如果按下a的话会输出大写字母A而不是小写a(因为按住shift再按字母会输出大写),如果不按任何键的话会左shift会一直激活
                  OSM行后面的部分,C代表Ctrl,A代表Alt,G代表Gui,S代表Shift,CSA就是Ctrl+Shift+Alt,其余请自己对照上面的缩写去理解

                  第三行的LSft(kc)是组合键,按下后输出Shift+键值(键值需要自己填),其余如LAlt(kc),RGui(kc)等不再赘述,请自己按上面的缩写意义理解
                  第四行的LSft_T(kc)和第三行的区别在于,该行键值单按输出修饰键,长按输出键值。例如LSft(kc)是shift+键值同时触发,而LSft_T(kc)是单按仅触发shift,长按才触发键值,确实是一个比较令人迷惑的组合键

                  第五行是QMK中的Magic Keycodes,用于实现一些键位的互换功能
                  Swap意为切换,Unswap就是切回来,On开启,Off关闭,Toggle循环切换on和off状态
                  Reset一般是用来刷固件的,按一下键盘就会弹一个U盘,然后进行固件替换
                  Swap Ctrl Caps的意思是把键盘上的Ctrl键位和Caps键位互换,如果你的键盘上没有ctrl键位(改键改掉或者HHKB)那么Caps也会直接变成Ctrl,Unswap则是把互换的键位换回来,相当于不打开驱动临时改键,除了对于HHKB和40键盘来说我想不出任何其他用途。
                  其余的Swap中,个人认为唯一有用的就是交换 \键和Backspace键,对于不习惯分裂backspace的用户来说更方便适应
                  Gui On/off就是解锁/锁定所有win键,正常键盘所谓的游戏模式一般只会锁左win而不会锁右win
                  NKRO切换全键无冲,EEH是将键盘的主机拆分为左右两部分(没看懂)
                  Audio是音频模式切换,Haptic是触觉反馈模式相关设置(正常键盘用不上)
                  Auto-Shift功能在QMK Settings里面可详细设置,
                  Combos on/off/toggle用来开启/关闭/切换Combos功能


                  IP属地:江苏12楼2024-11-07 19:19
                  回复
                    Backlight用于调节键盘的灯光,和VIA的几乎没有差别
                    BLON/OFF 用于开关背光
                    BLToggle用于切换背光模式
                    BLCycle/Breath 调节背光的呼吸/循环
                    RGB Toggle用来开/关RGB灯光
                    RGB Mode+/- 可切换预设的RGB模式
                    Bright+/- 用于调整灯光亮度
                    Effect Speed+/-调整灯效速度
                    Sat+/-用于调整RGB饱和度(饱和度越高RGB颜色越鲜艳)
                    Hue+/-调整色相(静止的RGB灯效可以用Hue换色)
                    后面的RGBMode xxx则是直接切换至某个灯效,不过需要键盘预设灯效和vial中的灯效名称一致,所以大多数情况下都没用


                    IP属地:江苏13楼2024-11-07 19:21
                    回复
                      App,Media and Mouse集合了一些媒体、鼠标功能键
                      没啥好说的,汉化的版本里面已经很详细了,看图吧

                      此处的Tap Dance用于将编写好的Tap Dance映射到键盘上,故不作任何说明

                      User是自定义键码项,允许用户自己映射Layer键、宏、组合键等,但通过特殊途径兼容的VIAL是完全无法使用的,因此无法演示

                      此处的Macros用于将编写好的宏映射到键盘上,后面的DM是Dynamic Macro(动态宏),也就是通过按键录制来编写的宏


                      IP属地:江苏16楼2024-11-07 19:25
                      回复
                        下面开始讲解Vial界面上方Keymap行的功能
                        Keymap真没啥好讲的,只显示当前键盘的布局和改键情况,可以按右上方的+ -进行放大缩小,会影响下方Basic行能显示的内容,建议不要太大

                        Layout界面可以更改键盘的布局,例如7回、阶梯Caps、分裂空格/退格/左右Shift,以及Alice左右2.25+2.75U的空格布局,只需打勾即可进行修改,修改后Keymap界面会发生变化,多出来的键会自动填一个键值进去,记得修改


                        IP属地:江苏17楼2024-11-07 19:27
                        回复
                          Macro界面用于编写宏,Vial的宏比Via更强大,编写起来更为直观
                          宏有5种操作,分别是 文本,按下,释放、单击、延迟(和下图对应)

                          下面通过编写一个直接打开steam的宏来讲讲这些操作
                          首先思考该如何打开steam——打开windows菜单→输入steam(如果此时是拼音输入法还需要选中)→按下enter
                          思考完成后,开始使用宏的5种操作模拟
                          在右下角找到Add Action并单击,记得将默认的Text方式改一下

                          打开windows菜单:按下Gui键并松开(不写Up松开的话会导致一直长按,编写组合键的宏请务必注意)
                          这里用右Gui是防止某些电脑的游戏模式会锁左Gui

                          输入steam并选中:文本输入steam,并单击enter使拼音输入法不输出中文(也可以选择按下字母区的1并抬起)

                          最后设置延迟观察效果,并再次设置单击回车即可

                          如果需要更复杂的宏还请各位灵活运用这5种方式进行组合


                          IP属地:江苏18楼2024-11-07 19:34
                          收起回复
                            Lighting可直接调整键盘的RGB灯光,操作逻辑和VIA完全一样,不多说了


                            IP属地:江苏19楼2024-11-07 19:36
                            回复
                              Tap Dance是Vial比起Via最为强大的功能之一,它允许一个键的四种输入方式(单击、长按、双击、双击+长按)输出4种不同的键值甚至宏
                              一般情况下Vial有8个TD可用,设置的方式非常简单,在每个框内填入想要的键值即可。如果你不知道填什么好,请往上翻把所有键值的含义再读一遍
                              Tapping term表示固件区分操作的时机。如果你按住的单个键的时间超过了该值(毫秒),则此次触发视为长按。如果单键被按住的时间短于该值,则视为单击。
                              需要注意的是,默认的200ms需要修改一下才能保存本次编辑的Tap Dance,但如果你就想要200ms触发,那么你需要先将该值改为199(或者其他数字)并按右下角save保存后,再将其改回200进行第二次保存,这是Vial中比较麻烦的操作
                              一般情况下,100ms以内比较难以触发双击,请根据自己的手速和习惯进行修改。另外,设置TD后哪怕不设置双击的键值,单按触发也会有一定延迟


                              IP属地:江苏20楼2024-11-07 19:37
                              回复