Merge pull request #608 from finleye/master
Adds keymap based on Kinesis advantage
This commit is contained in:
		
						commit
						a087a207f1
					
				
					 4 changed files with 264 additions and 0 deletions
				
			
		
							
								
								
									
										27
									
								
								keyboards/preonic/keymaps/kinesis/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								keyboards/preonic/keymaps/kinesis/Makefile
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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 = yes          # 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TAP_DANCE_ENABLE = yes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ifndef QUANTUM_DIR
 | 
				
			||||||
 | 
						include ../../../../Makefile
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
							
								
								
									
										92
									
								
								keyboards/preonic/keymaps/kinesis/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								keyboards/preonic/keymaps/kinesis/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,92 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					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      0x6061
 | 
				
			||||||
 | 
					#define DEVICE_VER      0x0001
 | 
				
			||||||
 | 
					#define MANUFACTURER    Ortholinear Keyboards
 | 
				
			||||||
 | 
					#define PRODUCT         The Preonic Keyboard
 | 
				
			||||||
 | 
					#define DESCRIPTION     A compact ortholinear keyboard
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* key matrix size */
 | 
				
			||||||
 | 
					#define MATRIX_ROWS 5
 | 
				
			||||||
 | 
					#define MATRIX_COLS 12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Planck PCB default pin-out */
 | 
				
			||||||
 | 
					#define MATRIX_ROW_PINS { D2, D5, B5, B6, D3 }
 | 
				
			||||||
 | 
					#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
 | 
				
			||||||
 | 
					#define UNUSED_PINS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define BACKLIGHT_PIN B7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* COL2ROW or ROW2COL */
 | 
				
			||||||
 | 
					#define DIODE_DIRECTION COL2ROW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* define if matrix has ghost */
 | 
				
			||||||
 | 
					//#define MATRIX_HAS_GHOST
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* number of backlight levels */
 | 
				
			||||||
 | 
					#define BACKLIGHT_LEVELS 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 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)) \
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ws2812 RGB LED */
 | 
				
			||||||
 | 
					#define RGB_DI_PIN D1
 | 
				
			||||||
 | 
					#define RGBLIGHT_TIMER
 | 
				
			||||||
 | 
					#define RGBLED_NUM 28     // Number of LEDs
 | 
				
			||||||
 | 
					#define RGBLIGHT_HUE_STEP 10
 | 
				
			||||||
 | 
					#define RGBLIGHT_SAT_STEP 17
 | 
				
			||||||
 | 
					#define RGBLIGHT_VAL_STEP 17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Feature disable options
 | 
				
			||||||
 | 
					 *  These options are also useful to firmware size reduction.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TAPPING_TERM 200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 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
 | 
				
			||||||
							
								
								
									
										144
									
								
								keyboards/preonic/keymaps/kinesis/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								keyboards/preonic/keymaps/kinesis/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,144 @@
 | 
				
			||||||
 | 
					#include "preonic.h"
 | 
				
			||||||
 | 
					#include "action_layer.h"
 | 
				
			||||||
 | 
					#include "eeconfig.h"
 | 
				
			||||||
 | 
					#ifdef AUDIO_ENABLE
 | 
				
			||||||
 | 
					#include "audio.h"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// 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 _QWERTY 0
 | 
				
			||||||
 | 
					#define _FN 1
 | 
				
			||||||
 | 
					#define _ULCK 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Fillers to make layering more clear
 | 
				
			||||||
 | 
					#define _______ KC_TRNS
 | 
				
			||||||
 | 
					#define XXXXXXX KC_NO
 | 
				
			||||||
 | 
					#define HYP_TIC ALL_T(KC_GRV)
 | 
				
			||||||
 | 
					#define EQ_LOCK TD(TD_EQ_LOCK)
 | 
				
			||||||
 | 
					#define MIN_ULK TD(TD_MIN_ULOCK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//Tap Dance Declarations
 | 
				
			||||||
 | 
					enum {
 | 
				
			||||||
 | 
					  TD_EQ_LOCK = 0,
 | 
				
			||||||
 | 
					  TD_MIN_ULOCK
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Qwerty
 | 
				
			||||||
 | 
					   * ,-----------------------------------------------------------------------------------.
 | 
				
			||||||
 | 
					   * |   =  |   1  |   2  |   3  |   4  |   5  |   6  |   7  |   8  |   9  |   0  |  -   |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * | Tab  |   Q  |   W  |   E  |   R  |   T  |   Y  |   U  |   I  |   O  |   P  |  \   |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * | Ctrl |   A  |   S  |   D  |   F  |   G  |   H  |   J  |   K  |   L  |   ;  |  "   |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * | Shift|   Z  |   X  |   C  |   V  |   B  |   N  |   M  |   ,  |   .  |   /  |Shift |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+------+------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * |  FN  |   `  | Alt  | LGUI | Back | ESC  |ENTER | SPCE | RGUI |   [  |  ]   |  FN  |
 | 
				
			||||||
 | 
					   * `-----------------------------------------------------------------------------------'
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  [_QWERTY] = {
 | 
				
			||||||
 | 
					    {EQ_LOCK, KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    MIN_ULK },
 | 
				
			||||||
 | 
					    {KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSLS },
 | 
				
			||||||
 | 
					    {KC_LCTL, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT },
 | 
				
			||||||
 | 
					    {KC_LSPO, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSPC },
 | 
				
			||||||
 | 
					    {MO(_FN), HYP_TIC, KC_LALT, KC_LGUI, KC_BSPC, KC_ESC,  KC_ENT,  KC_SPC,  KC_RGUI, KC_LBRC, KC_RBRC, MO(_FN) }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Fn
 | 
				
			||||||
 | 
					   * ,-----------------------------------------------------------------------------------.
 | 
				
			||||||
 | 
					   * |      |  F1  |  F2  |  F3  |  F4  |  F5  |  F6  |  F7  |  F8  |  F9  |  F10 |      |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * |      |  F11 |  F12 |  F13 |  F14 |  F15 |  F16 |  F17 |  F18 |  F19 |  F20 |      |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+-------------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * |      | VOL- | VOL+ | MUTE |BLtogg|      | LEFT | DOWN |  UP  | RGHT |      |      |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * |      | BL-  | BL+  |Aud on|AudOff|AGnorm|AGswap|      |      |      |      |      |
 | 
				
			||||||
 | 
					   * |------+------+------+------+------+------|------+------+------+------+------+------|
 | 
				
			||||||
 | 
					   * |      |Voice-|Voice+|Mus on|MusOff|      |      |PLY/PS|      | PREV | NEXT |      |
 | 
				
			||||||
 | 
					   * `-----------------------------------------------------------------------------------'
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  [_FN] = {
 | 
				
			||||||
 | 
					    {_______, 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_F13,  KC_F14,  KC_F15,  KC_F16,  KC_F17,  KC_F18,  KC_F19,  KC_F20,  _______ },
 | 
				
			||||||
 | 
					    {_______, KC_VOLD, KC_VOLU, KC_MUTE, BL_TOGG, _______, KC_LEFT, KC_DOWN, KC_UP,   KC_RGHT, _______, _______ },
 | 
				
			||||||
 | 
					    {_______, BL_DEC,  BL_INC,  AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, _______, _______, _______, _______, _______ },
 | 
				
			||||||
 | 
					    {_______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  _______, _______, KC_MPLY, _______, KC_MPRV, KC_MNXT, _______ }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float tone_startup[][2] = {
 | 
				
			||||||
 | 
					  {NOTE_B5, 20},
 | 
				
			||||||
 | 
					  {NOTE_B6, 8},
 | 
				
			||||||
 | 
					  {NOTE_DS6, 20},
 | 
				
			||||||
 | 
					  {NOTE_B6, 8}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
 | 
				
			||||||
 | 
					float music_scale[][2]  = SONG(MUSIC_SCALE_SOUND);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void persistant_default_layer_set(uint16_t default_layer) {
 | 
				
			||||||
 | 
					  eeconfig_update_default_layer(default_layer);
 | 
				
			||||||
 | 
					  default_layer_set(default_layer);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*bool process_record_user(uint16_t keycode, keyrecord_t *record) {*/
 | 
				
			||||||
 | 
					  /*return true;*/
 | 
				
			||||||
 | 
					  /*[>switch (keycode) {<]*/
 | 
				
			||||||
 | 
					    /*[>case QWERTY:<]*/
 | 
				
			||||||
 | 
					      /*[>return true;<]*/
 | 
				
			||||||
 | 
					  /*[>}<]*/
 | 
				
			||||||
 | 
					/*};*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void matrix_init_user(void) {
 | 
				
			||||||
 | 
					  startup_user();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void startup_user()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  _delay_ms(20); // gets rid of tick
 | 
				
			||||||
 | 
					  PLAY_NOTE_ARRAY(tone_startup, false, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void shutdown_user()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
 | 
				
			||||||
 | 
					  _delay_ms(150);
 | 
				
			||||||
 | 
					  stop_all_notes();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void music_on_user(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  music_scale_user();
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void music_scale_user(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  PLAY_NOTE_ARRAY(music_scale, false, 0);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const qk_tap_dance_action_t tap_dance_actions[] = {
 | 
				
			||||||
 | 
					  //Tap once for equal, twice for hyper + X (alfred lock)
 | 
				
			||||||
 | 
					  [TD_EQ_LOCK] = ACTION_TAP_DANCE_DOUBLE(KC_EQL,  HYPR(KC_X)),
 | 
				
			||||||
 | 
					  //Tap once for minus, twice for time.heals.nothing
 | 
				
			||||||
 | 
					  [TD_MIN_ULOCK] = ACTION_TAP_DANCE_DOUBLE(KC_MINS, M(_ULCK))
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  switch(id) {
 | 
				
			||||||
 | 
					    case _ULCK:
 | 
				
			||||||
 | 
					      if (record->event.pressed) {
 | 
				
			||||||
 | 
					        /* time.heals.nothing */
 | 
				
			||||||
 | 
					        return MACRO( I(220), T(T), T(I), T(M), T(E), T(DOT), T(H), T(E), T(A), T(L), T(S), T(DOT), T(N), T(O), T(T), T(H), T(I), T(N), T(G), END);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return MACRO_NONE;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
							
								
								
									
										1
									
								
								keyboards/preonic/keymaps/kinesis/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/preonic/keymaps/kinesis/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					# The default Preonic layout - largely based on the Planck's
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue