You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					87 lines
				
				3.0 KiB
			
		
		
			
		
	
	
					87 lines
				
				3.0 KiB
			|   
											7 years ago
										 | # Ishtob's userspace
 | ||
|  | 
 | ||
|  | under developement | ||
|  | 
 | ||
|  | # Secret Macros
 | ||
|  | 
 | ||
|  | This section is a modified version of what @drashna did in his userspace: https://github.com/qmk/qmk_firmware/tree/master/users/drashna#secret-macros | ||
|  | 
 | ||
|  | `macros_private.c` will be used if it exsists in the userspace folder during compiling. | ||
|  | 
 | ||
|  | To get started, put the following in rules.mk. this will have the compiler include the macros_private.c file if it exsists. | ||
|  | ``` | ||
|  | SRC += ishtob.c | ||
|  | ifneq ($(wildcard $(USER_PATH)/macros_private.c),"") | ||
|  |   SRC += macros_private.c | ||
|  | endif | ||
|  | ifeq ($(strip $(NO_SECRETS)), yes) | ||
|  |     OPT_DEFS += -DNO_SECRETS | ||
|  | endif | ||
|  | ``` | ||
|  | 
 | ||
|  | Remember that all macro keycode has to be present in the header file (ishtob.h) to prevent error during compile. | ||
|  | 
 | ||
|  | Next, you setup macros_private.c, ensure the keycodes are defined in ishtob.h (or your keymap.h). | ||
|  | Here is an example of my macros with the sensitive login information removed: | ||
|  | ``` | ||
|  | #include "ishtob.h" //replace this with your userspace or keymap
 | ||
|  | #include "quantum.h"
 | ||
|  | 
 | ||
|  | #pragma message "secret macros included" //debug line to let me know this file is included in the compile
 | ||
|  | 
 | ||
|  | //this str is for the monthly password rotation per my workplace's security policy | ||
|  | char my_str[5] = "stuff"; | ||
|  | 
 | ||
|  | bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { | ||
|  |   if (record->event.pressed) { | ||
|  |     switch(keycode) { | ||
|  |       //my login macros | ||
|  |       case P_CITRIX: | ||
|  |           SEND_STRING("username"SS_TAP(X_TAB)"something"); | ||
|  |           send_string(my_str); | ||
|  |           return false; | ||
|  |       case P_MPASS: | ||
|  |           SEND_STRING("something"); | ||
|  |           send_string(my_str); | ||
|  |           return false; | ||
|  |       case P_META: | ||
|  |           SEND_STRING("metausername"); | ||
|  |           return false; | ||
|  |       //my work macros for the meta application | ||
|  |       case O_RTQ6H: | ||
|  |           SEND_STRING(SS_TAP(X_TAB)"0300"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"0900"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"1500"SS_TAP(X_TAB)SS_TAP(X_DOWN)SS_TAP(X_TAB)"2100"SS_TAP(X_TAB)SS_LALT("o")); | ||
|  |           return false; | ||
|  |       case O_AUTODC: | ||
|  |           SEND_STRING(SS_LALT("v")SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)"T"SS_TAP(X_TAB)"N"SS_LALT("s")); | ||
|  |           return false; | ||
|  |       case O_DAYRN: | ||
|  |           SEND_STRING(SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)SS_TAP(X_TAB)"1"SS_LALT("s")); | ||
|  |           return false; | ||
|  |       //Ops macros | ||
|  |       case M_EMAIL: | ||
|  |           SEND_STRING("privatemail@email.com"); | ||
|  |           return false;        | ||
|  |       case M_EMAIL2: | ||
|  |           SEND_STRING("workemail@work.com"); | ||
|  |           return false; | ||
|  |      } | ||
|  |    } | ||
|  |   return true; | ||
|  | }  | ||
|  | ``` | ||
|  | 
 | ||
|  | 
 | ||
|  | Finally, add the following to .git/info/exclude to prevent private macros from being committed to git. | ||
|  | ``` | ||
|  | # git ls-files --others --exclude-from=.git/info/exclude
 | ||
|  | # Lines that start with '#' are comments.
 | ||
|  | # For a project mostly in C, the following would be a good set of
 | ||
|  | # exclude patterns (uncomment them if you want to use them):
 | ||
|  | # *.[oa]
 | ||
|  | # *~
 | ||
|  | /users/ishtob/macros_private.c | ||
|  | ``` | ||
|  | 
 | ||
|  | # Special mentions
 | ||
|  | 
 | ||
|  | special thanks to @drashna for helping me through quite a bit of these codes. |