]> git.donarmstrong.com Git - qmk_firmware.git/blob - docs/feature_userspace.md
convert to unix line-endings [skip ci]
[qmk_firmware.git] / docs / feature_userspace.md
1 # Userspace: sharing code between keymaps
2
3 If you use more than one keyboard with a similar keymap, you might see the benefit in being able to share code between them. Create your own folder in `users/` named the same as your keymap (ideally your github username, `<name>`) with the following structure:
4
5 * `/users/<name>/` (added to the path automatically)
6   * `readme.md`
7   * `rules.mk` (included automatically)
8   * `<name>.h` (optional)
9   * `<name>.c` (optional)
10
11 `<name>.c` will need to be added to the SRC in `rules.mk` like this:
12
13     SRC += <name>.c
14
15 Additional files may be added in the same way - it's recommended you have one named `<name>`.c/.h though.
16
17 All this only happens when you build a keymap named `<name>`, like this:
18
19     make planck:<name>
20
21 For example, 
22
23     make planck:jack
24
25 Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`.
26
27 ## Readme
28
29 Please include authorship (your name, github username, email), and optionally [a license that's GPL compatible](https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses).
30
31 ## Example
32
33 For a brief example, checkout `/users/_example/` until we have more reasonable and useful examples.