Преглед изворни кода

Merge pull request #1148 from nooges/hexwire-lets-split

Add Hexwire layout for Let's Split
Jack Humbert пре 8 година
родитељ
комит
8685d73893

+ 1 - 0
keyboards/lets_split/keymaps/hexwire/Makefile

@@ -0,0 +1 @@
+RGBLIGHT_ENABLE = yes

+ 108 - 0
keyboards/lets_split/keymaps/hexwire/README.md

@@ -0,0 +1,108 @@
+Hexwire's Let's Split Layout
+============================
+
+### Changes from default layout
+
+- Main layer
+    - The right space bar key has been changed to backspace, as I only hit space with my left thumb
+    - Backtick is at the lower right and also serves goes to the 3rd function layer when held
+    - Enter key acts as shift when held
+    - Escape key acts as control when held
+    - Minus key at upper right
+- Lower layer
+    - Numbers are on the lower layer, to make it easier to use a numpad on the right hand
+    - Arrow keys
+    - Straight and curly brackets in the middle two columns
+    - Screenshot keys for MacOS
+- Upper layer
+    - Symbols are on the upper layer
+    - Media keys
+    - Page Up/Down, Home/End
+- 3rd function layer
+    - Function keys
+
+## Layouts
+
+### Qwerty
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+ TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```
+
+### Colemak
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+ TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```
+
+### Dvorak
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+ TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X0 , A  , O  , E  , U  , I  ,      D  , H  , R  , N  , S  ,SLSH,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+  X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```
+
+### Lower
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ DEL ,CAPP,LEFT,RGHT, UP ,LBRC,     RBRC, P4 , P5 , P6 ,PLUS,PIPE,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```
+
+### Raise
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ DEL ,MPRV,MNXT,VOLU,PGUP,UNDS,     EQL ,HOME,    ,    ,    ,BSLS,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+ MUTE,MSTP,MPLY,VOLD,PGDN,MINS,     PLUS,END ,    ,    ,    ,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```
+
+### 3rd function layer
+
+```
+,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+ F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,   
+`----+----+----+----+----+----'    `----+----+----+----+----+----'
+```

+ 23 - 0
keyboards/lets_split/keymaps/hexwire/compact_keymap.h

@@ -0,0 +1,23 @@
+#ifndef COMPACT_KEYMAP_H
+#define COMPACT_KEYMAP_H
+
+#define COMPACT_KEYMAP( \
+  k00, k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, k40, \
+  k10, k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, k50, \
+  k20, k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, k60, \
+  k30, k31, k32, k33, k34, k35, k75, k74, k73, k72, k71, k70 \
+  ) \
+  { \
+    { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05 }, \
+    { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15 }, \
+    { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25 }, \
+    { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35 }, \
+    { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45 }, \
+    { KC_##k50, KC_##k51, KC_##k52, KC_##k53, KC_##k54, KC_##k55 }, \
+    { KC_##k60, KC_##k61, KC_##k62, KC_##k63, KC_##k64, KC_##k65 }, \
+    { KC_##k70, KC_##k71, KC_##k72, KC_##k73, KC_##k74, KC_##k75 } \
+  }
+
+#define KC_ KC_TRNS
+
+#endif

+ 35 - 0
keyboards/lets_split/keymaps/hexwire/config.h

@@ -0,0 +1,35 @@
+/*
+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/>.
+*/
+
+
+#define USE_SERIAL
+
+#define EE_HANDS
+
+#undef RGBLED_NUM
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 8
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+#ifdef SUBPROJECT_rev1
+    #include "../../rev1/config.h"
+#endif
+#ifdef SUBPROJECT_rev2
+    #include "../../rev2/config.h"
+#endif

+ 205 - 0
keyboards/lets_split/keymaps/hexwire/keymap.c

@@ -0,0 +1,205 @@
+#include "lets_split.h"
+#include "action_layer.h"
+#include "eeconfig.h"
+#include "compact_keymap.h"
+
+extern keymap_config_t keymap_config;
+
+#define _QWERTY 0
+#define _COLEMAK 1
+#define _DVORAK 2
+#define _LOWER 3
+#define _RAISE 4
+#define _FN3 5
+#define _FN4 6
+#define _ADJUST 16
+
+enum custom_keycodes {
+  QWERTY = SAFE_RANGE,
+  COLEMAK,
+  DVORAK,
+  LOWER,
+  RAISE,
+  FN3,
+  FN4,
+  ADJUST,
+};
+
+#define _______ KC_TRNS
+
+#define KC_CAPW LGUI(LSFT(KC_3))        // Capture whole screen
+#define KC_CPYW LGUI(LSFT(LCTL(KC_3)))  // Copy whole screen
+#define KC_CAPP LGUI(LSFT(KC_4))        // Capture portion of screen
+#define KC_CPYP LGUI(LSFT(LCTL(KC_4)))  // Copy portion of screen
+#define KC_X0 MT(MOD_LCTL, KC_ESC)
+#define KC_X1 LOWER
+#define KC_X2 RAISE
+#define KC_X3 LT(_FN3, KC_GRV)
+#define KC_X4 MT(MOD_LSFT, KC_ENT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+  [_QWERTY] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     TAB , Q  , W  , E  , R  , T  ,      Y  , U  , I  , O  , P  ,MINS,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X0 , A  , S  , D  , F  , G  ,      H  , J  , K  , L  ,SCLN,QUOT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     LSFT, Z  , X  , C  , V  , B  ,      N  , M  ,COMM,DOT ,SLSH, X4 ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_COLEMAK] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     TAB , Q  , W  , F  , P  , G  ,      J  , L  , U  , Y  ,SCLN,MINS,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X0 , A  , R  , S  , T  , D  ,      H  , N  , E  , I  , O  ,QUOT,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     LSFT, Z  , X  , C  , V  , B  ,      K  , M  ,COMM,DOT ,SLSH, X4 ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_DVORAK] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     TAB ,QUOT,COMM,DOT , P  , Y  ,      F  , G  , C  , R  , L  ,MINS,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X0 , A  , O  , E  , U  , I  ,      D  , H  , R  , N  , S  ,SLSH,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     LSFT,SCLN, Q  , J  , K  , X  ,      B  , M  , W  , V  , Z  , X4 ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+      X3 ,LCTL,LALT,LGUI, X1 ,SPC ,     BSPC, X2 ,LEFT,DOWN, UP ,RGHT
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_LOWER] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         , 1  , 2  , 3  , 4  , 5  ,      6  , 7  , 8  , 9  , 0  ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     DEL ,CAPP,LEFT,RGHT, UP ,LBRC,     RBRC, P4 , P5 , P6 ,PLUS,PIPE,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,CPYP,    ,    ,DOWN,LCBR,     RCBR, P1 , P2 , P3 ,MINS,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,     DEL ,    , P0 ,PDOT,    ,   
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_RAISE] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+         ,EXLM, AT ,HASH,DLR ,PERC,     CIRC,AMPR,ASTR,LPRN,RPRN,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     DEL ,MPRV,MNXT,VOLU,PGUP,UNDS,     EQL ,HOME,    ,    ,    ,BSLS,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+     MUTE,MSTP,MPLY,VOLD,PGDN,MINS,     PLUS,END ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+  [_FN3] = COMPACT_KEYMAP(
+  //,----+----+----+----+----+----.    ,----+----+----+----+----+----.
+     F12 , F1 , F2 , F3 , F4 , F5 ,      F6 , F7 , F8 , F9 ,F10 ,F11 ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,    ,
+  //|----+----+----+----+----+----|    |----+----+----+----+----+----|
+         ,    ,    ,    ,    ,    ,         ,    ,    ,    ,    ,   
+  //`----+----+----+----+----+----'    `----+----+----+----+----+----'
+  ),
+
+/* Adjust (Lower + Raise)
+ * ,-----------------------------------------------------------------------------------.
+ * |      | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn|      |      |
+ * |------+------+------+------+------+-------------+------+------+------+------+------|
+ * |      |      |      |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|      |      |
+ * |------+------+------+------+------+------|------+------+------+------+------+------|
+ * |      |      |      |      |      |      |      |      |      |      |      |      |
+ * |------+------+------+------+------+------+------+------+------+------+------+------|
+ * |      |      |      |      |      |             |      |      |      |      |      |
+ * `-----------------------------------------------------------------------------------'
+ */
+  [_ADJUST] = KEYMAP( \
+    _______, RESET  , RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, _______, \
+    _______, _______, _______, AU_ON,   AU_OFF,  AG_NORM, AG_SWAP, QWERTY,  COLEMAK, DVORAK,  _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+  )
+
+
+};
+
+#ifdef AUDIO_ENABLE
+float tone_qwerty[][2]     = SONG(QWERTY_SOUND);
+float tone_dvorak[][2]     = SONG(DVORAK_SOUND);
+float tone_colemak[][2]    = SONG(COLEMAK_SOUND);
+#endif
+
+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) {
+  switch (keycode) {
+    case QWERTY:
+      if (record->event.pressed) {
+        #ifdef AUDIO_ENABLE
+          PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
+        #endif
+        persistant_default_layer_set(1UL<<_QWERTY);
+      }
+      return false;
+      break;
+    case COLEMAK:
+      if (record->event.pressed) {
+        #ifdef AUDIO_ENABLE
+          PLAY_NOTE_ARRAY(tone_colemak, false, 0);
+        #endif
+        persistant_default_layer_set(1UL<<_COLEMAK);
+      }
+      return false;
+      break;
+    case DVORAK:
+      if (record->event.pressed) {
+        #ifdef AUDIO_ENABLE
+          PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
+        #endif
+        persistant_default_layer_set(1UL<<_DVORAK);
+      }
+      return false;
+      break;
+    case LOWER:
+      if (record->event.pressed) {
+        layer_on(_LOWER);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_LOWER);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+      break;
+    case RAISE:
+      if (record->event.pressed) {
+        layer_on(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      } else {
+        layer_off(_RAISE);
+        update_tri_layer(_LOWER, _RAISE, _ADJUST);
+      }
+      return false;
+      break;
+    case ADJUST:
+      if (record->event.pressed) {
+        layer_on(_ADJUST);
+      } else {
+        layer_off(_ADJUST);
+      }
+      return false;
+      break;
+  }
+  return true;
+}