小白进!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 是免费的,并且由于强大的社区支持而不断改进,因此大家可以去尝试制作一把属于自己独有键盘。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式事务seata基于docker安装和项目集成seata

目录 本地事务 根据隔离性的等级会导致不同的问题 有四种隔离等级 分布式事务 现在有一个场景: 结果: CAP定理 矛盾 总结: es集群使用的是cp: BASE理论 解决分布式事务的思路 Seata Seata的架构 docker安装seata 1.拉取seat…

ubuntu20.04安装anaconda与基本使用

1. 安装 参考 安装中参考 安装后,更新清华源 sudo gedit ~/.condarc参考 删除清华源,换为原本的源: 1、删除之前的镜像通道 2、重新添加默认的镜像通道 conda config --remove-key channels conda config --append channels conda-forge -…

【Qt实现虚拟键盘】

Qt实现虚拟键盘 🌟项目分析🌟实现方式🌟开发流程 🌟项目分析 需求:为Linux环境下提供可便捷使用的虚拟键盘OS环境:Windows 7/11、CentOS 7开发语言:Qt/C IDE:QtCreator 、Qt5.14.2功…

react中如何在一张图片上加一个灰色蒙层,并添加事件?

最终效果: 实现原理: 移动到图片上的时候,给img加一个伪类 !!此时就要地方要注意了,因为img标签是闭合的标签,无法直接添加 伪类(::after),所以 我是在img外…

电子应用产品设计方案-11:全自动智能全屋智能系统设计方案

一、设计目标 打造便捷、舒适、安全且节能的全屋智能环境。 二、系统组成 1. 智能灯光系统 - 在客厅、卧室、厨房、卫生间等各处安装智能灯具,可通过手机 APP、语音控制实现开关、调光调色。如客厅设置多种场景模式,如“观影模式”(灯光…

SpringBoot获取请求参数

spring boot获取请求参数 文章目录 spring boot获取请求参数一、简单参数二、实体参数三、数组集合参数四、日期参数五、Json参数六、路径参数 开头概述 在Spring Boot框架中,处理HTTP请求并获取请求参数是开发Web应用程序中的一项基本任务。无论是简单的GET请求还是…

服务端高并发分布式结构进阶之路

序言 在技术求知的旅途中,鉴于多数读者缺乏在中大型系统实践中的亲身体验,难以从宏观角度把握某些概念,因此,本文特选取“电子商务应用”作为实例,详细阐述从百级至千万级并发场景下服务端架构的逐步演变历程。同时&am…

WebRTC视频 02 - 视频采集类 VideoCaptureModule

WebRTC视频 01 - 视频采集整体架构 WebRTC视频 02 - 视频采集类 VideoCaptureModule(本文) WebRTC视频 03 - 视频采集类 VideoCaptureDS 上篇 WebRTC视频 04 - 视频采集类 VideoCaptureDS 中篇 WebRTC视频 05 - 视频采集类 VideoCaptureDS 下篇 一、前言…

POI实现根据PPTX模板渲染PPT

目录 1、前言 2、了解pptx文件结构 3、POI组件 3.1、引入依赖 3.2、常见的类 3.3、实现原理 3.4、关键代码片段 3.4.1、获取ppt实例 3.4.2、获取每页幻灯片 3.4.3、循环遍历幻灯片处理 3.4.3.1、文本 3.4.3.2、饼图 3.4.3.3、柱状图 3.4.3.4、表格 3.4.3.5、本地…

全国高校计算机能力挑战赛区域赛2019C++选择题题解

2019 1.下列选项中错误的是()。 A.数组元素的地址计算与数组的存储方式有关 B.类的const成员函数不能修改类的成员变量 C.用const常量代替宏定义可以让编译器进行安全性检查 D.函数可以同时返回2个以上的值 解析: 本题选D,函数通常只能直接返回一个值,函…

sqli-labs靶场17-20关(每日四关)持续更新!!!

Less-17 打开靶场,发现页面比之前多了一行字 翻译过来就是,密码重置,大家肯定会想到,自己平时在日常生活中怎么密码重置,肯定是输入自己的用户名,输入旧密码,输入新密码就可以了,但…

Electron 沙盒模式与预加载脚本:保障桌面应用安全的关键机制

在 Electron 中,沙盒(Sandbox) 和 预加载脚本(Preload) 是关键的安全机制和架构概念。它们一起用于确保应用的安全性和稳定性,特别是当需要在渲染进程中访问某些系统资源时。以下是对沙盒模式和预加载脚本的…

node.js下载安装步骤整理

>> 进入node.js下载页面下载 | Node.js 中文网 >>点击 全部安装包 >>删除网址node后面部分,只保留如图所示部分,回车 >>点击进入v11.0.0/版本 >>点击下载node-v11.0.0-win-x64.zip(电脑是windows 64位操作系统适用) >…

ThinkServer SR658H V2服务器BMC做raid与装系统

目录 前提准备 一. 给磁盘做raid 二. 安装系统 前提准备 磁盘和系统BMC地址都已经准备好,可正常使用。 例: 设备BMC地址:10.99.240.196 一. 给磁盘做raid 要求: 1. 将两个894G的磁盘做成raid1 2. 将两块14902G的磁盘各自做…

SpringBoot配置类

在Spring Boot中,配置类是一种特殊的类,用于定义和配置Spring应用程序的各种组件、服务和属性。这些配置类通常使用Java注解来声明,并且可以通过Spring的依赖注入机制来管理和使用。 Spring 容器初始化时会加载被Component、Service、Reposi…

SpringBoot教程(二十五) | SpringBoot配置多个数据源

SpringBoot教程(二十五) | SpringBoot配置多个数据源 前言方式一:使用dynamic-datasource-spring-boot-starter引入maven依赖配置数据源动态切换数据源实战 方式二:使用AbstractRoutingDataSource1. 创建数据源枚举类2. 创建数据源…

ZooKeeper单机、集群模式搭建教程

单点配置 ZooKeeper在启动的时候,默认会读取/conf/zoo.cfg配置文件,该文件缺失会报错。因此,我们需要在将容器/conf/挂载出来,在制定的目录下,添加zoo.cfg文件。 zoo.cfg logback.xml 配置文件的信息可以从二进制包…

【大数据学习 | HBASE高级】hbase-phoenix 与二次索引应用

1. hbase-phoenix的应用 1.1 概述: 上面我们学会了hbase的操作和原理,以及外部集成的mr的计算方式,但是我们在使用hbase的时候,有的时候我们要直接操作hbase做部分数据的查询和插入,这种原生的方式操作在工作过程中还…

Python入门(7)--高级函数特性详解

Python高级函数特性详解 🚀 目录 匿名函数(Lambda)装饰器的使用生成器与迭代器递归函数应用实战案例:文件批处理工具 1. 匿名函数(Lambda)深入解析 🎯 1.1 Lambda函数基础与进阶 1.1.1 基本…

【环境配置】GPU - 加速深度学习

版本对应关系Previous PyTorch Versions | PyTorch 这里具体讨论需要使用GPU时的环境配置。Pytorch 和 torchvision 等框架可以利用 CUDA 和 cuDNN 提供的 GPU 加速功能,高效地处理大规模的深度学习任务,如计算机视觉中的图像分类、目标检测等任务。 1. NVIDIA 显卡硬件条件…