Merge pull request #529 from CommandLineDesign/CMD60-newKeymap
Added CMD60 keymap
This commit is contained in:
		
						commit
						26546f995f
					
				
					 6 changed files with 364 additions and 0 deletions
				
			
		
							
								
								
									
										8
									
								
								keyboards/handwired/CMD60/CMD60.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								keyboards/handwired/CMD60/CMD60.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					#include "CMD60.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void matrix_init_kb(void) {
 | 
				
			||||||
 | 
						// put your keyboard start-up code here
 | 
				
			||||||
 | 
						// runs once when the firmware starts up
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						matrix_init_user();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										20
									
								
								keyboards/handwired/CMD60/CMD60.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								keyboards/handwired/CMD60/CMD60.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					#ifndef CMD60_H
 | 
				
			||||||
 | 
					#define CMD60_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEYMAP( \
 | 
				
			||||||
 | 
					    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
 | 
				
			||||||
 | 
					    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
 | 
				
			||||||
 | 
					    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
 | 
				
			||||||
 | 
					    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
 | 
				
			||||||
 | 
					    K40, K41, K42,           K45,                     K4A, K4B, K4C, K4D  \
 | 
				
			||||||
 | 
					    ) { \
 | 
				
			||||||
 | 
					  {  K00,  K01,  K02,  K03,    K04,    K05,  K06,    K07,    K08,    K09,  K0A,  K0B,  K0C,  K0D  },  \
 | 
				
			||||||
 | 
					  {  K10,  K11,  K12,  K13,    K14,    K15,  K16,    K17,    K18,    K19,  K1A,  K1B,  K1C,  K1D  },  \
 | 
				
			||||||
 | 
					  {  K20,  K21,  K22,  K23,    K24,    K25,  K26,    K27,    K28,    K29,  K2A,  K2B,  K2C,  K2D  },  \
 | 
				
			||||||
 | 
					  {  K30,  K31,  K32,  K33,    K34,    K35,  K36,    K37,    K38,    K39,  K3A,  K3B,  K3C,  K3D  },  \
 | 
				
			||||||
 | 
					  {  K40,  K41,  K42,  KC_NO,  KC_NO,  K45,  KC_NO,  KC_NO,  KC_NO,  KC_NO,K4A,  K4B,  K4C,  K4D  }   \
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										73
									
								
								keyboards/handwired/CMD60/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								keyboards/handwired/CMD60/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,73 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# MCU name
 | 
				
			||||||
 | 
					MCU = atmega32u4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Processor frequency.
 | 
				
			||||||
 | 
					#     This will define a symbol, F_CPU, in all source code files equal to the
 | 
				
			||||||
 | 
					#     processor frequency in Hz. You can then use this symbol in your source code to
 | 
				
			||||||
 | 
					#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done
 | 
				
			||||||
 | 
					#     automatically to create a 32-bit value in your source code.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     This will be an integer division of F_USB below, as it is sourced by
 | 
				
			||||||
 | 
					#     F_USB after it has run through any CPU prescalers. Note that this value
 | 
				
			||||||
 | 
					#     does not *change* the processor frequency - it should merely be updated to
 | 
				
			||||||
 | 
					#     reflect the processor speed set externally so that the code can use accurate
 | 
				
			||||||
 | 
					#     software delays.
 | 
				
			||||||
 | 
					F_CPU = 16000000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# LUFA specific
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Target architecture (see library "Board Types" documentation).
 | 
				
			||||||
 | 
					ARCH = AVR8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Input clock frequency.
 | 
				
			||||||
 | 
					#     This will define a symbol, F_USB, in all source code files equal to the
 | 
				
			||||||
 | 
					#     input clock frequency (before any prescaling is performed) in Hz. This value may
 | 
				
			||||||
 | 
					#     differ from F_CPU if prescaling is used on the latter, and is required as the
 | 
				
			||||||
 | 
					#     raw input clock is fed directly to the PLL sections of the AVR for high speed
 | 
				
			||||||
 | 
					#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
 | 
				
			||||||
 | 
					#     at the end, this will be done automatically to create a 32-bit value in your
 | 
				
			||||||
 | 
					#     source code.
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					#     If no clock division is performed on the input clock inside the AVR (via the
 | 
				
			||||||
 | 
					#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
 | 
				
			||||||
 | 
					F_USB = $(F_CPU)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Interrupt driven control endpoint task(+60)
 | 
				
			||||||
 | 
					OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Boot Section Size in *bytes*
 | 
				
			||||||
 | 
					#   Teensy halfKay   512
 | 
				
			||||||
 | 
					#   Teensy++ halfKay 1024
 | 
				
			||||||
 | 
					#   Atmel DFU loader 4096
 | 
				
			||||||
 | 
					#   LUFA bootloader  4096
 | 
				
			||||||
 | 
					#   USBaspLoader     2048
 | 
				
			||||||
 | 
					OPT_DEFS += -DBOOTLOADER_SIZE=512
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build Options
 | 
				
			||||||
 | 
					#   change yes to no to disable
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					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 ?= yes        # Console for debug(+400)
 | 
				
			||||||
 | 
					COMMAND_ENABLE ?= yes        # Commands for debug and configuration
 | 
				
			||||||
 | 
					# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
				
			||||||
 | 
					SLEEP_LED_ENABLE ?= no       # Breathing sleep LED during USB suspend
 | 
				
			||||||
 | 
					# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
				
			||||||
 | 
					NKRO_ENABLE ?= no            # USB Nkey Rollover
 | 
				
			||||||
 | 
					BACKLIGHT_ENABLE ?= no       # Enable keyboard backlight functionality on B7 by default
 | 
				
			||||||
 | 
					MIDI_ENABLE ?= no            # MIDI controls
 | 
				
			||||||
 | 
					UNICODE_ENABLE ?= no         # Unicode
 | 
				
			||||||
 | 
					BLUETOOTH_ENABLE ?= no       # Enable Bluetooth with the Adafruit EZ-Key HID
 | 
				
			||||||
 | 
					AUDIO_ENABLE ?= no           # Audio output on port C6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifndef QUANTUM_DIR
 | 
				
			||||||
 | 
						include ../../../Makefile
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										35
									
								
								keyboards/handwired/CMD60/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/handwired/CMD60/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,35 @@
 | 
				
			||||||
 | 
					CMD60 keyboard firmware
 | 
				
			||||||
 | 
					======================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					##CMD60
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This layout has been designed to optimize use of the left-hand, and it focussed specifically on programmers who work
 | 
				
			||||||
 | 
					with text editors like SublimeText and Atom. It utilizes the power of Space_fn, and features a caps lock swap for Fn2
 | 
				
			||||||
 | 
					and enter key on tap. These features allow you to keep your right hand on the mouse more and should enable you to
 | 
				
			||||||
 | 
					achieve a higher level of productivity if you take the time to learn its function layers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Quantum MK Firmware
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Building
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Download or clone the whole firmware and navigate to the keyboards/handwired/CMD60 folder.
 | 
				
			||||||
 | 
					Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use
 | 
				
			||||||
 | 
					the Teensy Loader to program your .hex file.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Depending on which keymap you would like to use, you will have to compile slightly differently.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To build with the default keymap, simply run `make`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Other Keymaps
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					$ make keymap=[default|jack|<name>]
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
 | 
				
			||||||
							
								
								
									
										162
									
								
								keyboards/handwired/CMD60/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								keyboards/handwired/CMD60/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,162 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					Copyright 2012 Jun Wako <wakojun@gmail.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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 CONFIG_H
 | 
				
			||||||
 | 
					#define CONFIG_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "config_common.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* USB Device descriptor parameter */
 | 
				
			||||||
 | 
					#define VENDOR_ID       0xFEED
 | 
				
			||||||
 | 
					#define PRODUCT_ID      0x6060
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    cmd
 | 
				
			||||||
 | 
					#define PRODUCT         CMD60
 | 
				
			||||||
 | 
					#define DESCRIPTION     Advanced Programming Keeb Layout
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 5
 | 
				
			||||||
 | 
					#define MATRIX_COLS 14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Keyboard Matrix Assignments
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Change this to how you wired your keyboard
 | 
				
			||||||
 | 
					 * COLS: AVR pins used for columns, left to right
 | 
				
			||||||
 | 
					 * ROWS: AVR pins used for rows, top to bottom
 | 
				
			||||||
 | 
					 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
 | 
				
			||||||
 | 
					 *                  ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					#define MATRIX_ROW_PINS { F0, F4, F5, F6, F7 }
 | 
				
			||||||
 | 
					#define MATRIX_COL_PINS { B0, B1, B2, B3, B7, D0, D1, D2, D3, C6, D7, B4, B5, B6 }
 | 
				
			||||||
 | 
					#define UNUSED_PINS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* COL2ROW or ROW2COL */
 | 
				
			||||||
 | 
					#define DIODE_DIRECTION COL2ROW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// #define BACKLIGHT_PIN B7
 | 
				
			||||||
 | 
					// #define BACKLIGHT_BREATHING
 | 
				
			||||||
 | 
					// #define BACKLIGHT_LEVELS 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
 | 
				
			||||||
 | 
					#define DEBOUNCING_DELAY 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* define if matrix has ghost (lacks anti-ghosting diodes) */
 | 
				
			||||||
 | 
					//#define MATRIX_HAS_GHOST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* number of backlight levels */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
 | 
				
			||||||
 | 
					#define LOCKING_SUPPORT_ENABLE
 | 
				
			||||||
 | 
					/* Locking resynchronize hack */
 | 
				
			||||||
 | 
					#define LOCKING_RESYNC_ENABLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Force NKRO
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
 | 
				
			||||||
 | 
					 * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
 | 
				
			||||||
 | 
					 * makefile for this to work.)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
 | 
				
			||||||
 | 
					 * until the next keyboard reset.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
 | 
				
			||||||
 | 
					 * fully operational during normal computer usage.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
 | 
				
			||||||
 | 
					 * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
 | 
				
			||||||
 | 
					 * bootmagic, NKRO mode will always be enabled until it is toggled again during a
 | 
				
			||||||
 | 
					 * power-up.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					//#define FORCE_NKRO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Magic Key Options
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Magic keys are hotkey commands that allow control over firmware functions of
 | 
				
			||||||
 | 
					 * the keyboard. They are best used in combination with the HID Listen program,
 | 
				
			||||||
 | 
					 * found here: https://www.pjrc.com/teensy/hid_listen.html
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The options below allow the magic key functionality to be changed. This is
 | 
				
			||||||
 | 
					 * useful if your keyboard/keypad is missing keys and you want magic key support.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key combination for magic key command */
 | 
				
			||||||
 | 
					#define IS_COMMAND() ( \
 | 
				
			||||||
 | 
					    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* control how magic key switches layers */
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS  true
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS  true
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* override magic key keymap */
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_HELP1          H
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_HELP2          SLASH
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_DEBUG          D
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_DEBUG_MATRIX   X
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_DEBUG_KBD      K
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_DEBUG_MOUSE    M
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_VERSION        V
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_STATUS         S
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_CONSOLE        C
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER0_ALT1    ESC
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER0_ALT2    GRAVE
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER0         0
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER1         1
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER2         2
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER3         3
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER4         4
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER5         5
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER6         6
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER7         7
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER8         8
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LAYER9         9
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_BOOTLOADER     PAUSE
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_LOCK           CAPS
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_EEPROM         E
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_NKRO           N
 | 
				
			||||||
 | 
					//#define MAGIC_KEY_SLEEP_LED      Z
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Feature disable options
 | 
				
			||||||
 | 
					 *  These options are also useful to firmware size reduction.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* disable debug print */
 | 
				
			||||||
 | 
					//#define NO_DEBUG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* disable print */
 | 
				
			||||||
 | 
					//#define NO_PRINT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* disable action features */
 | 
				
			||||||
 | 
					//#define NO_ACTION_LAYER
 | 
				
			||||||
 | 
					//#define NO_ACTION_TAPPING
 | 
				
			||||||
 | 
					//#define NO_ACTION_ONESHOT
 | 
				
			||||||
 | 
					//#define NO_ACTION_MACRO
 | 
				
			||||||
 | 
					//#define NO_ACTION_FUNCTION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										66
									
								
								keyboards/handwired/CMD60/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								keyboards/handwired/CMD60/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,66 @@
 | 
				
			||||||
 | 
					#include "CMD60.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					  [0] = KEYMAP( /* CMD60 - QWERTY */
 | 
				
			||||||
 | 
					      KC_ESC,   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_BSPC,  \
 | 
				
			||||||
 | 
					      KC_TAB,   KC_Q,     KC_W,     KC_E,    KC_R,     KC_T,     KC_Y,     KC_U,    KC_I,  KC_O,     KC_P,     KC_LBRC,  KC_RBRC,  KC_BSLS,  \
 | 
				
			||||||
 | 
					      LT(3, KC_ENT),  KC_A,     KC_S,     KC_D,    KC_F,     KC_G,     KC_H,     KC_J,    KC_K,  KC_L,     KC_SCLN,  KC_QUOT,  KC_NO,    KC_ENT,   \
 | 
				
			||||||
 | 
					      KC_LSFT,  KC_Z,    KC_X,     KC_C,    KC_V,     KC_B,     KC_N,     KC_M,    KC_COMM,  KC_DOT,  KC_SLSH,   KC_NO,  KC_NO,    KC_RSFT,  \
 | 
				
			||||||
 | 
					      KC_LCTL,  KC_LGUI,  KC_LALT,                     LT(2, KC_SPC),                                       MO(3),  MO(4),  MO(5),  TG(1) \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					  [1] = KEYMAP( /* CMD60 - GameMode */
 | 
				
			||||||
 | 
					      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,  \
 | 
				
			||||||
 | 
					      KC_CAPS,  KC_TRNS,  KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_TRNS,  KC_TRNS,     KC_TRNS,  KC_TRNS,  KC_NO,    KC_TRNS,   \
 | 
				
			||||||
 | 
					      KC_LSFT,  KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_NO,  KC_NO,    KC_RSFT,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_NO,  KC_TRNS,                     KC_SPC,                                       KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					  [2] = KEYMAP( /* CMD60 - Arrows */
 | 
				
			||||||
 | 
					      KC_GRV,   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_DEL,  \
 | 
				
			||||||
 | 
					      KC_TRNS,   KC_BSPC,     KC_UP,     KC_DEL,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_BSPC,    KC_UP,  KC_DEL,     KC_PSCR,     KC_SLCK,  KC_PAUS,  KC_TRNS,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_LEFT,  KC_DOWN,     KC_RIGHT,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_LEFT,    KC_DOWN,  KC_RIGHT,     KC_TRNS,  KC_TRNS,  KC_NO,    KC_TRNS,   \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_SPC,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_NO,  KC_NO,    KC_TRNS,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                                       KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					  [3] = KEYMAP( /* CMD60 - Functions */
 | 
				
			||||||
 | 
					      KC_GRV,   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_DEL,  \
 | 
				
			||||||
 | 
					      KC_AUDIO_MUTE,   KC_BSPC,     KC_PGUP,     KC_DEL,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_PGUP,    KC_UP,  KC_PGDN,     KC_TRNS,     KC_PAUSE,  KC_SLCK,  KC_PSCREEN,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_HOME,  KC_PGDN,     KC_END,    KC_TRNS,     KC_TRNS,     KC_HOME,     KC_LEFT,    KC_DOWN,  KC_RIGHT,     KC_TRNS,  KC_INSERT,  KC_NO,    KC_TRNS,   \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_END,     KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_NO,  KC_NO,    KC_TRNS,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                                       KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					  [4] = KEYMAP( /* CMD60 - Mouse */
 | 
				
			||||||
 | 
					      KC_SYSTEM_SLEEP,   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_MS_BTN1,  KC_MS_UP,     KC_MS_BTN2,     KC_TRNS,  KC_TRNS,  KC_TRNS,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_MS_LEFT,  KC_MS_DOWN,     KC_MS_RIGHT,  KC_TRNS,  KC_NO,    KC_TRNS,   \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_MS_WH_UP,  KC_MS_BTN3,  KC_MS_WH_DOWN,   KC_NO,  KC_NO,    KC_TRNS,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                                       KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					  [5] = KEYMAP( /* CMD60 - Media */
 | 
				
			||||||
 | 
					      KC_SYSTEM_WAKE,   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_AUDIO_VOL_DOWN,  KC_AUDIO_VOL_UP,  KC_AUDIO_MUTE,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_TRNS,  KC_TRNS,     KC_TRNS,  KC_MEDIA_PREV_TRACK,  KC_MEDIA_NEXT_TRACK,    KC_MEDIA_PLAY_PAUSE,   \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,    KC_TRNS,     KC_TRNS,    KC_TRNS,     KC_TRNS,     KC_TRNS,     KC_TRNS,    KC_TRNS,  KC_WWW_BACK,  KC_WWW_FORWARD,   KC_NO,  KC_NO,    KC_WWW_REFRESH,  \
 | 
				
			||||||
 | 
					      KC_TRNS,  KC_TRNS,  KC_TRNS,                     KC_TRNS,                                       KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS \
 | 
				
			||||||
 | 
					  ),
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM fn_actions[] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  // MACRODOWN only works in this function
 | 
				
			||||||
 | 
					      switch(id) {
 | 
				
			||||||
 | 
					        case 0:
 | 
				
			||||||
 | 
					          if (record->event.pressed) {
 | 
				
			||||||
 | 
					            register_code(KC_RSFT);
 | 
				
			||||||
 | 
					          } else {
 | 
				
			||||||
 | 
					            unregister_code(KC_RSFT);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    return MACRO_NONE;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue