mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jack Humbert
						Jack Humbert