qmk_firmware/assets/newbs_external_userspace.md.BDzWEjtF.js

16 lines
13 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":"External QMK Userspace","description":"","frontmatter":{},"headers":[],"relativePath":"newbs_external_userspace.md","filePath":"newbs_external_userspace.md","lastUpdated":null}');
const _sfc_main = { name: "newbs_external_userspace.md" };
const _hoisted_1 = /* @__PURE__ */ createStaticVNode('<h1 id="external-qmk-userspace" tabindex="-1">External QMK Userspace <a class="header-anchor" href="#external-qmk-userspace" aria-label="Permalink to &quot;External QMK Userspace&quot;"></a></h1><p>QMK Firmware now officially supports storing user keymaps outside of the normal QMK Firmware repository, allowing users to maintain their own keymaps without having to fork, modify, and maintain a copy of QMK Firmware themselves.</p><p>External Userspace mirrors the structure of the main QMK Firmware repository, but only contains the keymaps that you wish to build. You can still use <code>keyboards/&lt;my keyboard&gt;/keymaps/&lt;my keymap&gt;</code> to store your keymaps, or you can use the <code>layouts/&lt;my layout&gt;/&lt;my keymap&gt;</code> system as before -- they&#39;re just stored external to QMK Firmware.</p><p>The build system will still honor the use of <code>users/&lt;my keymap&gt;</code> if you rely on the traditional QMK Firmware <a href="./feature_userspace">userspace feature</a> -- it&#39;s now supported externally too, using the same location inside the External Userspace directory.</p><p>Additionally, there is first-class support for using GitHub Actions to build your keymaps, allowing you to automatically compile your keymaps whenever you push changes to your External Userspace repository.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>External Userspace is new functionality and may have issues. Tighter integration with the <code>qmk</code> command will occur over time.</p></div><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>Historical keymap.json and GitHub-based firmware build instructions can be found <a href="./newbs_building_firmware_workflow">here</a>. This document supersedes those instructions, but they should still function correctly.</p></div><h2 id="setting-up-qmk-locally" tabindex="-1">Setting up QMK Locally <a class="header-anchor" href="#setting-up-qmk-locally" aria-label="Permalink to &quot;Setting up QMK Locally&quot;"></a></h2><p>If you wish to build on your local machine, you will need to set up QMK locally. This is a one-time process, and is documented in the <a href="./newbs">newbs setup guide</a>.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If you wish to use any QMK CLI commands related to manipulating External Userspace definitions, you will currently need a copy of QMK Firmware as well.</p></div><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>Building locally has a much shorter turnaround time than waiting for GitHub Actions to complete.</p></div><h2 id="external-userspace-repository-setup-forked-on-github" tabindex="-1">External Userspace Repository Setup (forked on GitHub) <a class="header-anchor" href="#external-userspace-repository-setup-forked-on-github" aria-label="Permalink to &quot;External Userspace Repository Setup (forked on GitHub)&quot;"></a></h2><p>A basic skeleton External Userspace repository can be found <a href="https://github.com/qmk/qmk_userspace" target="_blank" rel="noreferrer">here</a>. If you wish to keep your keymaps on GitHub (strongly recommended!), you can fork the repository and use it as a base:</p><p><img src="https://i.imgur.com/hcegguh.png" alt="Userspace Fork"></p><p>Going ahead with your fork will copy it to your account, at which point you can clone it to your local machine and begin adding your keymaps:</p><p><img src="https://i.imgur.com/CWYmsk8.png" alt="Userspace Clone"></p><div class="language-sh vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki shiki-themes github-light github-dark vp-code"><code><span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">cd</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> $HOME</span></span>\n<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9E
const _hoisted_41 = [
_hoisted_1
];
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return openBlock(), createElementBlock("div", null, _hoisted_41);
}
const newbs_external_userspace = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export {
__pageData,
newbs_external_userspace as default
};