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

news2024/11/17 21:24:40

经常玩键盘的伙伴应该都知道,现在的键盘市场可谓是百花齐放,已经不是之前的单一功能产品化时代。我们可以看到很多诸如:机械轴键盘、磁轴键盘、光轴键盘、电感轴键盘,以及可能会上市的光磁轴键盘,更有支持屏幕的、带旋钮的、带触摸按键甚至是触摸板的键盘,还有各种不同的键位配置,背光灯效,重量配置,以及各种回报率的键盘等等。在这些键盘里面,最近几天我关注最多的是 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.coloradmin.cn/o/2242407.html

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

相关文章

《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配

文章目录 0. 概述1. 内存碎片问题2. 动态分配3. 首次适配算法4. 最优适配算法5. 最差适配算法 0. 概述 内存分配是操作系统管理过程中很重要的环节,首先需要考虑的是一块连续区域分配的过程,这个过程中会有很多问题,首先比较关注的一个问题是…

vue内置指令和自定义指令

常见的指令: v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简…

蓝桥杯备赛(持续更新)

16届蓝桥杯算法类知识图谱.pdf 1. 格式打印 %03d:如果是两位数,将会在前面添上一位0 %.2f:会保留两位小数 如果是long,必须在数字后面加上L。 2. 进制转化 2.1. 十进制转任意进制: 十进制转任意进制时&#xff…

vue 项目使用 nginx 部署

前言 记录下使用element-admin-template 改造项目踩过的坑及打包部署过程 一、根据权限增加动态路由不生效 原因是Sidebar中路由取的 this.$router.options.routes,需要在计算路由 permission.js 增加如下代码 // generate accessible routes map based on roles const acce…

TensorFlow 2.0 环境配置

官方文档:CUDA Installation Guide for Windows 官方文档有坑,windows的安装指南直接复制了linux的指南内容:忽略这些离谱的信息即可。 可以从官方文档知悉,cuda依赖特定版本的C编译器。但是我懒得为了一个编译器就下载整个visua…

【计算机网络】【传输层】【习题】

计算机网络-传输层-习题 文章目录 10. 图 5-29 给出了 TCP 连接建立的三次握手与连接释放的四次握手过程。根据 TCP 协议的工作原理,请填写图 5-29 中 ①~⑧ 位置的序号值。答案技巧 注:本文基于《计算机网络》(第5版)吴功宜、吴英…

HarmonyOS本地存储-Preferences(用户首选项)的使用

一,用户首选项简述 ohos.data.preferences (用户首选项) 用户首选项为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据,并对其修改和查询。 数据存储形式为键值对,键的类型为字符串型,值的存储数据…

基于Java Web 的家乡特色菜推荐系统

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【售前方案】工业园区整体解决方案,智慧园区方案,智慧城市方案,智慧各类信息化方案(ppt原件)

基于云计算、物联网、移动通信计算的智慧园区集中运营管理平台是一个高度集成化、智能化的管理系统,它利用先进的技术手段对园区进行全方位的监控和管理。 软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审…

Vue2+ElementUI:用计算属性实现搜索框功能

前言: 本文代码使用vue2element UI。 输入框搜索的功能,可以在前端通过计算属性过滤实现,也可以调用后端写好的接口。本文介绍的是通过计算属性对表格数据实时过滤,后附完整代码,代码中提供的是死数据,可…

CSS实现炫酷的水波纹效果

炫酷的水波纹效果 看好了&#xff0c;下面是我最后的波纹了 实现代码 HTML&#xff1a; <div class"container"></div> <script src"https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>CSS: body{height: 1…

【会话文本nlp】对话文本解析库pyconverse使用教程版本报错、模型下载等问题解决超参数调试

前言&#xff1a; 此篇博客用于记录调用pyconverse库解析对话文本时遇到的问题与解决思路&#xff0c;以供大家参考。 文章目录 pycoverse介绍代码github链接问题解决1 [cannot import name ‘cached_download‘ from ‘huggingface_hub‘ 问题解决](https://blog.csdn.net/wei…

单元测试时报错找不到@SpringBootConfiguration

找到问题出现原因&#xff1a; 错误表示 Spring Boot 在运行测试时无法找到 SpringBootConfiguration 注解。 通常&#xff0c;SpringBootTest注解用于加载 Spring Boot 应用上下文&#xff0c;但它需要找到一个带有SpringBootConfiguration&#xff08;或者Configuration&am…

【数据结构】11.哈夫曼树哈夫曼编码

一、哈夫曼树的基本概念 哈夫曼&#xff08;Huffman&#xff09;树又称最优树&#xff0c;是一类带权路径长度最短的树&#xff0c;在实际中有广泛的用途。 路径&#xff1a; 从树中一个节点到另一个节点之间的分支构成这两个节点之间的路径。路径长度&#xff1a; 路径上的分…

AntD表单自定义组件

前言 表单可以说是前端最常见的一种组件&#xff0c;特别是在进行搜索的时候使用的最频繁&#xff0c;自定义表单组件&#xff0c;丰富了搜索框的类型&#xff0c;使数据展现的更灵活 内容讲解 1、官方介绍 AntD-Formhttps://ant.design/components/form-cn#form-demo-cust…

day-83 最少翻转次数使二进制矩阵回文 II

思路 关键在于1的个数要为4的倍数&#xff0c;首先镜像的四个位置肯定一定为4的倍数&#xff0c;如果行和列为奇数则需要单独考虑&#xff0c;如果行和列皆为奇数&#xff0c;那么中心的那个数一定为0 解题过程 再单独考虑如果行和列为奇数&#xff0c;具体参考灵神。如果diff…

Gitcode文件历史记录查看和还原

文件历史记录 文件历史记录用于记录代码文件的更改历史&#xff0c;它允许用户查看文件的不同版本&#xff0c;了解每个版本的修改内容、作者和提交消息。这对于跟踪文件演进、恢复错误更改、审查代码以及了解项目进展都非常有用。 文件历史记录功能提供了以下核心功能&#…

WebSocket协议在Java中的整合

1. 常见的消息推送方式 2.WebSocket API 3.基于WebSocket的实战&#xff08;实时聊天室&#xff09; 这里以解析后端代码为主&#xff0c;前端不作为重点&#xff0c;若想复现项目&#xff0c;请从作者的仓库中拉取代码 WebSocket-chatRoom: 基于WebSocket协议实现一个简单的…

http自动发送请求工具(自动化测试http请求)

点击下载《http自动发送请求工具(自动化测试http请求)》 前言 在现代软件开发过程中&#xff0c;HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求&#xff0c;我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发…

【小白可懂】微信小程序---课表渲染

结果展示&#xff1a;&#xff08;代码在最后&#xff09; WeChat_20241116174431 项目简介 在数字化校园建设的大背景下&#xff0c;为了更好地服务于在校师生&#xff0c;我们开发了一款基于微信小程序的课表管理系统。该系统采用了现代化的前端技术和优雅的设计风格&#x…