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.
Added dbroqua layout for planck keyboard
- Loading branch information
Showing
1 changed file
with
314 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,314 @@ | ||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, | ||
// this is the style you want to emulate. | ||
|
||
#include "planck.h" | ||
#include "action_layer.h" | ||
#ifdef AUDIO_ENABLE | ||
#include "audio.h" | ||
#endif | ||
#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 _COLEMAK 1 | ||
#define _DVORAK 2 | ||
#define _LOWER 3 | ||
#define _RAISE 4 | ||
#define _PLOVER 5 | ||
#define _ADJUST 16 | ||
|
||
enum planck_keycodes { | ||
QWERTY = SAFE_RANGE, | ||
COLEMAK, | ||
DVORAK, | ||
PLOVER, | ||
LOWER, | ||
RAISE, | ||
BACKLIT, | ||
EXT_PLV | ||
}; | ||
|
||
// Fillers to make layering more clear | ||
#define _______ KC_TRNS | ||
#define XXXXXXX KC_NO | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
/* Qwerty | ||
* ,-----------------------------------------------------------------------------------. | ||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Ctrl | GUI | | Alt |Lower | Space |Raise |AltGr | [ | ] | \ | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_QWERTY] = { | ||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC}, | ||
{KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
{KC_LCTL, KC_LGUI, _______, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_RALT, KC_LBRC, KC_RBRC, KC_BSLS} | ||
}, | ||
|
||
/* Colemak | ||
* ,-----------------------------------------------------------------------------------. | ||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Esc | A | R | S | T | D | H | N | E | I | O | " | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_COLEMAK] = { | ||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC}, | ||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT}, | ||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | ||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
}, | ||
|
||
/* Dvorak | ||
* ,-----------------------------------------------------------------------------------. | ||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | Esc | A | O | E | U | I | D | H | T | N | S | / | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_DVORAK] = { | ||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC}, | ||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH}, | ||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT }, | ||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT} | ||
}, | ||
|
||
/* Lower | ||
* ,-----------------------------------------------------------------------------------. | ||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | | | | | | | Home | PgDwn| PgUp | End | | | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | | | | | | | | | | | |Insert| | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Brite| | | | | | | | | | Del | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_LOWER] = { | ||
{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_HOME,KC_PGDN,KC_PGUP,KC_END,_______,_______}, | ||
{_______, _______, _______, _______, _______, _______, _______,_______,_______,_______, _______, KC_INS}, | ||
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL} | ||
}, | ||
|
||
/* Raise | ||
* ,-----------------------------------------------------------------------------------. | ||
* | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | - | = | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | | | | | | | Left | Down | Up | Right| | ` | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | | | | | | Mute | Vol+ | Vol- | | | |Insert| | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | | | | | | | Prev | Play | Next | Del | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_RAISE] = { | ||
{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_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_GRV}, | ||
{_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, KC_INS}, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_DEL} | ||
}, | ||
|
||
/* Plover layer (http://opensteno.org) | ||
* ,-----------------------------------------------------------------------------------. | ||
* | # | # | # | # | # | # | # | # | # | # | # | # | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | | S | T | P | H | * | * | F | P | L | T | D | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* |TogOut| S | K | W | R | * | * | R | B | G | S | Z | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | Exit | | | A | O | | E | U | | | | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
|
||
[_PLOVER] = { | ||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 }, | ||
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC}, | ||
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT}, | ||
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX} | ||
}, | ||
|
||
/* Adjust (Lower + Raise) | ||
* ,-----------------------------------------------------------------------------------. | ||
* | | Reset| | | | | | | | | | Del | | ||
* |------+------+------+------+------+-------------+------+------+------+------+------| | ||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| | | ||
* |------+------+------+------+------+------|------+------+------+------+------+------| | ||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | | | ||
* |------+------+------+------+------+------+------+------+------+------+------+------| | ||
* | | | | | | | | | | | | | ||
* `-----------------------------------------------------------------------------------' | ||
*/ | ||
[_ADJUST] = { | ||
{_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL}, | ||
{_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______}, | ||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______}, | ||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} | ||
} | ||
|
||
|
||
}; | ||
|
||
#ifdef AUDIO_ENABLE | ||
|
||
float tone_startup[][2] = SONG(STARTUP_SOUND); | ||
float tone_qwerty[][2] = SONG(QWERTY_SOUND); | ||
float tone_dvorak[][2] = SONG(DVORAK_SOUND); | ||
float tone_colemak[][2] = SONG(COLEMAK_SOUND); | ||
float tone_plover[][2] = SONG(PLOVER_SOUND); | ||
float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND); | ||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND); | ||
|
||
float tone_goodbye[][2] = SONG(GOODBYE_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 BACKLIT: | ||
if (record->event.pressed) { | ||
register_code(KC_RSFT); | ||
#ifdef BACKLIGHT_ENABLE | ||
backlight_step(); | ||
#endif | ||
} else { | ||
unregister_code(KC_RSFT); | ||
} | ||
return false; | ||
break; | ||
case PLOVER: | ||
if (record->event.pressed) { | ||
#ifdef AUDIO_ENABLE | ||
stop_all_notes(); | ||
PLAY_NOTE_ARRAY(tone_plover, false, 0); | ||
#endif | ||
layer_off(_RAISE); | ||
layer_off(_LOWER); | ||
layer_off(_ADJUST); | ||
layer_on(_PLOVER); | ||
if (!eeconfig_is_enabled()) { | ||
eeconfig_init(); | ||
} | ||
keymap_config.raw = eeconfig_read_keymap(); | ||
keymap_config.nkro = 1; | ||
eeconfig_update_keymap(keymap_config.raw); | ||
} | ||
return false; | ||
break; | ||
case EXT_PLV: | ||
if (record->event.pressed) { | ||
#ifdef AUDIO_ENABLE | ||
PLAY_NOTE_ARRAY(tone_plover_gb, false, 0); | ||
#endif | ||
layer_off(_PLOVER); | ||
} | ||
return false; | ||
break; | ||
} | ||
return true; | ||
} | ||
|
||
void matrix_init_user(void) { | ||
#ifdef AUDIO_ENABLE | ||
startup_user(); | ||
#endif | ||
} | ||
|
||
#ifdef AUDIO_ENABLE | ||
|
||
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); | ||
} | ||
|
||
#endif |