forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request qmk#1148 from nooges/hexwire-lets-split
Add Hexwire layout for Let's Split
- Loading branch information
Showing
5 changed files
with
372 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
RGBLIGHT_ENABLE = yes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 , | ||
|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
, , , , , , , , , , , , | ||
|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
, , , , , , , , , , , , | ||
|----+----+----+----+----+----| |----+----+----+----+----+----| | ||
, , , , , , , , , , , | ||
`----+----+----+----+----+----' `----+----+----+----+----+----' | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
/* | ||
Copyright 2012 Jun Wako <[email protected]> | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; | ||
} |