分享关于使用via实现锁win键功能的方法 - zFrontier 装备前线

果然有大佬出来给了更简单的实现方式,经过我的尝试,通过vial加载了当前键盘后,导出配置文件到本地,该文件后缀是 【.vil】

用文本编辑工具打开vil文件,把对应的键值位置修改为 0x5d61 ,如下图所示

这个配置文件的键位配置顺序是逐层逐行逐键来排列,需要仔细对应一下

比较简单的办法是直接改键位为熟悉的按键,比如这个静音键

然后在配置文件中直接搜索MUTE找到该值直接更改即可

然后在vial中按Ctrl+O重新导入配置文件即Load saved layout,在layout中键位如下显示即成功

    • *

所以归根结底,via或者vial都或多或少缺失了一些qmk键值,qmk固件已经支持了开关win键这个功能,即MAGIC_TOGGLE_GUI

在全球最大同性交友网站中可以看到因为种种原因,via暂未支持这个键值:

https://github.com/qmk/qmk_firmware/pull/13830

下面的砖果然引来了玉~~~~

    • *

因为今天在群里给老哥分享了一下才发现好像没什么人讨论过这个功能,能搜到的基本都说无法实现~

那我来抛砖引玉!因为有点复杂,希望有大佬可以给出更简单的实现方式

首先声明我理解锁win键的操作是:

按一次fn+win,win键就锁定,再按一次fn+win,win键解锁

那么我按照qmk的层切换翻译过来就是:

按一下fn+win,切换到【win键位为空白无效键】的层,再按一次fn+win回归到原来那层

而qmk中layer相关的按键有很多,我用到以下两种:

MO():按下触发层,按下该键后,键盘切换到目标层,就是大家都知道的fn键,松开则回到原层

TO():一键切换层,按下该键后,键盘切换到目标层,但松开后不会回到原层,所以需要配置回去的按键

那么实现逻辑就是在不同层设置几个按钮就行:

layer0:即原层,win键位处就是win,fn键位需要触发下一层即MO(1)

layer1:按下fn触发的层,win键位处是一键切换到layer2(即TO(2))

layer2:即上面按钮切换下来的层,win键位处是空白(这里有一个坑后面讲),fn键位需要触发下一层即MO(3)

layer3:按下fn触发的层,win键位处是一键切换到layer0(即TO(0))

实例如下:

(由于我fn常用的快捷键很少,所以layer3偷懒了

下面来讲讲坑点:

  1. 由于原理是通过切换层来实现,按照我的理解切换到layer2锁win之后,需要将layer2其他键位设置和layer0相同,同理layer3也要和layer1相同,这个要一个个对照着设置,不然切层后使用体验会有所变化,比如会出现【解锁win键后才能使用其他fn的快捷键】的情况,这个虽然比较麻烦,但其实也是一劳永逸
  2. 这个是在qk客户群分享这个方法给某个用同样需求的老哥的时候发现的问题,即via汉化版和via英文原版有一些显示上的区别,如下面两张图,英文原版这里最前面两个按键分别是无效和穿透,老哥使用的汉化版显示反了,但功能上,三角是无效,空白是穿透,所以上面layer2的win需要使用第一个键——空白,如果发现锁win无效,就尝试调换看看能不能生效

完结撒花~~~


原网址: 访问
创建于: 2024-05-08 15:41:18
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论