让VIA自动识别你的客制化键盘
bijy
2024年08月25日 18:44
收录于文集
共6篇

注:要实现自动识别,需将修改版部署在阿里云服务器等公网或内网环境中。使用官方版本的VIA网站(https://usevia.app)时,仍需要自行导入JSON。

VIA网站使用的是Node.js。为了方便,将在Windows 10上进行整个编译过程(与纯Linux环境下基本一致)。部署系统为Debian 12,Web服务器选择Nginx。

0.环境准备

方法一.在MSYS2 MINGW64环境中进行编译

从官网下载MSYS2,点击红框处蓝色链接进行下载。

从官网下载

如果速度太慢可以使用镜像站的链接下载。

https://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/

下拉找到最新的下载即可。

从镜像站下载

安装MSYS2,默认安装在C盘,可以自己更改安装目录。这里我改为D盘,然后一路NEXT即可。

安装MSYS2

安装完成打开的版本不对,重新找到MSYS2 MINGW64运行。

运行MSYS2 MINGW64

更换MSYS2软件源,使用清华大学开源软件镜像站的软件源。

代码块
Shell
自动换行
复制代码
sed -i "s#https\?://mirror.msys2.org/#https://mirrors.tuna.tsinghua.edu.cn/msys2/#g" /etc/pacman.d/mirrorlist*
复制成功

安装git和npm。

代码块
Shell
自动换行
复制代码
pacman -S git
pacman -S mingw-w64-x86_64-nodejs
复制成功

方法二.在WSL环境中进行编译(Windows商店抽风/系统配置等问题容易失败)

安装git、nodejs和npm。

代码块
JavaScript
自动换行
复制代码
apt update
apt install git nodejs npm
复制成功

1.获取the-via/keyboards源码

代码块
Shell
自动换行
复制代码
git clone https://github.com/the-via/keyboards.git
复制成功

获取the-via/keyboards源码

2.添加键盘JSON

先进入keyboards源码目录。

代码块
Shell
自动换行
复制代码
cd keyboards
复制成功

可以看到v3内有很多其他厂商/工作室键盘的JSON。

厂商/工作室键盘

例如这个keychron的v3的多个JSON。

单键盘的JSON

要实现自动识别,就需要按照结构新建一个目录,再将路转ln80的JSON添加进去。

代码块
Shell
自动换行
复制代码
mkdir -p v3/luzhuan/ln80
复制成功

在文件资源管理器中打开这个目录,将JSON添加进去。

D:\msys64\home\你的用户名\keyboards\v3\luzhuan\ln80

添加JSON

在虚拟终端检查一下是否已经存在。

已经可以看到添加的JSON

可视情况删除其他的JSON,或仅保留luzhuan文件夹。

3.配置ssh key,用于访问个人仓库(可选)

如果新建仓库时将仓库设置为Private私密,需要此操作。

将邮箱替换成自己github内预留的邮箱,重新生成一次。执行后直接回车即可,无需设置keyphrase。

代码块
Shell
自动换行
复制代码
ssh-keygen -t rsa -C "邮箱"
复制成功

生成完毕,将这串复制到github

代码块
Shell
自动换行
复制代码
cat ~/.ssh/id_rsa.pub
复制成功

读取ssh key

点击个人头像进入设置

找到设置

添加ssh key

添加ssh key

在Title输入名字,Key中粘贴ssh key

添加ssh key

测试一下是否有效

测试连接有效

有successfully字样即表示成功有效。

4.推送修改过的源码到自己的个人仓库

和常规的新建空白仓库Push的流程一致。

5.获取the-via/app源码

获取the-via/app源码

6.修改package.json文件,更换为从个人仓库获取

进入app目录

代码块
Shell
自动换行
复制代码
cd app
vim package.json
复制成功

将两处 github:the-via/keyboards 更改为自己的个人仓库,格式为:git+ssh://后面接从仓库复制的链接。如果是Public仓库可以直接将其更改为 github:仓库名 。

复制仓库ssh链接

修改package.json文件

7.安装模块并编译

安装模块

代码块
Shell
自动换行
复制代码
npm install
复制成功

安装模块

编译

代码块
Shell
自动换行
复制代码
npm run build
复制成功

无报错即编译完成。

编译完成

编译完的文件在dist目录内。需要将这些文件复制到Nginx Web服务器上。

dist目录内文件

8.将文件上传到Linux服务器中,配置Nginx

需要将上述dist目录内的所有文件上传至/var/www/html,目录中。

因为使用到了https的一些特性,需要修改一下默认的Nginx配置。

先使用ssl生成证书,后续需要使用到。

代码块
Shell
自动换行
复制代码
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.cer -days 365 -nodes
复制成功

在目录/etc/nginx下新建目录cert,将两个文件都复制到/etc/nginx/cert中。

代码块
Shell
自动换行
复制代码
cp server.* /etc/nginx/cert/
复制成功

在目录/etc/nginx/sites-enabled中,复制一份default,改名为usevia。

代码块
Shell
自动换行
复制代码
cp /etc/nginx/sites-enabled/default /etc/nginx/sites-enabled/usevia
复制成功

修改usevia,将此处监听80端口改为443。

修改监听端口

新增红框中的内容来开启ssl,并将证书设置为刚刚复制的自签名证书。

添加自签名证书

完成后重新启动Nginx。

代码块
Shell
自动换行
复制代码
systemctl restart nginx
复制成功

9.通过Linux服务器的IP地址进行访问(记得加https://),测试能否自动识别

无需导入JSON即可自动识别。

自动识别成功

效果可以看这个视频。