Split atreus (#1680)

* Merge with upstream

* Add split_atreus keymap for lets_split.

* Move bspace

* Tidy up keymap

* Update layer enum

* Temporary fix

* Finish merge

* Added keys for testing

* Revert temporary fix

* Remake keymap using default let's split map as base. ASCII art not
updated

* Remove non-functioning layers

* Rename folder

* Update ASCII art

* Remove vestiges of ADJUST layer

* Remove nonexistent layer #defines

* Rename folder to avoid confusion

* Add Readme.md

* Formatting

* Description of underscores in layer maps
This commit is contained in:
Hugh 2017-09-06 21:33:52 -04:00 committed by skullydazed
parent 43a1ea3035
commit 0759adeaf1
5 changed files with 206 additions and 1 deletions

View file

@ -0,0 +1,3 @@
ifndef QUANTUM_DIR
include ../../../../Makefile
endif

View file

@ -0,0 +1,51 @@
# Let's Split the Atreus
This keymap is a port of the Atreus keymap to the Let's Split keyboard, using a
similar method of handling layer switches as the `default` keymap.
# Layers
The following tables are the layers as implemented.
### Underscores in Layer
Any underscore represents a key that is mapped to `KC_NO`, or no keypress. The
2x3 block in the middle is like this because the Atreus does not have any keys
there. It has been left blank for the user to add her own special keypresses or
macros that she finds useful to have on that particular layer.
## `_QWERTY`
```c
/*
* q w e r t _ _ y u i o p
* a s d f g _ _ h j k l ;
* z x c v b _ _ n m , . /
* esc tab gui shift bksp ctrl alt space fn - ' enter
*/
```
## `_LOWER`
```c
/*
* ! @ up { } _ _ pgup 7 8 9 *
* # left down right $ _ _ pgdn 4 5 6 +
* [ ] ( ) & _ _ ` 1 2 3 \
* lower insert gui shift bksp ctrl alt space fn . 0 =
*/
```
## `_RAISE`
```c
/*
* insert home up end pgup _ _ up F7 F8 F9 F10
* del left down right pgdn _ _ down F4 F5 F6 F11
* _ volup _ _ reset _ _ F1 F2 F3 F12
* _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
*/
```

View file

@ -0,0 +1,37 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
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_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C
/* Select hand configuration */
#define MASTER_LEFT
// #define _MASTER_RIGHT
// #define EE_HANDS
#endif

View file

@ -0,0 +1,114 @@
#include "lets_split.h"
#include "action_layer.h"
#include "eeconfig.h"
extern keymap_config_t keymap_config;
// 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 _LOWER 1
#define _RAISE 2
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
RAISE
};
// Fillers to make layering more clear
#define _______ KC_TRNS
#define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* q w e r t _ _ y u i o p
* a s d f g _ _ h j k l ;
* z x c v b _ _ n m , . /
* esc tab gui shift bksp ctrl alt space fn - ' enter
*/
[_QWERTY] = KEYMAP( \
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_NO, KC_NO, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_NO, KC_NO, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_NO, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
KC_ESC, KC_TAB, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, LOWER, KC_MINS, KC_QUOT, KC_ENT \
),
/*
* ! @ up { } _ _ pgup 7 8 9 *
* # left down right $ _ _ pgdn 4 5 6 +
* [ ] ( ) & _ _ ` 1 2 3 \
* lower insert gui shift bksp ctrl alt space fn . 0 =
*/
[_LOWER] = KEYMAP( \
KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR, \
KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS, \
KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_NO, KC_NO, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS, \
RAISE, KC_INS, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL \
),
/*
* insert home up end pgup _ _ up F7 F8 F9 F10
* del left down right pgdn _ _ down F4 F5 F6 F11
* _ volup _ _ reset _ _ F1 F2 F3 F12
* _ voldn super shift bksp ctrl alt space L0 prtsc scroll pause
*/
[_RAISE] = KEYMAP( \
KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10, \
KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_NO, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11, \
KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, RESET, KC_NO, KC_NO, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F12, \
KC_NO, KC_VOLD, KC_LGUI, KC_LSFT, KC_BSPC, KC_LCTL, KC_LALT, KC_SPC, QWERTY, KC_PSCR, KC_SLCK, KC_PAUS \
)
};
#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 persistent_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) {
// The value to return
bool return_value = false;
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
persistent_default_layer_set(1UL<<_QWERTY);
}
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
} else {
layer_off(_LOWER);
}
break;
case RAISE:
persistent_default_layer_set(1UL<<_RAISE);
break;
default:
// If the keycode is not handled by any of the other cases, we
// should return true
return_value = true;
break;
}
return return_value;
}

@ -1 +1 @@
Subproject commit d34e8eb83101a95f98892bf68605fe545821f320
Subproject commit 8fce03b3a75c743e5d5c40b9d59c1637c59d22a7