~ruther/qmk_firmware

a66e75609e6c098eead7c1c04c3a720612ad80d1 — mogranjm 7 years ago f3534f9
Added new TKL layout for the Frosty flake - Quickfire Rapid (#1854)

* First commit of the Terminus_Mini firmware and the DivergeJM version of the Nyquist firmware

* Fix terminus_mini & nyquist/DivergeJM readme files

Previously an outdated copy of the default readme. Updated to match the  Nyquist/DivergeJM format (DivergeJM is a split 5x12 implementation of the terminus_mini layout)

* Update makefiles to rules.mk

Renamed both Makefiles to rules.mk, removed references to makefiles

* Updated rules.mk

Inadvertantly removed important code from the rules.mk in previous commit. This has been restored.

Also disabled Tap_Dance in both rules.mk files

* Moved terminus_mini to handwired

Realised that existing directory was not appropriate for the terminus_mini project, moved to handwired.

* New Frosty Flake layout for QFR TKL

Added a TKL layout for the Frosty Flake with a navigation cluster on LOWER under the left hand and a similarly functioning MOUSE layer that includes mouse navigation functionality.
A keyboards/frosty_flake/keymaps/QFR_JM/config.h => keyboards/frosty_flake/keymaps/QFR_JM/config.h +8 -0
@@ 0,0 1,8 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include "../../config.h"

// place overrides here

#endif

A keyboards/frosty_flake/keymaps/QFR_JM/keymap.c => keyboards/frosty_flake/keymaps/QFR_JM/keymap.c +60 -0
@@ 0,0 1,60 @@
#include "frosty_flake.h"
#include "action_layer.h"
#ifdef AUDIO_ENABLE
  #include "audio.h"
#endif
#include "eeconfig.h"

enum QFR_layers {
  _COLEMAK,
  _LOWER,
  _MOUSE
};

enum QFR_keycodes {
  COLEMAK = SAFE_RANGE,
  LOWER,
  MOUSE
};

  const uint16_t PROGMEM fn_actions[] = { //ACTION_LAYER_TAP_TOGGLE requires that number of taps be defined in *config.h* - default set to 5
      [0] = ACTION_LAYER_TAP_KEY(_LOWER, KC_SPC),    //Hold for momentary Lower layer, Tap for Space, 
      [1] = ACTION_LAYER_TAP_TOGGLE(_LOWER),         //Hold for momentary Mouse, Tap for toggle Mouse
      [2] = ACTION_LAYER_TAP_TOGGLE(_MOUSE),         //Hold for momentary Lower, Tap for toggle Lower
   };
#define SPC_LW FUNC(0)
#define LWR FUNC(1)
#define MSE FUNC(2)

// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = KEYMAP_TKL(\
      KC_ESC,    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_PSCR,KC_SLCK,KC_PAUS, \
      KC_GRV,    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_INS, KC_HOME,KC_PGUP, \
      KC_TAB,    KC_Q,      KC_W,   KC_F,   KC_P,   KC_G,   KC_J,   KC_L,   KC_U,   KC_Y,    KC_SCLN, KC_LBRC, KC_RBRC,KC_BSLS,  KC_DEL, KC_END, KC_PGDN, \
      KC_BSPC,   KC_A,      KC_R,   KC_S,   KC_T,   KC_D,   KC_H,   KC_N,   KC_E,   KC_I,    KC_O,    KC_QUOT,         KC_ENT ,                           \
      KC_LSPO,KC_NUBS,KC_Z, KC_X,   KC_C,   KC_V,   KC_B,   KC_K,   KC_M,   KC_COMM, KC_DOT, KC_SLSH,          KC_RSPC,                   KC_UP,          \
      KC_LCTL,KC_LGUI,      KC_LALT,                SPC_LW,                                  MSE,     KC_RGUI, KC_APP, KC_RCTL,  KC_LEFT,KC_DOWN,KC_RGHT
      ),

[_LOWER] = KEYMAP_TKL(\
      RESET,    _______,    _______,   _______,  _______, _______,   _______,   _______,   _______,  _______, _______, _______, _______,           _______,_______,_______, \
      KC_TILD,  KC_EXLM,    KC_AT,     KC_HASH,  KC_DLR,  KC_PERC,   KC_CIRC,   KC_AMPR,   KC_ASTR,  KC_LBRC, KC_RBRC, KC_UNDS, KC_PLUS, KC_BSPC,  _______,_______,_______, \
      KC_TAB,   KC_PGUP,    KC_HOME,   KC_UP,    KC_END,  XXXXXXX,   XXXXXXX,   KC_BTN3,   KC_BTN4,  KC_BTN5, XXXXXXX, KC_LCBR, KC_RCBR, KC_PIPE,  _______,_______,_______, \
      KC_CAPS,  KC_PGDN,    KC_LEFT,   KC_DOWN,  KC_RGHT, XXXXXXX,   XXXXXXX,   KC_BTN1,   KC_BTN2,  XXXXXXX, XXXXXXX, _______,          _______,                            \
      _______,XXXXXXX,_______,_______, _______,  _______, XXXXXXX,   XXXXXXX,   XXXXXXX,   _______,  _______, _______,                   _______,          _______,          \
      _______,  _______,    _______,             _______,                       KC_RALT,   _______,  _______, _______,                            _______,_______,_______  \
      ),

[_MOUSE] = KEYMAP_TKL(\
      _______,  _______,   _______,   _______,  _______, _______,   _______,   _______,   _______,  _______, _______, _______, _______,            _______,_______,_______, \
      KC_GRV,   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_DEL,    _______,_______,_______, \
      KC_TAB,   KC_WH_U,   KC_WH_L,   KC_MS_U,  KC_WH_R, XXXXXXX,   XXXXXXX,   XXXXXXX,   XXXXXXX,  XXXXXXX, XXXXXXX, KC_LBRC, KC_RBRC, KC_BSLS,   _______,_______,_______, \
      KC_BSPC,  KC_WH_D,   KC_MS_L,   KC_MS_D,  KC_MS_R, XXXXXXX,   XXXXXXX,   XXXXXXX,   XXXXXXX,  XXXXXXX, XXXXXXX, _______,          _______,                             \
      _______,XXXXXXX,KC_Z,KC_X,      KC_C,     KC_V,    XXXXXXX,   XXXXXXX,   XXXXXXX,   _______,  _______,  _______,                  _______,           _______,          \
      _______,  _______,   _______,             KC_ACL2,                       MSE,       _______,  _______,  _______,                             _______,_______,_______  \
      )
};

A keyboards/frosty_flake/keymaps/QFR_JM/readme.md => keyboards/frosty_flake/keymaps/QFR_JM/readme.md +73 -0
@@ 0,0 1,73 @@
# TKL keymap for frosty_flake

##Layers

  ,----.    ,-------------------. ,-------------------. ,-------------------. ,--------------.
  |ESC |    | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 |F10 |F11 |F12 | |PrSc|ScLk|PsBk|
  '----'    '-------------------' '-------------------' '-------------------' '--------------'
  ,-------------------------------------------------------------------------. ,--------------. 
  |  ` | 1  |  2 |  3 | 4  |  5 |  6 |  7 |  8 |  9 |  0 |  - |  = |  Bspc  | | Ins|Home|PgUp| 
  |-------------------------------------------------------------------------| |--------------| 
  | Tab  | Q  |  W | F  | P  | G  | J  | L  |  U |  Y | ;  | [  |  ] |   \  | | Del|End |PgDn| 
  |-------------------------------------------------------------------------| '--------------'
  |  Bspc | A  | R  |  S |  T | D  | H  | N  | E  | I  | O  | '  |   Enter  |                 
  |-------------------------------------------------------------------------|      ,----.     
  |   LSPO  | Z  | X  |  C | V  |  B |  K |  M |  , |  . |  / |    RSPC     |      | Up |     
  |-------------------------------------------------------------------------| ,--------------.
  |Ctrl|LGUI|LAlt|             Space/Lower              |MSE |RGUI|Menu|Ctrl| |Left|Down|Rght|
  '-------------------------------------------------------------------------' '--------------'

### Base Layer - Colemak
	* The base layout is Colemak. 
			* I've implemented COLEMAK = SAFE_RANGE when enumerating the custom_keycodes, but I don't actually know what this does...

	* Space cadet is implemented in the shift keys (hold for shift, tap for respective parentheses)

	#### Layer Shifting
	* The spacebar is a **TAP_KEY** macro - Hold for momentary *LOWER* layer, Tap for Space.
	* The Right hand ALT key is a **TAP_TOGGLE** macro for the *MOUSE* layer (RAlt is accessible through LOWER, if you want...)
	
### LOWER

  ,----.    ,-------------------. ,-------------------. ,-------------------. ,--------------.
  |ESC |    | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 |F10 |F11 |F12 | |PrSc|ScLk|PsBk|
  '----'    '-------------------' '-------------------' '-------------------' '--------------'
  ,-------------------------------------------------------------------------. ,--------------. 
  |  ~ | !  |  @ |  # |  $ |  % |  ^ |  & |  * |  ( |  ) |  _ |  + |  Bspc  | | Ins|Home|PgUp| 
  |-------------------------------------------------------------------------| |--------------| 
  | Tab  |PgUp|Home| Up | End|    |    |    |    |    |    | {  |  } |   |  | | Del|End |PgDn| 
  |-------------------------------------------------------------------------| '--------------'
  | Bckspc|PgDn|Left|Down|Rght|    |    |    |    |    |    | '  |   Enter  |                 
  |-------------------------------------------------------------------------|      ,----.     
  |   LSPO  | Z  | X  |  C | V  |    |    |    |  , |  . |  / |    RSPC     |      | Up |     
  |-------------------------------------------------------------------------| ,--------------.
  |Ctrl|LGUI|LAlt|               		                    |MSE |RGUI|Menu|Ctrl| |Left|Down|Rght|
  '-------------------------------------------------------------------------' '--------------'

 	* The *LOWER* layer contains a navigation cluster on the left hand. This layer is momentary when the spacebar or LOWER (RAlt) key is held and toggled on/off when the LOWER key is tapped.
	
	* The Navigation cluster is offset to the right compared to the traditional **WASD** nav cluster. With this implementation, you don't need to move your hand from the home position when navigating. Page Up & Down keys are found on the far left of the cluster.

 	* All unused (blank on the above keymap) keys are locked out using the XXXXXXX filler (KC_NO), all modifiers (edge |_| keys \[except 0, \. & Fn\] on the above keymap) and the ZXCV cluster are transparent (_______) to the Base layer.

### MOUSE

  ,----.    ,-------------------. ,-------------------. ,-------------------. ,--------------.
  |ESC |    | F1 | F2 | F3 | F4 | | F5 | F6 | F7 | F8 | | F9 |F10 |F11 |F12 | |PrSc|ScLk|PsBk|
  '----'    '-------------------' '-------------------' '-------------------' '--------------'
  ,-------------------------------------------------------------------------. ,--------------. 
  |  ` | 1  |  2 |  3 | 4  |  5 |  6 |  7 |  8 |  9 |  0 |  - |  = |   Del  | | Ins|Home|PgUp| 
  |-------------------------------------------------------------------------| |--------------| 
  | Tab  | WhU| WhL| MsU| WhR|    |    | M3 | M4 | M5 |    | [  |  ] |   \  | | Del|End |PgDn| 
  |-------------------------------------------------------------------------| '--------------'
  | BSPC  | WhD| MsL| MsD| MsR|    |    |LClk |RClk |    |    | '  |   Enter  |                 
  |-------------------------------------------------------------------------|      ,----.     
  |   LSPO  | Z  | X  |  C | V  |    |    |    |  , |  . |  / |    RSPC     |      | Up |     
  |-------------------------------------------------------------------------| ,--------------.
  |Ctrl|LGUI|LAlt|               Accel ++               |MSE |RGUI|Menu|Ctrl| |Left|Down|Rght|
  '-------------------------------------------------------------------------' '--------------'

 	* The *MOUSE* layer contains keys replicating functions found on the mouse. 
 		* The navigation cluster (Up, Down, Left, Right) is a replication of the Navigation cluster on the *LOWER* layer. The scroll keys are analagous to the Page Up & Down keys.
 		* The primary click (right & left) buttons are on the right home row (index & middle fingers)
 		* Secondary click buttons are above the standard keys (M3/Wheel click, M4, M5) but I do not use this function.

A keyboards/frosty_flake/keymaps/QFR_JM/rules.mk => keyboards/frosty_flake/keymaps/QFR_JM/rules.mk +17 -0
@@ 0,0 1,17 @@
# 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 = 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 = no            # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = no       # 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

M keyboards/handwired/terminus_mini/keymaps/default/keymap.c => keyboards/handwired/terminus_mini/keymaps/default/keymap.c +3 -6
@@ 29,22 29,19 @@ extern keymap_config_t keymap_config;

enum terminus_mini_layers {
  _COLEMAK,
  _QWERTY,
  _LOWER,
  _RAISE,
  _FUNCTION,
  _MOUSE,
  _ADJUST,
  _ADJUST
};

enum terminus_mini_keycodes {
  COLEMAK = SAFE_RANGE,
  QWERTY,
  LOWER,
  RAISE,
  FUNCTION,
  MOUSE,
  ADJUST,
  MOUSE
};

  // Enable these functions using FUNC(n) macro.


@@ 159,7 156,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   KC_ESC,  KC_WH_U, KC_WH_L, KC_MS_U, KC_WH_R,  XXXXXXX, XXXXXXX, KC_BTN3, KC_BTN4,  KC_BTN5, XXXXXXX, XXXXXXX, \
   KC_BSPC, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R,  XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN2,  XXXXXXX, XXXXXXX, XXXXXXX, \
   _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,  XXXXXXX, XXXXXXX, KC_RSPC, \
   _______, XXXXXXX, XXXXXXX, XXXXXXX,      KC_ACL1,           KC_ACL0,     XXXXXXX,      MSE, XXXXXXX, KC_RCTL \
   _______, XXXXXXX, XXXXXXX, XXXXXXX,      KC_ACL2,           KC_ACL0,     XXXXXXX,      MSE, XXXXXXX, KC_RCTL \
  ),

};

M keyboards/nyquist/keymaps/DivergeJM/README.md => keyboards/nyquist/keymaps/DivergeJM/README.md +2 -1
@@ 66,7 66,6 @@ The TERMINUS_MINI layout (../../../terminus_mini/terminus_mini.h) is handwired a
	
	* The Navigation cluster is offset to the right compared to the traditional **WASD** nav cluster. With this implementation, you don't need to move your hand from the home position when navigating. Page Up & Down keys are found on the far left of the cluster.


 	* All unused (blank on the above keymap) keys are locked out using the XXXXXXX filler (KC_NO), all modifiers (edge |_| keys \[except 0, \. & Fn\] on the above keymap) and the ZXCV cluster are transparent (_______) to the Base layer.

 	- [] TO DO!! - It would be nice to have a **TAP_DANCE_DOUBLE** implementation whereby a double tap of the right 2U key sends KC_PENT


@@ 131,5 130,7 @@ The TERMINUS_MINI layout (../../../terminus_mini/terminus_mini.h) is handwired a

 	* The *MOUSE* layer contains keys replicating functions found on the mouse. 
 		* The navigation cluster (Up, Down, Left, Right) is a replication of the Navigation cluster on the *LOWER* layer. The scroll keys are analagous to the Page Up & Down keys.

 		*) The primary click (right & left) buttons are on the right home row (index & middle fingers)

 		* Secondary click buttons are above the standard keys (M3/Wheel click, M4, M5) but I do not use this function.
\ No newline at end of file