forked from forks/qmk_firmware
Creates a userspace for keymaps (#1559)
* create a user space * adds example * document, add readme.md * jackhumbert userspace, ergodox keymap
This commit is contained in:
parent
9bb259b660
commit
06f196c589
|
@ -183,6 +183,10 @@ else
|
||||||
# this state should never be reached
|
# this state should never be reached
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# User space stuff
|
||||||
|
USER_PATH := users/$(KEYMAP)
|
||||||
|
-include $(USER_PATH)/rules.mk
|
||||||
|
|
||||||
# Object files directory
|
# Object files directory
|
||||||
# To put object files in current directory, use a dot (.), do NOT make
|
# To put object files in current directory, use a dot (.), do NOT make
|
||||||
# this an empty or blank macro!
|
# this an empty or blank macro!
|
||||||
|
@ -204,6 +208,7 @@ SRC += $(KEYBOARD_SRC) \
|
||||||
VPATH += $(KEYMAP_PATH)
|
VPATH += $(KEYMAP_PATH)
|
||||||
VPATH += $(KEYBOARD_PATHS)
|
VPATH += $(KEYBOARD_PATHS)
|
||||||
VPATH += $(COMMON_VPATH)
|
VPATH += $(COMMON_VPATH)
|
||||||
|
VPATH += $(USER_PATH)
|
||||||
|
|
||||||
include common_features.mk
|
include common_features.mk
|
||||||
include $(TMK_PATH)/protocol.mk
|
include $(TMK_PATH)/protocol.mk
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
* [Features](features.md)
|
* [Features](features.md)
|
||||||
* [Layouts](feature_layouts.md)
|
* [Layouts](feature_layouts.md)
|
||||||
* [Common Shortcuts](feature_common_shortcuts.md)
|
* [Common Shortcuts](feature_common_shortcuts.md)
|
||||||
|
* [Userspace](feature_userspace.md)
|
||||||
* [Backlight](feature_backlight.md)
|
* [Backlight](feature_backlight.md)
|
||||||
* [Bootmagic](feature_bootmagic.md)
|
* [Bootmagic](feature_bootmagic.md)
|
||||||
* [Dynamic Macros](dynamic_macros.md)
|
* [Dynamic Macros](dynamic_macros.md)
|
||||||
|
|
33
docs/feature_userspace.md
Normal file
33
docs/feature_userspace.md
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
# Userspace: sharing code between keymaps
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
* `/users/<name>/` (added to the path automatically)
|
||||||
|
* `readme.md`
|
||||||
|
* `rules.mk` (included automatically)
|
||||||
|
* `<name>.h` (optional)
|
||||||
|
* `<name>.c` (optional)
|
||||||
|
|
||||||
|
`<name>.c` will need to be added to the SRC in `rules.mk` like this:
|
||||||
|
|
||||||
|
SRC += <name>.c
|
||||||
|
|
||||||
|
Additional files may be added in the same way - it's recommended you have one named `<name>`.c/.h though.
|
||||||
|
|
||||||
|
All this only happens when you build a keymap named `<name>`, like this:
|
||||||
|
|
||||||
|
make planck:<name>
|
||||||
|
|
||||||
|
For example,
|
||||||
|
|
||||||
|
make planck:jack
|
||||||
|
|
||||||
|
Will include the `/users/jack/` folder in the path, along with `/users/jack/rules.mk`.
|
||||||
|
|
||||||
|
## Readme
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
For a brief example, checkout `/users/_example/` until we have more reasonable and useful examples.
|
5
users/_example/_example.c
Normal file
5
users/_example/_example.c
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#include "_example.h"
|
||||||
|
|
||||||
|
void my_custom_function(void) {
|
||||||
|
|
||||||
|
}
|
8
users/_example/_example.h
Normal file
8
users/_example/_example.h
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#ifndef USERSPACE
|
||||||
|
#define USERSPACE
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
void my_custom_function(void);
|
||||||
|
|
||||||
|
#endif
|
14
users/_example/readme.md
Normal file
14
users/_example/readme.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Copyright <year> <name> <email> @<github_username>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
1
users/_example/rules.mk
Normal file
1
users/_example/rules.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
SRC += _example.c
|
1
users/jackhumbert/jackhumbert.c
Normal file
1
users/jackhumbert/jackhumbert.c
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#include "jackhumbert.h"
|
6
users/jackhumbert/jackhumbert.h
Normal file
6
users/jackhumbert/jackhumbert.h
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#ifndef USERSPACE
|
||||||
|
#define USERSPACE
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#endif
|
14
users/jackhumbert/readme.md
Normal file
14
users/jackhumbert/readme.md
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
Copyright 2017 Jack Humbert <jack.humb@gmail.com> @jackhumbert
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
1
users/jackhumbert/rules.mk
Normal file
1
users/jackhumbert/rules.mk
Normal file
|
@ -0,0 +1 @@
|
||||||
|
SRC += jackhumbert.c
|
3
users/readme.md
Normal file
3
users/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# User space
|
||||||
|
|
||||||
|
This is a place for users to put code that they might use between keyboards. If you build the keymap `mine`, `/users/mine/rules.mk` will be included in your build, and `/users/mine/` will be in your path - keep these things in mind when naming your files and referencing them from other places.
|
Loading…
Reference in a new issue