mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 21:32:31 +01:00 
			
		
		
		
	AB's practical planck keymap (#435)
This commit is contained in:
		
							parent
							
								
									7e584439ee
								
							
						
					
					
						commit
						bab6a8fde5
					
				
							
								
								
									
										63
									
								
								keyboards/planck/keymaps/ab/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								keyboards/planck/keymaps/ab/Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | |||||||
|  | #----------------------------------------------------------------------------
 | ||||||
|  | # On command line:
 | ||||||
|  | #
 | ||||||
|  | # make all = Make software.
 | ||||||
|  | #
 | ||||||
|  | # make clean = Clean out built project files.
 | ||||||
|  | #
 | ||||||
|  | # make coff = Convert ELF to AVR COFF.
 | ||||||
|  | #
 | ||||||
|  | # make extcoff = Convert ELF to AVR Extended COFF.
 | ||||||
|  | #
 | ||||||
|  | # make program = Download the hex file to the device.
 | ||||||
|  | #                Please customize your programmer settings(PROGRAM_CMD)
 | ||||||
|  | #
 | ||||||
|  | # make teensy = Download the hex file to the device, using teensy_loader_cli.
 | ||||||
|  | #               (must have teensy_loader_cli installed).
 | ||||||
|  | #
 | ||||||
|  | # make dfu = Download the hex file to the device, using dfu-programmer (must
 | ||||||
|  | #            have dfu-programmer installed).
 | ||||||
|  | #
 | ||||||
|  | # make flip = Download the hex file to the device, using Atmel FLIP (must
 | ||||||
|  | #             have Atmel FLIP installed).
 | ||||||
|  | #
 | ||||||
|  | # make dfu-ee = Download the eeprom file to the device, using dfu-programmer
 | ||||||
|  | #               (must have dfu-programmer installed).
 | ||||||
|  | #
 | ||||||
|  | # make flip-ee = Download the eeprom file to the device, using Atmel FLIP
 | ||||||
|  | #                (must have Atmel FLIP installed).
 | ||||||
|  | #
 | ||||||
|  | # make debug = Start either simulavr or avarice as specified for debugging,
 | ||||||
|  | #              with avr-gdb or avr-insight as the front end for debugging.
 | ||||||
|  | #
 | ||||||
|  | # make filename.s = Just compile filename.c into the assembler code only.
 | ||||||
|  | #
 | ||||||
|  | # make filename.i = Create a preprocessed source file for use in submitting
 | ||||||
|  | #                   bug reports to the GCC project.
 | ||||||
|  | #
 | ||||||
|  | # To rebuild project do "make clean" then "make all".
 | ||||||
|  | #----------------------------------------------------------------------------
 | ||||||
|  | 
 | ||||||
|  | # Build Options
 | ||||||
|  | #   change to "no" to disable the options, or define them in the makefile.mk in 
 | ||||||
|  | #   the appropriate keymap folder that will get included automatically
 | ||||||
|  | #
 | ||||||
|  | BOOTMAGIC_ENABLE = no       # Virtual DIP switch configuration(+1000) | ||||||
|  | MOUSEKEY_ENABLE = yes       # Mouse keys(+4700) | ||||||
|  | EXTRAKEY_ENABLE = yes       # Audio control and System control(+450) | ||||||
|  | CONSOLE_ENABLE = no         # Console for debug(+400) | ||||||
|  | COMMAND_ENABLE = yes        # Commands for debug and configuration | ||||||
|  | NKRO_ENABLE = yes           # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||||||
|  | BACKLIGHT_ENABLE = yes      # Enable keyboard backlight functionality | ||||||
|  | MIDI_ENABLE = no            # MIDI controls | ||||||
|  | AUDIO_ENABLE = no           # Audio output on port C6 | ||||||
|  | UNICODE_ENABLE = no         # Unicode | ||||||
|  | BLUETOOTH_ENABLE = no       # Enable Bluetooth with the Adafruit EZ-Key HID | ||||||
|  | RGBLIGHT_ENABLE = no        # Enable WS2812 RGB underlight.  Do not enable this with audio at the same time. | ||||||
|  | 
 | ||||||
|  | # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | ||||||
|  | SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend | ||||||
|  | 
 | ||||||
|  | ifndef QUANTUM_DIR | ||||||
|  | 	include ../../../../Makefile | ||||||
|  | endif | ||||||
							
								
								
									
										18
									
								
								keyboards/planck/keymaps/ab/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								keyboards/planck/keymaps/ab/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | # Practical keymap for Planck Ortholinear 40% Mechanical Keyboard | ||||||
|  | A practical keymap that emulates standard QWERTY keyboard for Planck. Once you get comfortable with this keymap, you may fork and customize it for your own needs.  | ||||||
|  | 
 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 
 | ||||||
|  | * Online keyboard layout editor: http://goo.gl/mlLAFZ | ||||||
|  | 
 | ||||||
|  | # Programming Instructions: | ||||||
|  | Enter into programming mode and run the following command. | ||||||
|  | ``` | ||||||
|  | $ sudo KEYMAP=ab make dfu | ||||||
|  | ``` | ||||||
|  | # Notes | ||||||
|  | * Simultaneous RAISE+LOWER enters CUSTOM layer. You may add your own macros and custom keys here. | ||||||
|  | * RAISE and LOWER also acts as PgUp and PgDn when tapped. | ||||||
|  | * [CapsLock] also acts as [Ctrl] key when you press and hold. It is convenient for GNU Emacs users. | ||||||
|  | * Bracket keys are placed in the center of the keyboard for programmer's convenience. | ||||||
							
								
								
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/compiled.hex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/compiled.hex
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										101
									
								
								keyboards/planck/keymaps/ab/keyboard-layout.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								keyboards/planck/keymaps/ab/keyboard-layout.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,101 @@ | |||||||
|  | [ | ||||||
|  |   { | ||||||
|  |     "name": "AB's Practical Keymap for Planck", | ||||||
|  |     "author": "Anand Babu Periasamy" | ||||||
|  |   }, | ||||||
|  |   [ | ||||||
|  |     "1\nF1\n!\n\n\n\n\n\n\nTab", | ||||||
|  |     "2\nF2\n@\n\n\n\n\n\n\nQ", | ||||||
|  |     "3\nF3\n#\n\n\n\n\n\n\nW", | ||||||
|  |     "4\nF4\n$\n\n\n\n\n\n\nE", | ||||||
|  |     "5\nF5\n%\n\n\n\n\n\n\nR", | ||||||
|  |     "6\nF6\n^\n\n\n\n\n\n\nT", | ||||||
|  |     "7\nF7\n&\n\n\n\n\n\n\nY", | ||||||
|  |     "8\nF8\n*\n\n\n\n\n\n\nU", | ||||||
|  |     "9\nF9\n(\n\n\n\n\n\n\nI", | ||||||
|  |     "0\nF10\n)\n\n\n\n\n\n\nO", | ||||||
|  |     "-\nF11\n_\n\n\n\n\n\n\nP", | ||||||
|  |     "=\nF12\n+\n\n\n\n\n\n\n<i class=\"fa fa-chevron-circle-left\" aria-hidden=\"true\"></i>" | ||||||
|  |   ], | ||||||
|  |   [ | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "Ctrl", | ||||||
|  |     "A", | ||||||
|  |     "S", | ||||||
|  |     "D", | ||||||
|  |     { | ||||||
|  |       "a": 4 | ||||||
|  |     }, | ||||||
|  |     "(\n\n\n\n\n\n\n\n\nF", | ||||||
|  |     ")\n\n\n\n\n\n\n\n\nG", | ||||||
|  |     "{\n\n\n\n\n\n\n\n\nH", | ||||||
|  |     "}\n\n\n\n\n\n\n\n\nJ", | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "K", | ||||||
|  |     "L", | ||||||
|  |     { | ||||||
|  |       "a": 6 | ||||||
|  |     }, | ||||||
|  |     ";\n\n:", | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "Enter" | ||||||
|  |   ], | ||||||
|  |   [ | ||||||
|  |     "Shift", | ||||||
|  |     "Z", | ||||||
|  |     "X", | ||||||
|  |     "C", | ||||||
|  |     { | ||||||
|  |       "a": 4 | ||||||
|  |     }, | ||||||
|  |     "[\n`\n\n\n\n\n\n\n\nV", | ||||||
|  |     "]\n~\n\n\n\n\n\n\n\nB", | ||||||
|  |     "'\n\\\n\n\n\n\n\n\n\nN", | ||||||
|  |     "\"\n|\n\n\n\n\n\n\n\nM", | ||||||
|  |     { | ||||||
|  |       "a": 6 | ||||||
|  |     }, | ||||||
|  |     ",\n\n<", | ||||||
|  |     ".\n\n>", | ||||||
|  |     "/\n\n?", | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "Shift\n\n\n\nEnter" | ||||||
|  |   ], | ||||||
|  |   [ | ||||||
|  |     { | ||||||
|  |       "a": 4 | ||||||
|  |     }, | ||||||
|  |     "<i class='fa fa-lightbulb-o'></i>\n<i class='fa fa-download'></i>\n\n\n\n\n\n\n\nCtrl", | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "Esc", | ||||||
|  |     "<i class='fa fa-linux'></i>", | ||||||
|  |     "Alt", | ||||||
|  |     "<i class='fa fa-sort-up'></i>", | ||||||
|  |     { | ||||||
|  |       "a": 4, | ||||||
|  |       "w": 2 | ||||||
|  |     }, | ||||||
|  |     "\nPgUP\n\nPgDn\n\n\n\n\n\nSpace", | ||||||
|  |     { | ||||||
|  |       "a": 7 | ||||||
|  |     }, | ||||||
|  |     "<i class='fa fa-sort-down'></i>", | ||||||
|  |     "<i class=\"fa fa-long-arrow-left\" aria-hidden=\"true\"></i>", | ||||||
|  |     { | ||||||
|  |       "a": 4 | ||||||
|  |     }, | ||||||
|  |     "\n<i class='fa fa-volume-down'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-up\" aria-hidden=\"true\"></i>", | ||||||
|  |     "\n<i class='fa fa-volume-up'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-down\" aria-hidden=\"true\"></i>", | ||||||
|  |     "\n<i class='fa fa-volume-off'></i>\n\n\n\n\n\n\n\n<i class=\"fa fa-long-arrow-right\" aria-hidden=\"true\"></i>" | ||||||
|  |   ] | ||||||
|  | ] | ||||||
							
								
								
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/keyboard-layout.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/keyboard-layout.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 26 KiB | 
							
								
								
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/keyboard-photo.jpg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/planck/keymaps/ab/keyboard-photo.jpg
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 247 KiB | 
							
								
								
									
										122
									
								
								keyboards/planck/keymaps/ab/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								keyboards/planck/keymaps/ab/keymap.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,122 @@ | |||||||
|  | // This is the canonical layout file for the Quantum project. If you want to add another keyboard,
 | ||||||
|  | // this is the style you want to emulate.
 | ||||||
|  | 
 | ||||||
|  | #include "planck.h" | ||||||
|  | #include "action_layer.h" | ||||||
|  | #include "eeconfig.h" | ||||||
|  | #ifdef BACKLIGHT_ENABLE | ||||||
|  |   #include "backlight.h" | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | extern keymap_config_t keymap_config; | ||||||
|  | 
 | ||||||
|  | // Symbolic names for macro IDs.
 | ||||||
|  | #define _QWERTY  0 // QUERTY layer
 | ||||||
|  | #define _RAISE   1 // Raise layer
 | ||||||
|  | #define _LOWER   2 // Lower layer
 | ||||||
|  | #define _CUSTOM  3 // Custom layer
 | ||||||
|  | #define _BL      4 // Backlight
 | ||||||
|  | #define _MOBILE  5 // Mobile#
 | ||||||
|  | #define _CUSTOM1 6 // Custom macro 1
 | ||||||
|  | #define _CUSTOM2 7 // Custom macro 2
 | ||||||
|  | 
 | ||||||
|  | // Macro shortcuts.
 | ||||||
|  | #define RAISE   M(_RAISE) | ||||||
|  | #define LOWER   M(_LOWER) | ||||||
|  | #define CUSTOM  M(_CUSTOM) // RAISE + LOWER
 | ||||||
|  | #define BL      M(_BL) | ||||||
|  | #define MOBILE  M(_MOBILE) | ||||||
|  | #define CUSTOM1 M(_CUSTOM1) | ||||||
|  | #define CUSTOM2 M(_CUSTOM2) | ||||||
|  | 
 | ||||||
|  | // This config can be found at Keyboard layout editor site: http://goo.gl/zjXL2l
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  | [_QWERTY] = { /* QWERTY */ | ||||||
|  |     {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC}, | ||||||
|  |     {KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_ENT}, | ||||||
|  |     {KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, FUNC(3)}, | ||||||
|  |     {KC_LCTL, KC_ESC,  KC_LGUI, KC_LALT, RAISE,   KC_SPC,  KC_SPC,  LOWER,   KC_LEFT, KC_UP,   KC_DOWN, KC_RGHT} | ||||||
|  | }, | ||||||
|  | [_RAISE] = { /* RAISE */ | ||||||
|  |     {KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LPRN, KC_RPRN, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_QUOT, KC_DQT,  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||||||
|  |     {BL,      KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | ||||||
|  | }, | ||||||
|  | [_LOWER] = { /* LOWER */ | ||||||
|  |     {KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_LCBR, KC_BSLS, KC_TRNS}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_GRV,  KC_TILD, KC_BSLS, KC_PIPE, KC_LBRC, KC_LBRC, KC_TRNS, KC_TRNS}, | ||||||
|  |     {RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_PGDN, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE} | ||||||
|  | }, | ||||||
|  | [_CUSTOM] = { /* CUSTOM */ | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MOBILE,  KC_TRNS, CUSTOM1, CUSTOM2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS}, | ||||||
|  |     {KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS} | ||||||
|  | } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // Enable these functions using FUNC(n) macro. They seem to be buggy mostly.
 | ||||||
|  | const uint16_t PROGMEM fn_actions[] = { | ||||||
|  |     [0] = ACTION_LAYER_TAP_KEY(_RAISE, KC_PGUP),   // Tap for PgUp, hold for RAISE
 | ||||||
|  |     [1] = ACTION_LAYER_TAP_KEY(_LOWER, KC_PGDN),   // Tap for PgDn, hold for LOWER
 | ||||||
|  |     [2] = ACTION_MODS_TAP_KEY(MOD_LCTL, KC_CAPS),  // Tap for Caps, hold for Ctrl
 | ||||||
|  |     [3] = ACTION_MODS_TAP_KEY(MOD_RSFT, KC_ENT),   // Tap for Enter, hold for Shift
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | // Set a layer persistantly.
 | ||||||
|  | void persistant_default_layer_set(uint16_t default_layer) { | ||||||
|  |   eeconfig_update_default_layer(default_layer); | ||||||
|  |   default_layer_set(default_layer); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Macro actions for each corresponding ID.
 | ||||||
|  | const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) | ||||||
|  | { | ||||||
|  |     switch(id) { | ||||||
|  |     case _QWERTY: // Default QWERTY layer. // This case not used for now.
 | ||||||
|  | 	if (record->event.pressed) { | ||||||
|  | 	    persistant_default_layer_set(1UL<<_QWERTY); | ||||||
|  | 	} | ||||||
|  | 	break; | ||||||
|  |     case _RAISE: // Raised layer.
 | ||||||
|  | 	if (record->event.pressed) { | ||||||
|  | 	    layer_on(_RAISE); | ||||||
|  | 	    update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||||||
|  | 	} else { | ||||||
|  | 	    layer_off(_RAISE); | ||||||
|  | 	    update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||||||
|  | 	} | ||||||
|  | 	break; | ||||||
|  |     case _LOWER: // Lowered layer.
 | ||||||
|  | 	if (record->event.pressed) { | ||||||
|  | 	    layer_on(_LOWER); | ||||||
|  | 	    update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||||||
|  | 	} else { | ||||||
|  | 	    layer_off(_LOWER); | ||||||
|  | 	    update_tri_layer(_LOWER, _RAISE, _CUSTOM); | ||||||
|  | 	} | ||||||
|  | 	break; | ||||||
|  |     case _BL:// Backlight
 | ||||||
|  | 	if (record->event.pressed) { | ||||||
|  | 	    register_code(KC_RSFT); | ||||||
|  | #ifdef BACKLIGHT_ENABLE | ||||||
|  | 	    backlight_step(); | ||||||
|  | #endif | ||||||
|  | 	} else { | ||||||
|  | 	    unregister_code(KC_RSFT); | ||||||
|  | 	} | ||||||
|  | 	break; | ||||||
|  |     case _MOBILE:// Your mobile# here.
 | ||||||
|  | 	return MACRODOWN(T(1), T(2), T(3), T(MINS), | ||||||
|  | 			 T(1), T(2), T(3), T(MINS), | ||||||
|  | 			 T(1), T(2), T(3), T(4), | ||||||
|  | 			 END); | ||||||
|  |     case _CUSTOM1:// Your custom macro 1
 | ||||||
|  | 	return MACRODOWN(T(E), T(M), T(A), T(C), T(S), T(SPC), END); | ||||||
|  |     case _CUSTOM2:// Your custom macro 2
 | ||||||
|  | 	return MACRODOWN(T(L), T(S), T(SPC), T(MINS), T(L), T(ENT), END); | ||||||
|  |     }; | ||||||
|  |     return MACRO_NONE; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Anand Babu (AB) Periasamy
						Anand Babu (AB) Periasamy