qmk_firmware/assets/hardware_keyboard_guidelines.md.Bx5u_r8k.js

16 lines
32 KiB
JavaScript
Raw Normal View History

import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.B9AX-CPi.js";
const __pageData = JSON.parse('{"title":"QMK Keyboard Guidelines","description":"","frontmatter":{},"headers":[],"relativePath":"hardware_keyboard_guidelines.md","filePath":"hardware_keyboard_guidelines.md","lastUpdated":null}');
const _sfc_main = { name: "hardware_keyboard_guidelines.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="qmk-keyboard-guidelines" tabindex="-1">QMK Keyboard Guidelines <a class="header-anchor" href="#qmk-keyboard-guidelines" aria-label="Permalink to &quot;QMK Keyboard Guidelines&quot;"></a></h1><p>Since starting, QMK has grown by leaps and bounds thanks to people like you who contribute to creating and maintaining our community keyboards. As we&#39;ve grown we&#39;ve discovered some patterns that work well, and ask that you conform to them to make it easier for other people to benefit from your hard work.</p><h2 id="use-qmk-lint" tabindex="-1">Use QMK Lint <a class="header-anchor" href="#use-qmk-lint" aria-label="Permalink to &quot;Use QMK Lint&quot;"></a></h2><p>We have provided a tool, <code>qmk lint</code>, which will let you check over your keyboard for problems. We suggest using it frequently while working on your keyboard and keymap.</p><p>Example passing check:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>$ qmk lint -kb rominronin/katana60/rev2</span></span>\n<span class="line"><span>Ψ Lint check passed!</span></span></code></pre></div><p>Example failing check:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>$ qmk lint -kb clueboard/66/rev3</span></span>\n<span class="line"><span> Missing keyboards/clueboard/66/rev3/readme.md</span></span>\n<span class="line"><span> Lint check failed!</span></span></code></pre></div><h2 id="naming-your-keyboard-project" tabindex="-1">Naming Your Keyboard/Project <a class="header-anchor" href="#naming-your-keyboard-project" aria-label="Permalink to &quot;Naming Your Keyboard/Project&quot;"></a></h2><p>All keyboard names are in lower case, consisting only of letters, numbers, and underscore (<code>_</code>). Names may not begin with an underscore. Forward slash (<code>/</code>) is used as a sub-folder separation character.</p><p>The names <code>test</code>, <code>keyboard</code>, and <code>all</code> are reserved for make commands and may not be used as a keyboard or subfolder name.</p><p>Valid Examples:</p><ul><li><code>412_64</code></li><li><code>chimera_ortho</code></li><li><code>clueboard/66/rev3</code></li><li><code>planck</code></li><li><code>v60_type_r</code></li></ul><h2 id="sub-folders" tabindex="-1">Sub-folders <a class="header-anchor" href="#sub-folders" aria-label="Permalink to &quot;Sub-folders&quot;"></a></h2><p>QMK uses sub-folders both for organization and to share code between revisions of the same keyboard. You can nest folders up to 4 levels deep:</p><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span>qmk_firmware/keyboards/top_folder/sub_1/sub_2/sub_3/sub_4</span></span></code></pre></div><p>If a sub-folder has a <code>rules.mk</code> file it will be considered a compilable keyboard. It will be available in QMK Configurator and tested with <code>make all</code>. If you are using a folder to organize several keyboards from the same maker you should not have a <code>rules.mk</code> file.</p><p>Example:</p><p>Clueboard uses sub-folders for both purposes, organization and keyboard revisions.</p><ul><li><a href="https://github.com/qmk/qmk_firmware/tree/master" target="_blank" rel="noreferrer"><code>qmk_firmware</code></a><ul><li><a href="https://github.com/qmk/qmk_firmware/tree/master/keyboards" target="_blank" rel="noreferrer"><code>keyboards</code></a><ul><li><a href="https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard" target="_blank" rel="noreferrer"><code>clueboard</code></a> This is the organization folder, there&#39;s no <code>rules.mk</code> file <ul><li><a href="https://github.
const _hoisted_79 = [
_hoisted_1
];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", null, _hoisted_79);
}
const hardware_keyboard_guidelines = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
__pageData,
hardware_keyboard_guidelines as default
};