|  |  |  | /* Copyright 2015-2016 Jack Humbert
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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/>.
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #ifndef KEYMAP_COLEMAK_H
 | 
					
						
							|  |  |  | #define KEYMAP_COLEMAK_H
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "keymap.h"
 | 
					
						
							|  |  |  | // For software implementation of colemak
 | 
					
						
							|  |  |  | #define CM_Q    KC_Q
 | 
					
						
							|  |  |  | #define CM_W    KC_W
 | 
					
						
							|  |  |  | #define CM_F    KC_E
 | 
					
						
							|  |  |  | #define CM_P    KC_R
 | 
					
						
							|  |  |  | #define CM_G    KC_T
 | 
					
						
							|  |  |  | #define CM_J    KC_Y
 | 
					
						
							|  |  |  | #define CM_L    KC_U
 | 
					
						
							|  |  |  | #define CM_U    KC_I
 | 
					
						
							|  |  |  | #define CM_Y    KC_O
 | 
					
						
							|  |  |  | #define CM_SCLN KC_P
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CM_A    KC_A
 | 
					
						
							|  |  |  | #define CM_R    KC_S
 | 
					
						
							|  |  |  | #define CM_S    KC_D
 | 
					
						
							|  |  |  | #define CM_T    KC_F
 | 
					
						
							|  |  |  | #define CM_D    KC_G
 | 
					
						
							|  |  |  | #define CM_H    KC_H
 | 
					
						
							|  |  |  | #define CM_N    KC_J
 | 
					
						
							|  |  |  | #define CM_E    KC_K
 | 
					
						
							|  |  |  | #define CM_I    KC_L
 | 
					
						
							|  |  |  | #define CM_O    KC_SCLN
 | 
					
						
							|  |  |  | #define CM_COLN LSFT(CM_SCLN)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CM_Z    KC_Z
 | 
					
						
							|  |  |  | #define CM_X    KC_X
 | 
					
						
							|  |  |  | #define CM_C    KC_C
 | 
					
						
							|  |  |  | #define CM_V    KC_V
 | 
					
						
							|  |  |  | #define CM_B    KC_B
 | 
					
						
							|  |  |  | #define CM_K    KC_N
 | 
					
						
							|  |  |  | #define CM_M    KC_M
 | 
					
						
							|  |  |  | #define CM_COMM KC_COMM
 | 
					
						
							|  |  |  | #define CM_DOT  KC_DOT
 | 
					
						
							|  |  |  | #define CM_SLSH KC_SLSH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Make it easy to support these in macros
 | 
					
						
							|  |  |  | // TODO: change macro implementation so these aren't needed
 | 
					
						
							|  |  |  | #define KC_CM_Q    CM_Q
 | 
					
						
							|  |  |  | #define KC_CM_W    CM_W
 | 
					
						
							|  |  |  | #define KC_CM_F    CM_F
 | 
					
						
							|  |  |  | #define KC_CM_P    CM_P
 | 
					
						
							|  |  |  | #define KC_CM_G    CM_G
 | 
					
						
							|  |  |  | #define KC_CM_J    CM_J
 | 
					
						
							|  |  |  | #define KC_CM_L    CM_L
 | 
					
						
							|  |  |  | #define KC_CM_U    CM_U
 | 
					
						
							|  |  |  | #define KC_CM_Y    CM_Y
 | 
					
						
							|  |  |  | #define KC_CM_SCLN CM_SCLN
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define KC_CM_A    CM_A
 | 
					
						
							|  |  |  | #define KC_CM_R    CM_R
 | 
					
						
							|  |  |  | #define KC_CM_S    CM_S
 | 
					
						
							|  |  |  | #define KC_CM_T    CM_T
 | 
					
						
							|  |  |  | #define KC_CM_D    CM_D
 | 
					
						
							|  |  |  | #define KC_CM_H    CM_H
 | 
					
						
							|  |  |  | #define KC_CM_N    CM_N
 | 
					
						
							|  |  |  | #define KC_CM_E    CM_E
 | 
					
						
							|  |  |  | #define KC_CM_I    CM_I
 | 
					
						
							|  |  |  | #define KC_CM_O    CM_O
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define KC_CM_Z    CM_Z
 | 
					
						
							|  |  |  | #define KC_CM_X    CM_X
 | 
					
						
							|  |  |  | #define KC_CM_C    CM_C
 | 
					
						
							|  |  |  | #define KC_CM_V    CM_V
 | 
					
						
							|  |  |  | #define KC_CM_B    CM_B
 | 
					
						
							|  |  |  | #define KC_CM_K    CM_K
 | 
					
						
							|  |  |  | #define KC_CM_M    CM_M
 | 
					
						
							|  |  |  | #define KC_CM_COMM CM_COMM
 | 
					
						
							|  |  |  | #define KC_CM_DOT  CM_DOT
 | 
					
						
							|  |  |  | #define KC_CM_SLSH CM_SLSH
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif
 |