mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 13:22: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