Merge branch 'master' of github.com:jackhumbert/qmk_firmware
This commit is contained in:
		
						commit
						6725262516
					
				
					 10 changed files with 367 additions and 3 deletions
				
			
		
							
								
								
									
										3
									
								
								keyboards/tada68/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/tada68/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | ||||||
|  | ifndef MAKEFILE_INCLUDED | ||||||
|  | 	include ../../Makefile | ||||||
|  | endif | ||||||
							
								
								
									
										97
									
								
								keyboards/tada68/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								keyboards/tada68/config.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | ||||||
|  | /*
 | ||||||
|  | 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      0x0003 | ||||||
|  | #define MANUFACTURER    TADA | ||||||
|  | #define PRODUCT         TADA68 | ||||||
|  | #define DESCRIPTION     QMK keyboard firmware for TADA68 with WS2812 support | ||||||
|  | 
 | ||||||
|  | /* key matrix size */ | ||||||
|  | #define MATRIX_ROWS 5 | ||||||
|  | #define MATRIX_COLS 15 | ||||||
|  | 
 | ||||||
|  | // ROWS: Top to bottom, COLS: Left to right
 | ||||||
|  | 
 | ||||||
|  | #define MATRIX_ROW_PINS {D0,D1,F6,F7,D5} | ||||||
|  | #define MATRIX_COL_PINS {F0,F1,E6,C7,C6,B7,D4,B1,B0,B5,B4,D7,D6,B3,F4} | ||||||
|  | #define UNUSED_PINS | ||||||
|  | 
 | ||||||
|  | #define BACKLIGHT_PIN B6 | ||||||
|  | 
 | ||||||
|  | /* COL2ROW or ROW2COL */ | ||||||
|  | #define DIODE_DIRECTION COL2ROW | ||||||
|  | 
 | ||||||
|  | /* define if matrix has ghost */ | ||||||
|  | //#define MATRIX_HAS_GHOST
 | ||||||
|  | 
 | ||||||
|  | /* Set 0 if debouncing isn't needed */ | ||||||
|  | #define DEBOUNCING_DELAY 5 | ||||||
|  | 
 | ||||||
|  | /* 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 | ||||||
|  | 
 | ||||||
|  | /* key combination for command */ | ||||||
|  | #define IS_COMMAND() ( \ | ||||||
|  |     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | /* Backlight configuration
 | ||||||
|  |  */ | ||||||
|  | #define BACKLIGHT_LEVELS 4 | ||||||
|  | 
 | ||||||
|  | /* Underlight configuration
 | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | /*#define RGB_DI_PIN E2
 | ||||||
|  | #define RGBLIGHT_TIMER | ||||||
|  | #define RGBLED_NUM 2     // Number of LEDs
 | ||||||
|  | #define RGBLIGHT_HUE_STEP 10 | ||||||
|  | #define RGBLIGHT_SAT_STEP 17 | ||||||
|  | #define RGBLIGHT_VAL_STEP 17*/ | ||||||
|  | //Disabled while I figure out a suitable pin for RGB support.
 | ||||||
|  | //I've tried F5, D2, D3, and E2 but it's possible the end of my
 | ||||||
|  | //strand is bad. New LEDs on order.
 | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * 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 | ||||||
							
								
								
									
										21
									
								
								keyboards/tada68/keymaps/default/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								keyboards/tada68/keymaps/default/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | ||||||
|  | # Build Options
 | ||||||
|  | #   change to "no" to disable the options, or define them in the Makefile 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. | ||||||
|  | SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend | ||||||
|  | 
 | ||||||
|  | ifndef QUANTUM_DIR | ||||||
|  | 	include ../../../../Makefile | ||||||
|  | endif | ||||||
							
								
								
									
										98
									
								
								keyboards/tada68/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										98
									
								
								keyboards/tada68/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,98 @@ | ||||||
|  | #include "tada68.h" | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // Used for SHIFT_ESC
 | ||||||
|  | #define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | ||||||
|  | 
 | ||||||
|  | // Each layer gets a name for readability, which is then used in the keymap matrix below.
 | ||||||
|  | // The underscores don't mean anything - you can have a layer called STUFF or any other name.
 | ||||||
|  | // Layer names don't all need to be of the same length, obviously, and you can also skip them
 | ||||||
|  | // entirely and just use numbers.
 | ||||||
|  | #define _BL 0 | ||||||
|  | #define _FL 1 | ||||||
|  | 
 | ||||||
|  | #define _______ KC_TRNS | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||||
|  |   /* Keymap _BL: (Base Layer) Default Layer
 | ||||||
|  |    * ,----------------------------------------------------------------. | ||||||
|  |    * |Esc | 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Backsp |~ ` | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  |Del | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return |PgUp| | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up|PgDn| | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |Ctrl|Win |Alt |        Space          |Alt| FN|Ctrl|Lef|Dow|Rig | | ||||||
|  |    * `----------------------------------------------------------------' | ||||||
|  |    */ | ||||||
|  | [_BL] = KEYMAP_ANSI( | ||||||
|  |   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_GRV, \ | ||||||
|  |   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,KC_DEL, \ | ||||||
|  |   KC_CAPS, KC_A,   KC_S,   KC_D,   KC_F,   KC_G,   KC_H,   KC_J,   KC_K,   KC_L,   KC_SCLN,KC_QUOT,         KC_ENT,KC_PGUP,  \ | ||||||
|  |   KC_LSFT,         KC_Z,   KC_X,   KC_C,   KC_V,   KC_B,   KC_N,   KC_M,   KC_COMM,KC_DOT, KC_SLSH,   KC_RSFT,KC_UP,KC_PGDN, \ | ||||||
|  |   KC_LCTL, KC_LGUI,KC_LALT,                KC_SPC,                        KC_RALT,MO(_FL),KC_RCTRL, KC_LEFT,KC_DOWN,KC_RGHT), | ||||||
|  | 
 | ||||||
|  |   /* Keymap _FL: Function Layer
 | ||||||
|  |    * ,----------------------------------------------------------------. | ||||||
|  |    * |   |   |   |   |   |   |   |   |   |   |   |   |   |  RESET|    | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |     |   |   |   |   |   |   |   |   |   |   |BL-|BL+|BL   |    | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |      |   |   |   |   |   |   |       |   |   |   |        |    | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |        | F1|F2 | F3|F4 | F5| F6| F7| F8|   |   |      |   |    | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * |    |    |    |                       |   |   |    |   |   |    | | ||||||
|  |    * `----------------------------------------------------------------' | ||||||
|  |    */ | ||||||
|  | [_FL] = KEYMAP_ANSI( | ||||||
|  |   #ifdef RGBLIGHT_ENABLE | ||||||
|  |   _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,_______,  \ | ||||||
|  |   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG,_______, \ | ||||||
|  |   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______,_______, \ | ||||||
|  |   _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______,_______,_______, \ | ||||||
|  |   _______,_______,_______,                 _______,               _______,_______,_______,_______,_______, _______), | ||||||
|  |   #else | ||||||
|  |   _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,_______,  \ | ||||||
|  |   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG,_______, \ | ||||||
|  |   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______,_______, \ | ||||||
|  |   _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ | ||||||
|  |   _______,_______,_______,                 _______,               _______,_______,_______,_______,_______, _______), | ||||||
|  |   #endif | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | /*enum function_id {
 | ||||||
|  |     //SHIFT_ESC,
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | const uint16_t PROGMEM fn_actions[] = { | ||||||
|  |   //[0]  = ACTION_FUNCTION(SHIFT_ESC),
 | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | ||||||
|  |   static uint8_t shift_esc_shift_mask; | ||||||
|  |   switch (id) { | ||||||
|  |     case SHIFT_ESC: | ||||||
|  |       shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; | ||||||
|  |       if (record->event.pressed) { | ||||||
|  |         if (shift_esc_shift_mask) { | ||||||
|  |           add_key(KC_GRV); | ||||||
|  |           send_keyboard_report(); | ||||||
|  |         } else { | ||||||
|  |           add_key(KC_ESC); | ||||||
|  |           send_keyboard_report(); | ||||||
|  |         } | ||||||
|  |       } else { | ||||||
|  |         if (shift_esc_shift_mask) { | ||||||
|  |           del_key(KC_GRV); | ||||||
|  |           send_keyboard_report(); | ||||||
|  |         } else { | ||||||
|  |           del_key(KC_ESC); | ||||||
|  |           send_keyboard_report(); | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |       break; | ||||||
|  |   } | ||||||
|  | }*/ | ||||||
							
								
								
									
										1
									
								
								keyboards/tada68/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/tada68/keymaps/default/readme.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | ||||||
|  | # default TADA68 layout | ||||||
							
								
								
									
										4
									
								
								keyboards/tada68/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/tada68/readme.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | TADA68 keyboard firmware | ||||||
|  | ====================== | ||||||
|  | 
 | ||||||
|  | TODO: to be updated. | ||||||
							
								
								
									
										66
									
								
								keyboards/tada68/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								keyboards/tada68/rules.mk
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | ||||||
|  | 
 | ||||||
|  | # MCU name
 | ||||||
|  | #MCU = at90usb1287
 | ||||||
|  | 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=4096 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # Build Options
 | ||||||
|  | #   comment out to disable the options.
 | ||||||
|  | #
 | ||||||
|  | BOOTMAGIC_ENABLE ?= no	# Virtual DIP switch configuration(+1000) | ||||||
|  | MOUSEKEY_ENABLE ?= no	# 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 | ||||||
|  | NKRO_ENABLE ?= yes		# USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | ||||||
|  | RGBLIGHT_ENABLE ?= no   # Enable keyboard underlight functionality (+4870) | ||||||
|  | BACKLIGHT_ENABLE ?= yes  # Enable keyboard backlight functionality (+1150) | ||||||
|  | MIDI_ENABLE ?= no 		# MIDI controls | ||||||
|  | AUDIO_ENABLE ?= no | ||||||
|  | UNICODE_ENABLE ?= no 		# Unicode | ||||||
|  | BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID | ||||||
							
								
								
									
										30
									
								
								keyboards/tada68/tada68.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								keyboards/tada68/tada68.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | #include "tada68.h" | ||||||
|  | #include "led.h" | ||||||
|  | 
 | ||||||
|  | void matrix_init_kb(void) { | ||||||
|  | 	// put your keyboard start-up code here
 | ||||||
|  | 	// runs once when the firmware starts up
 | ||||||
|  | 	matrix_init_user(); | ||||||
|  | 	led_init_ports(); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | void matrix_scan_kb(void) { | ||||||
|  | 	// put your looping keyboard code here
 | ||||||
|  | 	// runs every cycle (a lot)
 | ||||||
|  | 	matrix_scan_user(); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | void led_init_ports(void) { | ||||||
|  |     // * Set our LED pins as output
 | ||||||
|  |     DDRB |= (1<<2); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void led_set_kb(uint8_t usb_led) { | ||||||
|  | 	if (usb_led & (1<<USB_LED_CAPS_LOCK)) { | ||||||
|  |         // Turn capslock on
 | ||||||
|  |         PORTB &= ~(1<<2); | ||||||
|  |     } else { | ||||||
|  |         // Turn capslock off
 | ||||||
|  |         PORTB |= (1<<2); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										43
									
								
								keyboards/tada68/tada68.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								keyboards/tada68/tada68.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,43 @@ | ||||||
|  | #ifndef TADA68_H | ||||||
|  | #define TADA68_H | ||||||
|  | 
 | ||||||
|  | #include "quantum.h" | ||||||
|  | 
 | ||||||
|  | // readability
 | ||||||
|  | #define XXX KC_NO | ||||||
|  | 
 | ||||||
|  | /* TADA68 ANSI layout
 | ||||||
|  |    * ,----------------------------------------------------------------. | ||||||
|  |    * | 00 |01| 02| 03| 04| 05| 06| 07| 08| 09| 0a| 0b| 0c| 0d    | 0e | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * | 10  | 11| 12| 13| 14| 15| 16| 17| 18| 19| 1a| 1b| 1c|  1d | 1e | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * | 20    | 21| 22| 23| 24| 25| 26| 27| 28| 29| 2a| 2b| 2d    | 2e | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * | 30     | 32| 33| 34| 35| 36| 37| 38| 39| 3a| 3b|    3c| 3d| 3e | | ||||||
|  |    * |----------------------------------------------------------------| | ||||||
|  |    * | 40 | 41 | 42 |        45             | 49| 4a|  4b| 4c| 4d| 4e | | ||||||
|  |    * `----------------------------------------------------------------' | ||||||
|  |  */ | ||||||
|  | // The first section contains all of the arguments
 | ||||||
|  | // The second converts the arguments into a two-dimensional array
 | ||||||
|  | 
 | ||||||
|  | #define KEYMAP_ANSI( \ | ||||||
|  |     k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \ | ||||||
|  | 	k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \ | ||||||
|  | 	k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, k2e, \ | ||||||
|  | 	k30,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e, \ | ||||||
|  | 	k40, k41, k42,           k45,                k49, k4a, k4b, k4c, k4d, k4e  \ | ||||||
|  | ) \ | ||||||
|  | { \ | ||||||
|  | 	{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e}, \ | ||||||
|  | 	{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e}, \ | ||||||
|  | 	{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, k2e}, \ | ||||||
|  | 	{k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, k3e}, \ | ||||||
|  | 	{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d, k4e}  \ | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void matrix_init_user(void); | ||||||
|  | void matrix_scan_user(void); | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
|  | @ -155,9 +155,10 @@ void process_action(keyrecord_t *record, action_t action) | ||||||
|                                                                 action.key.mods<<4; |                                                                 action.key.mods<<4; | ||||||
|                 if (event.pressed) { |                 if (event.pressed) { | ||||||
|                     if (mods) { |                     if (mods) { | ||||||
|                         if (IS_MOD(action.key.code)) { |                         if (IS_MOD(action.key.code) || action.key.code == KC_NO) { | ||||||
|                             // e.g. LSFT(KC_LGUI): we don't want the LSFT to be weak as it would make it useless.
 |                             // e.g. LSFT(KC_LGUI): we don't want the LSFT to be weak as it would make it useless.
 | ||||||
|                             // this also makes LSFT(KC_LGUI) behave exactly the same as LGUI(KC_LSFT)
 |                             // This also makes LSFT(KC_LGUI) behave exactly the same as LGUI(KC_LSFT).
 | ||||||
|  |                             // Same applies for some keys like KC_MEH which are declared as MEH(KC_NO).
 | ||||||
|                             add_mods(mods); |                             add_mods(mods); | ||||||
|                         } else { |                         } else { | ||||||
|                             add_weak_mods(mods); |                             add_weak_mods(mods); | ||||||
|  | @ -168,7 +169,7 @@ void process_action(keyrecord_t *record, action_t action) | ||||||
|                 } else { |                 } else { | ||||||
|                     unregister_code(action.key.code); |                     unregister_code(action.key.code); | ||||||
|                     if (mods) { |                     if (mods) { | ||||||
|                         if (IS_MOD(action.key.code)) { |                         if (IS_MOD(action.key.code) || action.key.code == KC_NO) { | ||||||
|                             del_mods(mods); |                             del_mods(mods); | ||||||
|                         } else { |                         } else { | ||||||
|                             del_weak_mods(mods); |                             del_weak_mods(mods); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erez Zukerman
						Erez Zukerman