小白进!QMK 键盘新手入门指南

经常玩键盘的伙伴应该都知道,现在的键盘市场可谓是百花齐放,已经不是之前的单一功能产品化时代。我们可以看到很多诸如:机械轴键盘、磁轴键盘、光轴键盘、电感轴键盘,以及可能会上市的光磁轴键盘,更有支持屏幕的、带旋钮的、带触摸按键甚至是触摸板的键盘,还有各种不同的键位配置,背光灯效,重量配置,以及各种回报率的键盘等等。在这些键盘里面,最近几天我关注最多的是 QMK 键盘,为此去搜集了些资料,分享给大家,仅供参考。

一、什么是  QMK

QMK  (Quantum Mechanical Keyboard) 是一个以开发计算机输入设备为中心的开源社区。社区包含各种输入设备,如键盘、鼠标和 MIDI (Musical Instrument Digital Interface乐器数字接口)设备。有一个核心协作者组负责维护 QMK 固件,QMK 配置器,QMK 工具箱和 QMK 网站。 作为一个开源的键盘固件,可以用于许多不同类型的机械键盘。旨在为用户提供高度定制化的键盘功能。它支持多种键盘硬件,并允许用户通过修改配置文件自定义按键映射、宏、LED 灯光效果等,可以帮助用户自定义键盘布局和功能,支持多种操作系统和编程语言。

我们的键盘里面有一个处理器,就像我们的电脑里面的一样。该处理器运行的软件负责检测按键的按下,并在按键按下时通知计算机。QMK 固件充当软件的角色,检测按下的按键并将信息传递给主机。当我们构建自定义的键映射时,就是为我们的键盘创建一个可执行的程序。

"qmk_keyboards" 资源库提供了一站式的平台,以获取各种键盘的机器可读数据,包括配置文件、元数据、布局图、文档、示例代码、测试脚本和更新日志。QMK 的核心是它的模块化设计。它将键盘的各个部分——如扫描矩阵、USB 通信、键盘配置——作为独立的模块,方便开发者针对特定设备进行定制。

此外,QMK 提供了丰富的 API 和工具链,如 qmk_toolbox 和 qmk_configurator,让非开发人员也能轻松地调整键盘设置,允许用户在本地或通过在线服务快速构建固件。

二、QMK  的历史

QMK 最早由 Jack Humbert 在 2013 年发布。它是一个开源项目,得到了广泛的应用和认可。随着时间的推移,QMK不断得到改进和升级,逐渐成为一个高度灵活和可定制的键盘固件。

三、QMK  的特点

可定制性:QMK 允许用户自定义键盘布局和功能,可以满足各种使用需求。

跨平台:QMK 支持多种操作系统和编程语言,如 Windows、Linux、Mac OS、C 和 C++ 等。

易用性:QMK 提供了易于理解和使用的 API 接口,可以帮助开发人员快速上手。

高度灵活:QMK 支持多种映射方式和触发事件,可以定制各种复杂的键盘操作。

开放性:QMK 是一个开源项目,并且遵循 GPLv3 许可证。

四、QMK 的应用

自定义键盘:QMK 可以用于自定义机械键盘的功能和布局,满足各种用户需求。

游戏开发:QMK 可以用于游戏开发中的键盘响应和触发事件。

软件开发:QMK 可以用于软件开发中的快捷键和代码块等操作。

数据输入:QMK 可以用于数据输入软件的快捷键和输入模式等操作。

教育培训:QMK 可以用于编程教育中的键盘布局和快捷键等操作。 

五、QMK 键盘的一般构建步骤

  • 建立qmk开发环境
  • 构建我们的第一个固件
  • 刷写我们的键盘固件
  • 刷写我们的固件
  • 调试和运行

六、QMK 目前支持的 MCU

我们从下图可以看到,在社区网站上,我们可以找到目前支持我们进行  QMK 键盘创作的 MCU 平台。

七、QMK 固件功能定制的原理

键码映射 :每一个物理按键都能被映射到任意的键码上,支持各种自定义布局和功能。

层管理 :通过分层的方式管理不同功能的按键,实现单个按键在不同层中的不同功能。

宏编程 :可以编写宏,即一系列按键操作的集合,一键执行复杂的命令序列。

LED控制 :利用底层的LED控制功能,自定义键盘的背光效果。

功能扩展 :利用额外的插件和功能,比如音频音效、LCD 显示等。

最后,键盘很多人生活中都要用到的,如果我们都能按照自己的意愿使用键盘,我们的工作效率将大大提升。同时,QMK 是免费的,并且由于强大的社区支持而不断改进,因此大家可以去尝试制作一把属于自己独有键盘。

点击此处登录大大通,获取更多精彩技术内容吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS】鸿蒙系统在租房项目中的项目实战(二)

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

《Markdown语法入门》

文章目录 《Markdown语法入门》1.标题2.段落2.1 换行2.2分割线 3.文字显示3.1 字体3.2 上下标 4. 列表4.1无序列表4.2 有序列表4.3 任务列表 5. 区块显示6. 代码显示6.1 行内代码6.2 代码块 7.插入超链接8.插入图片9. 插入表格 《Markdown语法入门》 【Typora 教程】手把手教你…

北京大学c++程序设计听课笔记101

基本概念 程序运行期间,每个函数都会占用一段连续的内存空间。而函数名就是该函数所占内存区域的起始地址(也称“入口地址”)。我们可以将函数的入口地址赋给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以调用这个…

C++:boost库安装

官网:https://www.boost.org/ Boost 库在 C 社区中广受欢迎,主要因为它提供了丰富、强大且稳定的功能,可以显著提高开发效率和代码质量。下面是使用 Boost 库的主要优势和特点: 1. 丰富的功能集合 Boost 提供了数十个高质量的 …

VScode学习前端-01

小问题合集: vscode按!有时候没反应,有时候出来,是因为------>必须在英文状态下输入! 把鼠标放在函数、变量等上面,会自动弹出提示,但挡住视线,有点不习惯。 打开file->pre…

机房动环境监控用各种列表已经淘汰了,现在都是可视化图表展示了

在信息技术飞速发展的今天,机房作为数据存储、处理和传输的核心场所,其稳定运行至关重要。过去,机房动环境监控主要依赖各种列表形式来呈现数据,但如今,这种方式已经逐渐被淘汰,取而代之的是更加直观、高效…

Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 优化场景定义

Pytest-Bdd-Playwright 系列教程(10):配置功能文件路径 & 优化场景定义 前言一、功能文件路径的配置1.1 全局设置功能文件路径1.2. 在场景中覆盖路径 二、避免重复输入功能文件名2.1 使用方法2.2 functools.partial 的背景 三、应用场景总…

【软件测试】自动化常用函数

文章目录 元素的定位cssSelectorxpath查找元素 操作测试对象点击/提交对象——click()模拟按键输入——sendKeys(“”)清除文本内容——clear()获取文本信息——getText()获取页面标题和 URL 窗口设置窗口大小切换窗口关闭窗口 等待强制等待隐式等待显式等待 浏览器导航 元素的…

CC4学习记录

&#x1f338; CC4 CC4要求的commons-collections的版本是4.0的大版本。 其实后半条链是和cc3一样的&#xff0c;但是前面由于commons-collections进行了大的升级&#xff0c;所以出现了新的前半段链子。 配置文件&#xff1a; <dependency><groupId>org.apach…

【linux】网络基础 ---- 数据链路层

用于两个设备(同一种数据链路节点)之间进行传递 数据链路层解决的问题是&#xff1a;直接相连的主机之间&#xff0c;进行数据交付 1. 认识以太网 "以太网" 不是一种具体的网络, 而是一种技术标准&#xff1a; 既包含了数据链路层的内容, 也包含了一些物理层的内容…

5. ARM_指令集

概述 分类 汇编中的符号&#xff1a; 指令&#xff1a;能够编译生成一条32位机器码&#xff0c;并且能被处理器识别和执行伪指令&#xff1a;本身不是指令&#xff0c;编译器可以将其替换成若干条指令伪操作&#xff1a;不会生成指令&#xff0c;只是在编译阶段告诉编译器怎…

小程序租赁系统开发为企业提供高效便捷的租赁服务解决方案

内容概要 在这个数字化飞速发展的时代&#xff0c;小程序租赁系统应运而生&#xff0c;成为企业管理租赁业务的一种新选择。随着移动互联网的普及&#xff0c;越来越多的企业开始关注如何利用小程序来提高租赁服务的效率和便捷性。小程序不仅可以为用户提供一个快速、易用的平…

计算机组成原理——高速缓存

标记表示——主存块号和缓存块之前的一一对应关系

赛元免费开发板申请

在作者网上冲浪的时候&#xff0c;突然发现了一个国内的良心企业&#xff0c;虽然现在不是很有名&#xff0c;但是他现在是有一个样品申请的活动&#xff0c;他就是国内的Redfine新定义&#xff0c;他申请的板子是用的赛元MCU&#xff0c;作者本着有板子就要申请的原则&#xf…

Ubuntu 的 ROS 操作系统 turtlebot3 SLAM仿真

引言 SLAM&#xff08;同步定位与地图构建&#xff09;在Gazebo仿真环境中的应用能够模拟真实机器人进行环境建图和导航。通过SLAM仿真&#xff0c;开发者可以在虚拟环境中测试算法&#xff0c;而不必依赖真实硬件&#xff0c;便于调试与优化。 Gazebo提供了多个虚拟环境&…

【解决】Layout 下创建槽位后,执行 Image 同步槽位位置后表现错误的问题。

开发平台&#xff1a;Unity 6.0 编程语言&#xff1a;CSharp 编程平台&#xff1a;Visual Studio 2022   一、问题背景 | 开发库存系统 图1 位置同步失败问题 图2 位置正常同步效果表现 黑框 作用于 UnityEngine.UI.GridLayoutGruop&#xff0c;形成 4x6 布局&#xff0c;如…

红日靶场-1详细解析(适合小白版)

红日靶场涉及内网知识&#xff0c;和前期靶场不太一样&#xff0c;前期靶场大部分都是单个靶机获得root权限&#xff0c;而这一次更综合&#xff0c;后期也会继续学习内网知识&#xff0c;继续打红日靶场&#xff0c;提高自己的综合技能。 环境搭建 首先本题的网络拓扑结构如…

LabVIEW大数据处理

在物联网、工业4.0和科学实验中&#xff0c;大数据处理需求逐年上升。LabVIEW作为一款图形化编程语言&#xff0c;凭借其强大的数据采集和分析能力&#xff0c;广泛应用于实时数据处理和控制系统中。然而&#xff0c;在面对大数据处理时&#xff0c;LabVIEW也存在一些注意事项。…

小米路由器用外网域名访问管理界面

本文在Redmi AX3000 (RA81)设置&#xff0c;其他型号路由器的管理界面端口可能各不相同。 开始之前需要保证路由器SSH功能正常&#xff0c;如果没有SSH可以参考这里。 1. 给WAN口开放80端口 可以通过下载mixbox的firewall插件或者其他防火墙插件开放端口。 2. 把域名解析到路…

【AI图像生成网站Golang】雪花算法

AI图像生成网站 目录 一、项目介绍 二、雪花算法 三、JWT认证与令牌桶算法 四、项目架构 五、图床上传与图像生成API搭建 六、项目测试与调试(等待更新) 雪花算法 雪花算法 (Snowflake) 是一种高效、可扩展的分布式唯一ID生成算法&#xff0c;最早由 Twitter 开发&…