1
0
Fork 0

[Keymap Removal] Planck and related keymaps. (#22683)

This commit is contained in:
Nick Brassel 2023-12-17 21:54:01 +11:00 committed by GitHub
parent f0e4bc937a
commit 7ea022ba88
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
956 changed files with 0 additions and 85970 deletions

View file

@ -1,48 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4

View file

@ -1,261 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
#include "muse.h"
enum planck_layers {
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_ADJUST
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define SHENT MT(MOD_RSFT, KC_ENT)
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 | , | . | / |shent |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
QK_GESC, 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, SHENT ,
_______,KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* 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] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
QK_GESC, 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, SHENT ,
_______,KC_LCTL, KC_LALT,KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Adjust (Lower + Raise)
* v------------------------RGB CONTROL--------------------v
* ,-----------------------------------------------------------------------------------.
* | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
_______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
}
return true;
}
bool muse_mode = false;
uint8_t last_muse_note = 0;
uint16_t muse_counter = 0;
uint8_t muse_offset = 70;
uint16_t muse_tempo = 50;
bool encoder_update(bool clockwise) {
if (muse_mode) {
if (IS_LAYER_ON(_RAISE)) {
if (clockwise) {
muse_offset++;
} else {
muse_offset--;
}
} else {
if (clockwise) {
muse_tempo+=1;
} else {
muse_tempo-=1;
}
}
} else {
if (clockwise) {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_DOWN);
#else
tap_code(KC_PGDN);
#endif
} else {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_UP);
#else
tap_code(KC_PGUP);
#endif
}
}
return true;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0: {
#ifdef AUDIO_ENABLE
static bool play_sound = false;
#endif
if (active) {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_song); }
#endif
layer_on(_ADJUST);
} else {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_gb_song); }
#endif
layer_off(_ADJUST);
}
#ifdef AUDIO_ENABLE
play_sound = true;
#endif
break;
}
case 1:
if (active) {
muse_mode = true;
} else {
muse_mode = false;
}
}
return true;
}
void matrix_scan_user(void) {
#ifdef AUDIO_ENABLE
if (muse_mode) {
if (muse_counter == 0) {
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
if (muse_note != last_muse_note) {
stop_note(compute_freq_for_midi_note(last_muse_note));
play_note(compute_freq_for_midi_note(muse_note), 0xF);
last_muse_note = muse_note;
}
}
muse_counter = (muse_counter + 1) % muse_tempo;
} else {
if (muse_counter) {
stop_all_notes();
muse_counter = 0;
}
}
#endif
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}

View file

@ -1,2 +0,0 @@
# Abhixec's Layout

View file

@ -1 +0,0 @@
SRC += muse.c

View file

@ -1,32 +0,0 @@
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2

View file

@ -1,318 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
#include "muse.h"
enum planck_layers {
_QWERTY,
_LOWER,
_RAISE,
_NAV,
_PLOVER,
_ADJUST
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
PLOVER,
BACKLIT,
EXT_PLV
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
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| CAPS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
LT(_NAV, 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_CAPS, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End |Pl/Ps |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Prev | Vol- | Vol+ | Next |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, KC_MPLY,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn |Pl/Ps |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Prev | Vol- | Vol+ | Next |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_MPLY,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
),
/* Nav
* ,----------------------------------l-------------------------------------------------.
* | | | | | | | | Pg Dn| Up | Pg Up| | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Mute | Vol-| Vol+ | Pl/Ps| | | Left | Down | Right| | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_NAV] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, _______ , _______,
_______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
),
/* Plover layer (http://opensteno.org)
* ,-----------------------------------------------------------------------------------.
* | # | # | # | # | # | # | # | # | # | # | # | # |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | S | T | P | H | * | * | F | P | L | T | D |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | S | K | W | R | * | * | R | B | G | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Exit | | | A | O | | E | U | | | |
* `-----------------------------------------------------------------------------------'
*/
[_PLOVER] = LAYOUT_planck_grid(
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)
* v------------------------RGB CONTROL--------------------v
* ,-----------------------------------------------------------------------------------.
* | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | |MUSmod|Aud on|Audoff|AGnorm|AGswap|Qwerty| | |Plover| |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
_______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, _______, _______, PLOVER, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
#ifdef KEYBOARD_planck_rev5
writePinLow(E6);
#endif
} else {
unregister_code(KC_RSFT);
#ifdef KEYBOARD_planck_rev5
writePinHigh(E6);
#endif
}
return false;
case PLOVER:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
stop_all_notes();
PLAY_SONG(plover_song);
#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;
case EXT_PLV:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(plover_gb_song);
#endif
layer_off(_PLOVER);
}
return false;
}
return true;
}
bool muse_mode = false;
uint8_t last_muse_note = 0;
uint16_t muse_counter = 0;
uint8_t muse_offset = 70;
uint16_t muse_tempo = 50;
bool encoder_update_user(uint8_t index, bool clockwise) {
if (muse_mode) {
if (IS_LAYER_ON(_RAISE)) {
if (clockwise) {
muse_offset++;
} else {
muse_offset--;
}
} else {
if (clockwise) {
muse_tempo+=1;
} else {
muse_tempo-=1;
}
}
} else {
if (clockwise) {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_DOWN);
#else
tap_code(KC_PGDN);
#endif
} else {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_UP);
#else
tap_code(KC_PGUP);
#endif
}
}
return true;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0: {
#ifdef AUDIO_ENABLE
static bool play_sound = false;
#endif
if (active) {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_song); }
#endif
layer_on(_ADJUST);
} else {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_gb_song); }
#endif
layer_off(_ADJUST);
}
#ifdef AUDIO_ENABLE
play_sound = true;
#endif
break;
}
case 1:
if (active) {
muse_mode = true;
} else {
muse_mode = false;
}
}
return true;
}
void matrix_scan_user(void) {
#ifdef AUDIO_ENABLE
if (muse_mode) {
if (muse_counter == 0) {
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
if (muse_note != last_muse_note) {
stop_note(compute_freq_for_midi_note(last_muse_note));
play_note(compute_freq_for_midi_note(muse_note), 0xF);
last_muse_note = muse_note;
}
}
muse_counter = (muse_counter + 1) % muse_tempo;
} else {
if (muse_counter) {
stop_all_notes();
muse_counter = 0;
}
}
#endif
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}

View file

@ -1,7 +0,0 @@
# Abishalom Planck Layout
Mostly the same as default. Changes:
- Get rid of COLEMAK and DVORAK layers
- Add new layer (NAV) which is accessed by holding the ESC key. This brings up arrow keys in ijkl spots, along with handy media funcions in wasd.
- Move left control to the corner, put caps lock between LCTRL and LGUI
- Adjustments to media keys in bottom right corner

View file

@ -1 +0,0 @@
SRC += muse.c

View file

@ -1,39 +0,0 @@
/* Copyright (C) 2021 Adam Abrams
*
* 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 3 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/>.
*/
#pragma once
// General Configs
#define NO_ACTION_ONESHOT
#define FORCE_NKRO
#define TAPPING_TOGGLE 3
// Mouse Configs
#define MK_3_SPEED
#define MK_MOMENTARY_ACCEL
#define MK_C_OFFSET_1 6
#define MK_C_OFFSET_UNMOD 16
#define MK_C_OFFSET_2 26
// for MK_W lower is faster
#define MK_W_INTERVAL_UNMOD 80
// Tap-Hold Configs
#define TAPPING_TERM 180
#define PERMISSIVE_HOLD
#define HOLD_ON_OTHER_KEY_PRESS
#define HOLD_ON_OTHER_KEY_PRESS_PER_KEY
#define QUICK_TAP_TERM 0
#define QUICK_TAP_TERM_PER_KEY

View file

@ -1,279 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
#include "muse.h"
enum planck_layers {
_QWERTY,
_COLEMAK,
_SIMPLE,
_NUMBER,
_ARROWS,
_CURSOR,
_SYSTEM,
_KBOARD,
_FMWARE
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
SIMPLE,
NORMAL
};
#define ARROWS TT(_ARROWS)
#define CURSOR TT(_CURSOR)
#define SYSTEM TT(_SYSTEM)
#define KBOARD MO(_KBOARD)
#define FMWARE MO(_FMWARE)
#define NUMSPAC LT(_NUMBER, KC_SPC)
#define SHFTESC LSFT_T(KC_ESC)
#define SFTENTR SFT_T(KC_ENT)
#define ALT__A ALT_T(KC_A)
#define ALTSCLN ALT_T(KC_SCLN)
#define ALT__O ALT_T(KC_O)
#define GUI__S GUI_T(KC_S)
#define GUI__L GUI_T(KC_L)
#define GUI__R GUI_T(KC_R)
#define GUI__I GUI_T(KC_I)
#define SFT__D SFT_T(KC_D)
#define SFT__K SFT_T(KC_K)
#define SFT__S SFT_T(KC_S)
#define SFT__E SFT_T(KC_E)
#define CTL__F CTL_T(KC_F)
#define CTL__J CTL_T(KC_J)
#define CTL__T CTL_T(KC_T)
#define CTL__N CTL_T(KC_N)
#define ALTRGHT A(KC_RGHT)
#define ALTLEFT A(KC_LEFT)
#define CTLRGHT C(KC_RGHT)
#define CTLLEFT C(KC_LEFT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* ## Qwerty
| Tab | Q | W | E | R | T | Y | U | I | O | P | -_ |
| Bsp | A(A) | G(S) | S(D) | C(F) | G | H | C(J) | S(K) | G(L) | A(;) | '" |
| ! | Z | X | C | V | B | N | M | , | . | / | Enter|
| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right|
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
KC_BSPC, ALT__A, GUI__S, SFT__D, CTL__F, KC_G, KC_H, CTL__J, SFT__K, GUI__L, ALTSCLN, KC_QUOT,
KC_EXLM, 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, SYSTEM, CURSOR, SHFTESC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* ## Colemak
| Tab | Q | W | F | P | B | J | L | U | Y | ; | -_ |
| Bsp | A(A) | G(R) | S(S) | C(T) | G | M | C(N) | S(E) | G(I) | A(O) | '" |
| ! | Z | X | C | D | V | K | H | , | . | / | Enter|
| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right|
*/
[_COLEMAK] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_MINS,
KC_BSPC, ALT__A, GUI__R, SFT__S, CTL__T, KC_G, KC_M, CTL__N, SFT__E, GUI__I, ALT__O, KC_QUOT,
KC_EXLM, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_LGUI, KC_LALT, SYSTEM, CURSOR, SHFTESC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* ## Simple
| Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp |
| Esc | A | S | D | F | G | H | J | K | L | ; | '" |
| SHFT | Z | X | C | V | B | N | M | , | . | / |S(Ent)|
| CTRL | GUI | ALT |System|Cursor| Spc |N(Spc)|Arrows| Left | Down | Up | Right|
*/
[_SIMPLE] = LAYOUT_planck_grid(
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, SFTENTR,
KC_LCTL, KC_LGUI, KC_LALT, SYSTEM, CURSOR, KC_SPC, NUMSPAC, ARROWS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* ## Number
| | \| | & | = | + | @ | % | # | * | $ | ^ | |
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \` |
| | | [ | { | ( | ~ | ! | ) | } | ] | \ | |
| | | | | | | \\/ | | | | |Normal|
*/
[_NUMBER] = LAYOUT_planck_grid(
_______, KC_PIPE, KC_AMPR, KC_EQL, KC_PLUS, KC_AT, KC_PERC, KC_HASH, KC_ASTR, KC_DLR, KC_CIRC, _______,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
_______, XXXXXXX, KC_LBRC, KC_LCBR, KC_LPRN, KC_TILD, KC_EXLM, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL
),
/* ## Arrows
| | |A(->) | | |A(<-) | | P_Up | P_Up |C(->) | | |
| | | |P_Down| | | Left | Down | Up |Right |C(<-) | |
| | | | |P_Down|A(<-) | | | | | | |
| | | | | | | | \\/ | | | |Normal|
*/
[_ARROWS] = LAYOUT_planck_grid(
_______, _______, ALTRGHT, _______, _______, ALTLEFT, _______, KC_PGUP, KC_PGUP, CTLRGHT, _______, _______,
_______, _______, _______, KC_PGDN, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, CTLLEFT, _______,
_______, _______, _______, _______, KC_PGDN, ALTLEFT, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL
),
/* ## Cursor
| | | |Wh_Dn |M_Btn2| | |Wh_Dn |Wh_Dn | | | |
| |M_Acc2|M_Acc1|Wh_Up |M_Btn1| | M_L |M_Down| M_Up | M_R | | |
| | | | |Wh_Up | | | | | | | |
| | | | | \\/ | | | | | | |Normal|
*/
[_CURSOR] = LAYOUT_planck_grid(
_______, _______, _______, KC_WH_D, KC_BTN2, _______, _______, KC_WH_D, KC_WH_D, _______, _______, _______,
_______, KC_ACL2, KC_ACL1, KC_WH_U, KC_BTN1, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______,
_______, _______, _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, NORMAL
),
/* ## System
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
| | |Pr_Scn|Pr_Scn| | |Brght-| Vol- | Vol+ |Brght+| Mute | |
| | | | | | | | Mute |P_Trac|N_Trac| | Play |
|KBoard| | | \\/ | | | | |Simple|Qwerty|Colemk|Normal|
*/
[_SYSTEM] = LAYOUT_planck_grid(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, XXXXXXX, KC_PSCR, KC_PSCR, XXXXXXX, XXXXXXX, KC_BRID, KC_VOLD, KC_VOLU, KC_BRIU, KC_MUTE, _______,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE, KC_MPRV, KC_MNXT, XXXXXXX, KC_MPLY,
KBOARD, _______, _______, _______, _______, _______, _______, _______, SIMPLE, QWERTY, COLEMAK, NORMAL
),
/* ## KBoard
|------| | | | | | | | | | | |
| | | | | | | Hue- | Sat- | Sat+ | Hue+ |Mode+ | |
| | | | | | | |Mode- |Brght-|Brght+| |RGB_Tg|
| \\/ | | | \\/ | | | | | | | |FMWare|
*/
[_KBOARD] = LAYOUT_planck_grid(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUD, RGB_SAD, RGB_SAI, RGB_HUI, RGB_MOD, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_VAD, RGB_VAI, XXXXXXX, RGB_TOG,
_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, FMWARE
),
/* ## FMWare
| | | |EEPROM|Reset | | | | | | | |
| | |Reset |Debug | | | | | | | | |
|------| | | | | | | | | | | |
| \\/ | | | \\/ | | | | | | | | \\/ |
*/
[_FMWARE] = LAYOUT_planck_grid(
XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, QK_BOOT, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
set_single_persistent_default_layer(_QWERTY);
return true;
case COLEMAK:
set_single_persistent_default_layer(_COLEMAK);
return true;
case SIMPLE:
set_single_persistent_default_layer(_SIMPLE);
return true;
case NORMAL:
layer_clear();
return false;
}
return true;
}
uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case SHFTESC:
case NUMSPAC:
case SFTENTR:
case ALT__A:
case ALTSCLN:
case ALT__O:
case GUI__S:
case GUI__L:
case GUI__R:
case GUI__I:
case SFT__D:
case SFT__K:
case SFT__S:
case SFT__E:
case CTL__F:
case CTL__J:
case CTL__T:
case CTL__N:
return 0;
default:
return QUICK_TAP_TERM;
}
}
bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case ALT__A:
case ALTSCLN:
case ALT__O:
case GUI__S:
case GUI__L:
case GUI__R:
case GUI__I:
case SFT__D:
case SFT__K:
case SFT__S:
case SFT__E:
case CTL__F:
case CTL__J:
case CTL__T:
case CTL__N:
return false;
default:
return false;
}
}

View file

@ -1,89 +0,0 @@
## Normal - Qwerty
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| Tab | Q | W | E | R | T | Y | U | I | O | P | -_ |
| Bsp | A(A) | G(S) | S(D) | C(F) | G | H | C(J) | S(K) | G(L) | A(;) | '" |
| ! | Z | X | C | V | B | N | M | , | . | / | Enter|
| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right|
- The `N` in `N(Spc)` stands for Number layer
- Hold down a layer key to temporarily activate or tap twice to toggle on or off
## Normal - Colemak
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| Tab | Q | W | F | P | B | J | L | U | Y | ; | -_ |
| Bsp | A(A) | G(R) | S(S) | C(T) | G | M | C(N) | S(E) | G(I) | A(O) | '" |
| ! | Z | X | C | D | V | K | H | , | . | / | Enter|
| CTRL | GUI | ALT |System|Cursor|S(Esc)|N(Spc)|Arrows| Left | Down | Up | Right|
- The `N` in `N(Spc)` stands for Number layer
- Hold down a layer key to temporarily activate or tap twice to toggle on or off
## Normal - Simple
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| Tab | Q | W | E | R | T | Y | U | I | O | P | Bsp |
| Esc | A | S | D | F | G | H | J | K | L | ; | '" |
| SHFT | Z | X | C | V | B | N | M | , | . | / |S(Ent)|
| CTRL | GUI | ALT |System|Cursor| Spc |N(Spc)|Arrows| Left | Down | Up | Right|
- The `N` in `N(Spc)` stands for Number layer
- Hold down a layer key to temporarily activate or tap twice to toggle on or off
## Number
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| | \| | & | = | + | @ | % | # | * | $ | ^ | |
| | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \` |
| | | [ | { | ( | ~ | ! | ) | } | ] | \ | |
| | | | | | | \\/ | | | | |Normal|
## Arrows
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| | |A(->) | | |A(<-) | | P_Up | P_Up |C(->) | | |
| | | |P_Down| | | Left | Down | Up |Right |C(<-) | |
| | | | |P_Down|A(<-) | | | | | | |
| | | | | | | | \\/ | | | |Normal|
## Cursor
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| | | |Wh_Dn |M_Btn2| | |Wh_Dn |Wh_Dn | | | |
| |M_Acc2|M_Acc1|Wh_Up |M_Btn1| | M_L |M_Down| M_Up | M_R | | |
| | | | |Wh_Up | | | | | | | |
| | | | | \\/ | | | | | | |Normal|
## System
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
| | |Pr_Scn|Pr_Scn| | |Brght-| Vol- | Vol+ |Brght+| Mute | |
| | | | | | | | Mute |P_Trac|N_Trac| | Play |
|KBoard| | | \\/ | | | | |Simple|Qwerty|Colemk|Normal|
## KBoard
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
|------| | | | | | | | | | | |
| | | | | | | Hue- | Sat- | Sat+ | Hue+ |Mode+ | |
| | | | | | | |Mode- |Brght-|Brght+| |RGB_Tg|
| \\/ | | | \\/ | | | | | | | |FMWare|
## FMWare
|------|------|------|------|------|------|------|------|------|------|------|------|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| | | |EEPROM|Reset | | | | | | | |
| | |Reset |Debug | | | | | | | | |
|------| | | | | | | | | | | |
| \\/ | | | \\/ | | | | | | | | \\/ |

View file

@ -1,13 +0,0 @@
SRC += muse.c
LTO_ENABLE = yes
MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes
NKRO_ENABLE = yes
RGBLIGHT_ENABLE = yes
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
COMMAND_ENABLE = no
AUDIO_ENABLE = no
ENCODER_ENABLE = no
DIP_SWITCH_ENABLE = no

View file

@ -1,612 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// .................................................................... BEAKL EZ
#ifdef BEAKLEZ
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | ; | , | J | . | X | Caps |^Shift| B | D | M | P | Z |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_K, CNTR_TL, CNTR_TR, KC_F, KC_G, KC_R, KC_C, KC_V ,
KC_H, KC_I, KC_E, HOME_A, TD_QUOT, CNTR_HL, CNTR_HR, KC_L, KC_S, KC_T, KC_N, KC_W ,
KC_SCLN, KC_COMM, KC_J, KC_DOT, KC_X, CNTR_BL, CNTR_BR, KC_B, KC_D, KC_M, KC_P, KC_Z ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V),
S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_QUOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W),
KC_SCLN, KC_COMM, S(KC_J), KC_DOT, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | : | ~ | J | ` | X | Caps |^Shift| B | D | M | P | Z |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V),
S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W),
TD_COLN, TD_TILD, S(KC_J), TD_GRV, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | K | ^Alt | ^GUI | F | G | R | C | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | H | I | E | A | " | ↑Alt | ↑GUI | L | S | T | N | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | : | / | J | ? | X | Caps |^Shift| B | D | M | P | Z |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_K), CNTR_TL, CNTR_TR, S(KC_F), S(KC_G), S(KC_R), S(KC_C), S(KC_V),
S(KC_H), S(KC_I), S(KC_E), S(KC_A), TD_DQOT, CNTR_HL, CNTR_HR, S(KC_L), S(KC_S), S(KC_T), S(KC_N), S(KC_W),
TD_COLN, KC_SLSH, S(KC_J), KC_QUES, S(KC_X), CNTR_BL, CNTR_BR, S(KC_B), S(KC_D), S(KC_M), S(KC_P), S(KC_Z),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// ..................................................................... BEAKL 8
#ifdef BEAKL8
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . | ↑Alt | ↑GUI | D | S | T | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_C, KC_R, KC_F, KC_Z ,
KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_D, KC_S, KC_T, KC_N, KC_B ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ~ | ↑Alt | ↑GUI | D | S | T | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | ` | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), TD_TILD, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | X | ^Alt | ^GUI | G | C | R | F | Z |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? | ↑Alt | ↑GUI | D | S | T | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_C), S(KC_R), S(KC_F), S(KC_Z),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_D), S(KC_S), S(KC_T), S(KC_N), S(KC_B),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// .................................................................... BEAKL 8P
#ifdef BEAKL8P
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X ,
KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_S, KC_N, KC_B ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | ! | = | ` | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Caps |^Shift| \ | $ | * | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_F), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_N), S(KC_B),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// ................................................................... BEAKL 8TX
#ifdef BEAKL8TX
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | J | ^Alt | ^GUI | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | ; | " | I | , | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X ,
HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B ,
KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | $ | { | } | J | ^Alt | ^GUI | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | / | < | > | ~ | ↑Alt | ↑GUI | C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | : | ! | = | ` | Caps |^Shift| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | J | ^Alt | ^GUI | G | [ | ] | ^ | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | $ | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | : | " | I | / | Caps |^Shift| \ | * | . | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B),
S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// ................................................................... BEAKL 8TT
#ifdef BEAKL8TT
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | J | Fn | Caps | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . |Cursor| Mouse| C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | ; | " | I | , | Num | Regex| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_J, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_R, KC_F, KC_X ,
HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_S, HOME_N, HOME_B ,
KC_Z, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_W, KC_M, KC_L, KC_P, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_Z), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | $ | { | } | J | Fn | Caps | G | D | R | F | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | / | < | > | ~ |Cursor| Mouse| C | T | S | N | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | : | ! | = | ` | Num | Regex| W | M | L | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_R), S(KC_F), S(KC_X),
S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_S), S(KC_N), S(KC_B),
S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_W), S(KC_M), S(KC_L), S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | J | Fn | Caps | G | [ | ] | ^ | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | B |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | : | " | I | / | Num | Regex| \ | * | . | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_J), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_B),
S(KC_Z), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// .................................................................... BEAKL 10
#ifdef BEAKL10
// ,-----------------------------------------------------------------------------------.
// | Q | H | O | U | X | ^Alt | ^GUI | G | D | N | M | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | Y | I | E | A | . | ↑Alt | ↑GUI | C | S | R | T | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | , | Z | Caps |^Shift| B | P | L | F | K |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_H, KC_O, KC_U, KC_X, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_V ,
KC_Y, KC_I, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_S, KC_R, KC_T, KC_W ,
KC_J, KC_SCLN, TD_QUOT, KC_COMM, KC_Z, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_K ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V),
S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W),
S(KC_J), KC_SCLN, TD_QUOT, KC_COMM, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | [ | ! | ] | X | ^Alt | ^GUI | G | D | N | M | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | Y | < | = | > | ~ | ↑Alt | ↑GUI | C | S | R | T | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | ` | Z | Caps |^Shift| B | P | L | F | K |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), TD_LBRC, KC_EXLM, TD_RBRC, S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_V),
S(KC_Y), TD_LT, KC_EQL, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_S), S(KC_R), S(KC_T), S(KC_W),
S(KC_J), KC_COLN, TD_DQOT, TD_GRV, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | H | O | U | X | ^Alt | ^GUI | G | { | + | } | V |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | Y | I | E | A | ? | ↑Alt | ↑GUI | C | ( | * | ) | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | / | Z | Caps |^Shift| B | P | L | F | K |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_H), S(KC_O), S(KC_U), S(KC_X), CNTR_TL, CNTR_TR, S(KC_G), TD_LCBR, KC_PLUS, TD_RCBR, S(KC_V),
S(KC_Y), S(KC_I), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, S(KC_C), TD_LPRN, KC_ASTR, TD_RPRN, S(KC_W),
S(KC_J), TD_COLN, TD_DQOT, KC_SLSH, S(KC_Z), CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_K),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// ............................................................... BEAKL Mash Up
#ifdef BEAKL810
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | ^Alt | ^GUI | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . | ↑Alt | ↑GUI | C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Caps |^Shift| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X ,
KC_K, KC_H, KC_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, KC_T, KC_R, KC_S, KC_W ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | { | } | $ | ^Alt | ^GUI | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | < | > | ~ | ↑Alt | ↑GUI | C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | ! | = | ` | Caps |^Shift| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), KC_LCBR, KC_RCBR, KC_DLR, CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), S(KC_H), TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_J), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | ^Alt | ^GUI | ^ | [ | ] | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? | ↑Alt | ↑GUI | | | ( | ) | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Caps |^Shift| \ | $ | * | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, KC_CIRC, KC_LBRC, KC_RBRC, S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, S(KC_S), S(KC_W),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_DLR, KC_ASTR, S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// .................................................................... BEAKL MU
#ifdef BEAKLMU
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Fn | Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X ,
HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | $ | { | } | Z | Fn | Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | / | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | _ | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), KC_DLR, KC_LCBR, KC_RCBR, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), KC_SLSH, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_UNDS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Fn | Caps | G | [ | ] | ^ | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | - | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LBRC, KC_RBRC, KC_CIRC, S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_MINS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// .................................................................... BEAKL SP
#ifdef BEAKLSP
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X ,
HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, S(KC_W),
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT
),
#endif
// .................................................................... BEAKL GR
#ifdef BEAKLGR
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Shift| Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | . |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | ; | " | I | , | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Ins | Left | Ent | Bksp | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_Y, KC_O, KC_U, KC_Z, CNTR_TL, CNTR_TR, KC_G, KC_D, KC_N, KC_M, KC_X ,
HOME_K, HOME_H, HOME_E, HOME_A, KC_DOT, CNTR_HL, CNTR_HR, KC_C, HOME_T, HOME_R, HOME_S, HOME_W ,
KC_J, KC_SCLN, TD_QUOT, KC_I, KC_COMM, CNTR_BL, CNTR_BR, KC_B, KC_P, KC_L, KC_F, KC_V ,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_DOT, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_J), KC_SCLN, TD_QUOT, S(KC_I), KC_COMM, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_INS, SP_LEFT, TD_ENT, SP_BSPC, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | [ | ] | Z | Shift| Caps | G | D | N | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | ^ | < | > | ~ |Cursor| Mouse| C | T | R | S | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | ! | = | ` | Num | Regex| B | P | L | F | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | ↑Tab | f() | Ins | Left | _ | Del | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), KC_LBRC, KC_RBRC, S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), S(KC_D), S(KC_N), S(KC_M), S(KC_X),
SM_K, KC_CIRC, TD_LT, TD_GT, TD_TILD, CNTR_HL, CNTR_HR, S(KC_C), S(KC_T), S(KC_R), S(KC_S), S(KC_W),
S(KC_Z), KC_COLN, KC_EXLM, KC_EQL, TD_GRV, CNTR_BL, CNTR_BR, S(KC_B), S(KC_P), S(KC_L), S(KC_F), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, S_TAB, ___fn__, LT_INS, S_LEFT, KC_UNDS, SP_DEL, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | Y | O | U | Z | Shift| Caps | G | { | } | M | X |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | K | H | E | A | ? |Cursor| Mouse| | | ( | ) | $ | W |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | J | : | " | I | / | Num | Regex| \ | * | . | P | V |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Tab | - | Ins | Left | f() | Bksp | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_Y), S(KC_O), S(KC_U), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_G), KC_LCBR, KC_RCBR, S(KC_M), S(KC_X),
S(KC_K), S(KC_H), S(KC_E), S(KC_A), KC_QUES, CNTR_HL, CNTR_HR, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, SM_W ,
S(KC_J), TD_COLN, TD_DQOT, S(KC_I), KC_SLSH, CNTR_BL, CNTR_BR, KC_BSLS, KC_ASTR, KC_DOT, S(KC_P), S(KC_V),
OS_CTL, OS_GUI, OS_ALT, KC_TAB, KC_MINS, LT_INS, S_LEFT, ___fn__, SP_BSPC, S_DOWN, S_UP, S_RGHT
),
#endif

View file

@ -1,124 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// .............................................................. Colemak Mod-DH
#ifdef COLEMAK
// ,-----------------------------------------------------------------------------------.
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | ; |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | D | V | Caps |^Shift| K | H | , | . | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_W, KC_F, KC_P, KC_B, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R, KC_S, KC_T, KC_G, CNTR_HL, CNTR_HR, KC_M, KC_N, KC_E, KC_I, KC_O ,
KC_Z, KC_X, KC_C, KC_D, KC_V, CNTR_BL, CNTR_BR, KC_K, KC_H, KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | D | V | Caps |^Shift| K | H | / | ? | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | F | P | B | ^Alt | ^GUI | J | L | U | Y | : |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | G | ↑Alt | ↑GUI | M | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | D | V | Caps |^Shift| K | H | ~ | ` | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_F), S(KC_P), S(KC_B), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_G), CNTR_HL, CNTR_HR, S(KC_M), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_Z), S(KC_X), S(KC_C), S(KC_D), S(KC_V), CNTR_BL, CNTR_BR, S(KC_K), S(KC_H), TD_TILD, TD_GRV, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif
// ..................................................................... ColemaX
#ifdef COLEMAX
// ,-----------------------------------------------------------------------------------.
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | ; |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | X | V | F | D | P | Caps |^Shift| M | H | , | . | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_W, KC_C, KC_G, KC_Z, CNTR_TL, CNTR_TR, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R, KC_S, KC_T, KC_B, CNTR_HL, CNTR_HR, KC_K, KC_N, KC_E, KC_I, KC_O ,
KC_X, KC_V, KC_F, KC_D, KC_P, CNTR_BL, CNTR_BR, KC_M, KC_H, KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), KC_SCLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | X | V | F | D | P | Caps |^Shift| M | H | / | ? | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), KC_SLSH, KC_QUES, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | C | G | Z | ^Alt | ^GUI | J | L | U | Y | : |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | R | S | T | B | ↑Alt | ↑GUI | K | N | E | I | O |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | X | V | F | D | P | Caps |^Shift| M | H | ~ | ` | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_C), S(KC_G), S(KC_Z), CNTR_TL, CNTR_TR, S(KC_J), S(KC_L), S(KC_U), S(KC_Y), TD_COLN,
S(KC_A), S(KC_R), S(KC_S), S(KC_T), S(KC_B), CNTR_HL, CNTR_HR, S(KC_K), S(KC_N), S(KC_E), S(KC_I), S(KC_O),
S(KC_X), S(KC_V), S(KC_F), S(KC_D), S(KC_P), CNTR_BL, CNTR_BR, S(KC_M), S(KC_H), TD_TILD, TD_GRV, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif

View file

@ -1,41 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// .................................................................. Short Cuts
// .-----------------------------------------------------------------------------------.
// | | | Copy | Paste| | | | | | | | |
// |--------------------------------------------------------------+------+------+------|
// | Undo | Cut | Copy | Paste| | | | | PRIV | PUB | | |
// |-----------------------------------------------------------------------------------|
// | | | Nak | Eot | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | | | | | f() | | | | | |
// | | | | | | | | f() | | | | | see _PLOVER
// '-----------------------------------------------------------------------------------'
[_EDIT] = LAYOUT_planck_grid(
_______, _______, TMCOPY, TMPASTE, _______, _______, _______, _______, _______, _______, _______, _______,
UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, TD_PRIV, TD_SEND, _______, _______,
_______, _______, NAK, EOT, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, ___fn__, ___fn__, _______, _______, _______, _______
),
// ................................................................ Adjust Layer
// ,-----------------------------------------------------------------------------------.
// |Plover| | | | | | | | | | | |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// |Aud on| | | | | | | | | | | |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Reset| | | | | | | | | | | |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | | | | f() | | | | | f() | | | |
// `-----------------------------------------------------------------------------------'
[_ADJUST] = LAYOUT_planck_grid(
PLOVER, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
AU_ON, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, ___fn__, _______, _______, _______, _______, ___fn__, _______, _______, _______
),

View file

@ -1,31 +0,0 @@
// ....................................................................... Audio
void matrix_init_user(void)
{
#ifdef STENO_ENABLE
steno_set_mode(STENO_MODE_BOLT); // or STENO_MODE_GEMINI
#endif
}
#ifdef AUDIO_ENABLE
#ifdef BACKLIGHT_ENABLE
bool led_update_user(led_t led_state)
{
static led_t old_led_state = {0};
_delay_ms(10); // gets rid of tick
if (!is_playing_notes()) {
if (led_state.caps_lock && !old_led_state.caps_lock) {
// if capslock LED is turning on
PLAY_SONG(song_caps_on);
}
else if (!led_state.caps_lock && old_led_state.caps_lock) {
// if capslock LED is turning off
PLAY_SONG(song_caps_off);
}
}
old_led_state = led_state;
return false;
}
#endif
#endif

View file

@ -1,657 +0,0 @@
// .......................................................... Keycode Primitives
// register simple key press
void tap_key(uint16_t keycode)
{
register_code (keycode);
unregister_code(keycode);
}
void shift_key(uint16_t keycode)
{
register_code (KC_LSFT);
tap_key (keycode);
unregister_code(KC_LSFT);
}
#define SHIFT 1
#define NOSHIFT 0
static uint16_t key_timer = 0;
// key press for thumb_layer() and lt_shift() macros
bool key_press(uint8_t shift, uint16_t keycode)
{
if (keycode) {
if (timer_elapsed(key_timer) < TAPPING_TERM) {
if (shift) {
shift_key(keycode);
}
else {
tap_key(keycode);
}
return true;
}
}
return false;
}
// ALT_T, CTL_T, GUI_T, SFT_T for shifted keycodes
void mt_shift(keyrecord_t *record, uint16_t modifier, uint16_t modifier2, uint16_t keycode)
{
if (record->event.pressed) {
key_timer = timer_read();
register_code(modifier);
if (modifier2) {
register_code(modifier2);
}
}
else {
unregister_code(modifier);
if (modifier2) {
unregister_code(modifier2);
}
if (timer_elapsed(key_timer) < TAPPING_TERM) {
shift_key(keycode);
}
key_timer = 0;
}
}
// ................................................................... Mod Masks
// tap dance persistant mods, see process_record_user()
// keyboard_report->mods (?) appears to be cleared by tap dance
static uint8_t mods = 0;
void tap_mods(keyrecord_t *record, uint16_t keycode)
{
if (record->event.pressed) {
mods |= MOD_BIT(keycode);
}
else {
mods &= ~(MOD_BIT(keycode));
}
}
// (un)register modifiers
void modifier(void (*f)(uint8_t))
{
if (mods & MOD_BIT(KC_LCTL)) {
(*f)(KC_LCTL);
}
if (mods & MOD_BIT(KC_LGUI)) {
(*f)(KC_LGUI);
}
if (mods & MOD_BIT(KC_LALT)) {
(*f)(KC_LALT);
}
}
// .................................................... Triple Dance Shift/Layer
static uint8_t dt_shift = 0;
void double_shift(uint16_t keycode, uint8_t layer)
{
tap_key (keycode);
if (DT_SHIFT) {
// set_oneshot_mods(MOD_LSFT);
// layer_on(layer);
layer_on (_SHIFT);
set_oneshot_layer(_SHIFT, ONESHOT_START);
dt_shift = 1;
}
else {
layer_on(layer);
}
}
// tap dance LT (LAYER, KEY) emulation with <KEY><DOWN> -> <KEY><SHIFT> and auto-repeat extensions!
void tap_shift(tap_dance_state_t *state, uint16_t keycode, uint8_t layer)
{
// double tap plus down
if (state->count > 2) {
// double enter shift
if (keycode == KC_ENT) {
tap_key (keycode);
double_shift(keycode, layer);
}
// repeating keycode
else {
register_code(keycode);
}
}
// tap plus down (or double tap): keycode (one shot) shift
else if (state->count > 1) {
double_shift(keycode, layer);
}
// down: shift
else if (state->pressed) {
layer_on(layer);
}
// tap: keycode
else {
modifier(register_code);
tap_key (keycode);
modifier(unregister_code);
}
}
void tap_reset(uint16_t keycode, uint8_t layer)
{
unregister_code(keycode);
if (DT_SHIFT && dt_shift) {
clear_oneshot_layer_state(ONESHOT_PRESSED);
dt_shift = 0;
}
else {
layer_off(layer);
}
}
// augment pseudo LT (_RSHIFT, KC_ENT) handling below for rapid <ENTER><SHIFT> sequences
void enter(tap_dance_state_t *state, void *user_data)
{
tap_shift(state, KC_ENT, _RSHIFT);
}
void enter_reset(tap_dance_state_t *state, void *user_data)
{
tap_reset(KC_ENT, _RSHIFT);
}
// augment pseudo LT (_LSHIFT, KC_SPC) handling below for rapid <SPACE><SHIFT> sequences
void space(tap_dance_state_t *state, void *user_data)
{
tap_shift(state, KC_SPC, _LSHIFT);
}
void space_reset(tap_dance_state_t *state, void *user_data)
{
tap_reset(KC_SPC, _LSHIFT);
}
// ......................................................... Triple Dance Insert
void double_max(uint8_t count, uint8_t shift, uint16_t keycode)
{
if (shift) {
shift_key(keycode);
if (count > 1) {
shift_key(keycode);
}
}
else {
tap_key(keycode);
if (count > 1) {
tap_key(keycode);
}
}
}
void colon(tap_dance_state_t *state, void *user_data)
{
if (state->count > 2) {
tap_key (KC_SPC);
shift_key(KC_SCLN);
shift_key(KC_SCLN);
tap_key (KC_SPC);
}
else {
double_max(state->count, SHIFT, KC_SCLN);
}
reset_tap_dance(state);
}
void eql(tap_dance_state_t *state, void *user_data)
{
if (state->count > 2) {
tap_key(KC_SPC);
tap_key(KC_SLSH);
tap_key(KC_EQL);
tap_key(KC_SPC);
}
else {
double_max(state->count, NOSHIFT, KC_EQL);
}
reset_tap_dance(state);
}
void greater(tap_dance_state_t *state, void *user_data)
{
if (state->count > 2) {
tap_key (KC_SPC);
tap_key (KC_MINS);
shift_key(KC_DOT);
tap_key (KC_SPC);
}
else {
double_max(state->count, SHIFT, KC_DOT);
}
reset_tap_dance(state);
}
void lesser(tap_dance_state_t *state, void *user_data)
{
if (state->count > 2) {
tap_key (KC_SPC);
shift_key(KC_COMM);
tap_key (KC_MINS);
tap_key (KC_SPC);
}
else {
double_max(state->count, SHIFT, KC_COMM);
}
reset_tap_dance(state);
}
void tilde(tap_dance_state_t *state, void *user_data)
{
// double tap plus down: repeating keycode
if (state->count > 2) {
register_code(KC_LSFT);
register_code(KC_GRV);
}
// tap: keycode
else {
shift_key(KC_GRV);
// double tap: unix home directory
if (state->count > 1) {
tap_key(KC_SLSH);
}
}
}
void tilde_reset(tap_dance_state_t *state, void *user_data)
{
unregister_code(KC_GRV);
unregister_code(KC_LSFT);
}
// ............................................................. Tap Dance Pairs
// tap dance shift rules
#define S_NEVER 0
#define S_SINGLE 1
#define S_DOUBLE 2
#define S_ALWAYS S_SINGLE | S_DOUBLE
void symbol_pair(uint8_t shift, uint16_t left, uint16_t right)
{
if (shift & S_DOUBLE) {
shift_key(left);
shift_key(right);
}
else {
tap_key(left);
tap_key(right);
}
}
#define CLOSE 1
// tap dance symbol pairs
void tap_pair(tap_dance_state_t *state, uint8_t shift, uint16_t left, uint16_t right, uint16_t modifier, uint8_t close)
{
// triple tap: left right with cursor between symbol pair a la vim :-)
if (state->count > 2) {
symbol_pair(shift, left, right);
tap_key (KC_LEFT);
}
// double tap: left right
else if (state->count > 1) {
symbol_pair(shift, left, right);
}
// down: modifier
else if (state->pressed) {
if (modifier) {
register_code(modifier);
}
}
// tap: left (close: right)
else {
if (shift & S_SINGLE) {
shift_key(close ? right : left);
}
else {
tap_key(close ? right : left);
}
}
if (!modifier) {
reset_tap_dance(state);
}
}
void doublequote(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_QUOT, KC_QUOT, 0, 0);
}
void grave(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_NEVER, KC_GRV, KC_GRV, 0, 0);
}
void lbrace(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, 0);
}
void lcurly(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, 0);
}
void lparen(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_9, KC_0, KC_LCTL, 0);
}
void lparen_reset(tap_dance_state_t *state, void *user_data)
{
unregister_code(KC_LCTL);
}
void quote(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_NEVER, KC_QUOT, KC_QUOT, 0, 0);
}
void rangle(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_COMM, KC_DOT, 0, CLOSE);
}
void rbrace(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_NEVER, KC_LBRC, KC_RBRC, 0, CLOSE);
}
void rcurly(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_LBRC, KC_RBRC, 0, CLOSE);
}
void rparen(tap_dance_state_t *state, void *user_data)
{
tap_pair(state, S_ALWAYS, KC_9, KC_0, 0, CLOSE);
}
void rparen_reset(tap_dance_state_t *state, void *user_data)
{
unregister_code(KC_LCTL);
}
// ............................................................ Tap Dance Insert
void comma(tap_dance_state_t *state, void *user_data)
{
tap_key(KC_COMM);
if (state->count > 1) {
tap_key(KC_SPC);
}
reset_tap_dance(state);
}
void dot(tap_dance_state_t *state, void *user_data)
{
if (state->count > 1) {
shift_key(KC_COLN);
}
else {
tap_key(KC_DOT);
}
reset_tap_dance(state);
}
// compile time macro string, see functions/hardware planck script
void private(tap_dance_state_t *state, void *user_data)
{
if (state->count > 1) {
#ifdef PRIVATE_STRING
#include "private_string.h"
#endif
}
reset_tap_dance(state);
}
// config.h defined string
void send(tap_dance_state_t *state, void *user_data)
{
if (state->count > 1) {
SEND_STRING(PUBLIC_STRING);
}
reset_tap_dance(state);
}
// .......................................................... Tap Dance One Shot
void caps(tap_dance_state_t *state, void *user_data)
{
if (state->count > 1) {
tap_key(KC_CAPS);
}
else {
set_oneshot_mods(MOD_LSFT);
register_code (KC_LSFT); // on hold down
}
}
void caps_reset(tap_dance_state_t *state, void *user_data)
{
unregister_code(KC_LSFT);
}
// ................................................................... Tap Dance
tap_dance_action_t tap_dance_actions[] = {
[_CAPS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, caps, caps_reset)
,[_COLN] = ACTION_TAP_DANCE_FN (colon)
,[_COMM] = ACTION_TAP_DANCE_FN (comma)
,[_DOT] = ACTION_TAP_DANCE_FN (dot)
,[_DQOT] = ACTION_TAP_DANCE_FN (doublequote)
,[_ENT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, enter, enter_reset)
,[_EQL] = ACTION_TAP_DANCE_FN (eql)
,[_GRV] = ACTION_TAP_DANCE_FN (grave)
,[_GT] = ACTION_TAP_DANCE_FN (greater)
,[_LBRC] = ACTION_TAP_DANCE_FN (lbrace)
,[_LCBR] = ACTION_TAP_DANCE_FN (lcurly)
,[_LPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lparen, lparen_reset)
,[_LT] = ACTION_TAP_DANCE_FN (lesser)
,[_PRIV] = ACTION_TAP_DANCE_FN (private)
,[_QUOT] = ACTION_TAP_DANCE_FN (quote)
,[_RBRC] = ACTION_TAP_DANCE_FN (rbrace)
,[_RCBR] = ACTION_TAP_DANCE_FN (rcurly)
,[_RNGL] = ACTION_TAP_DANCE_FN (rangle)
,[_RPRN] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rparen, rparen_reset)
,[_SEND] = ACTION_TAP_DANCE_FN (send)
,[_SPC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space, space_reset)
,[_TILD] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tilde, tilde_reset)
};
// .............................................................. Dynamic Layers
#define LEFT 1
#define RIGHT 2
static uint8_t thumb = 0;
// LEFT (KC_SPC, S(KC_BSLS)), RIGHT (KC_LEFT, S(KC_LEFT)) opposite thumb combinations, see process_record_user()
// up, up -> _BASE
// up, down -> _SYMBOL
// down, up -> _NUMBER
// down, down -> _MOUSE // see layer keycodes that raise mouse layer
#define THUMBS_DOWN _MOUSE // layer
static uint8_t overlayer = 0;
// left right thumb layer combinations
void thumb_layer(keyrecord_t *record, uint8_t side, uint8_t shift, uint16_t keycode, uint8_t thumb_dn_layer, uint8_t thumb_up_layer)
{
if (record->event.pressed) {
// layer_on via tap_layer(), see process_record_user()
key_timer = timer_read();
thumb = thumb | side;
}
else {
layer_off(thumb_dn_layer);
// opposite thumb_layer() thumb may have switched effective layer!
if (overlayer) {
layer_off(overlayer);
overlayer = 0;
}
if (!key_press(shift, keycode)) {
layer_off(THUMBS_DOWN); // both thumbs needed
// opposite thumb down? see left right combination layer table above
if (thumb & (side == LEFT ? RIGHT : LEFT)) {
layer_on(thumb_up_layer);
overlayer = thumb_up_layer;
}
}
clear_mods();
thumb = thumb & ~side;
key_timer = 0;
}
}
// #ifdef STENO_ENABLE
// // LT for steno keycode
// void stn_layer(keyrecord_t *record, uint16_t keycode, uint8_t layer)
// {
// if (record->event.pressed) {
// key_timer = timer_read();
// if (keycode) {
// process_steno(keycode, record);
// }
// layer_on(layer);
// }
// else {
// layer_off(layer);
// if (keycode) {
// if (timer_elapsed(key_timer) < TAPPING_TERM) {
// process_steno(keycode, record);
// }
// else {
// // clear pressed state (request push of updated) process_steno.c and .h
// // steno_clear_state();
// }
// }
// key_timer = 0;
// }
// }
// #endif
// LT for S(keycode)
void lt_shift(keyrecord_t *record, uint16_t keycode, uint8_t layer)
{
if (record->event.pressed) {
key_timer = timer_read();
layer_on(layer);
}
else {
layer_off(layer);
// for shifted keycodes, hence, LT_SHIFT
key_press(SHIFT, keycode);
clear_mods();
key_timer = 0;
}
}
// set layer asap to overcome macro latency errors, notably tap dance and LT usage
// this routine inexplicably (?) sets layer_on() faster than can be done in thumb_layer()
void tap_layer(keyrecord_t *record, uint8_t layer)
{
if (record->event.pressed) {
layer_on(layer);
}
else {
layer_off(layer);
}
}
// ..................................................................... Keymaps
// void persistant_default_layer_set(uint16_t default_layer)
// {
// eeconfig_update_default_layer(default_layer);
// default_layer_set (default_layer);
// }
void clear_layers(void)
{
uint8_t layer;
for (layer = 0; layer < _END_LAYERS; layer++) {
layer_off(layer);
}
}
#ifdef CENTER_TT
static uint16_t tt_keycode = 0; // current TT keycode
void clear_tt(void)
{
if (tt_keycode == KC_CAPS) {
tap_key(KC_CAPS); // clear capslock
}
tt_keycode = 0;
clear_layers();
set_single_persistent_default_layer(_BASE);
}
#endif
// txbolt plover run state
static uint8_t plover = 0;
void toggle_plover(uint8_t state)
{
if (plover != state) {
#ifdef PLOVER_KEYBIND
#include "plover_keybind.h"
#endif
plover = state;
}
}
void base_layer(void)
{
#ifdef AUDIO_ENABLE
if (plover) {
PLAY_SONG(song_plover_gb);
}
else {
PLAY_SONG(song_qwerty);
}
#endif
clear_layers();
set_single_persistent_default_layer(_BASE);
toggle_plover(0);
}
void steno(keyrecord_t *record)
{
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(song_plover);
#endif
clear_layers();
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);
if (!plover) {
toggle_plover(1);
}
}
}
void steno_exit(keyrecord_t *record)
{
if (record->event.pressed) {
base_layer();
toggle_plover(0);
}
}

View file

@ -1,86 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ......................................................... Number Keypad Layer
#ifdef SHIFT_SYMBOLS
// .-----------------------------------------------------------------------------------.
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
// |-----------------------------------------------------------------------------------|
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
// |-----------------------------------------------------------------------------------|
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | 0 | = | | | |
// | | | | f() | | | | = | 0 | | | |
// '-----------------------------------------------------------------------------------'
[_NUMBER] = LAYOUT_planck_grid(
_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS,
_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS,
#ifdef THUMB_0
___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___
#else
___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___
#endif
),
#else
// .-----------------------------------------------------------------------------------.
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
// |-----------------------------------------------------------------------------------|
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
// |-----------------------------------------------------------------------------------|
// | | # | X | G | | | | , | 1 | 2 | 3 | + |
// |-----------------------------------------------------------------------------------|
// | | f() | | 0 | = | |
// | | f() | | = | 0 | |
// '-----------------------------------------------------------------------------------'
[_NUMBER] = LAYOUT_planck_grid(
_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
OS_GUI, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS,
_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS,
#ifdef THUMB_0
___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___
#else
___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___
#endif
),
// .-----------------------------------------------------------------------------------.
// | | | | | | | | { | & | ? | : | } |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | ( | $ | % | ^ | ) |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | [ | < | ~ | > | ] |
// |-----------------------------------------------------------------------------------|
// | | f() | | \ | | | |
// '-----------------------------------------------------------------------------------'
[_NUMSYM] = LAYOUT_planck_grid(
_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR,
___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN,
_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC,
___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___
),
#endif
// ............ .................................................. Function Keys
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | F7 | F8 | F9 | F12 |
// |-----------------------------------------------------------------------------------|
// | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | F1 | F2 | F3 | F10 |
// |-----------------------------------------------------------------------------------|
// | | | | | | f() | | + | | | | |
// | | | | | f() | | | + | | | | | see _PLOVER
// '-----------------------------------------------------------------------------------'
[_FNCKEY] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 ,
OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 ,
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 ,
_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______
),

View file

@ -1,86 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ......................................................... Number Keypad Layer
#ifdef SHIFT_SYMBOLS
// .-----------------------------------------------------------------------------------.
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
// |-----------------------------------------------------------------------------------|
// | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - |
// |-----------------------------------------------------------------------------------|
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | 0 | = | | | |
// | | | | f() | | | | = | 0 | | | |
// '-----------------------------------------------------------------------------------'
[_NUMBER] = {
{_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
{OS_CTL, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS},
{_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
#ifdef THUMB_0
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
#else
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
#endif
},
#else
// .-----------------------------------------------------------------------------------.
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
// |-----------------------------------------------------------------------------------|
// | Ctrl | C | B | A | | | | . | 4 | 5 | 6 | - |
// |-----------------------------------------------------------------------------------|
// | | # | X | G | | | | , | 1 | 2 | 3 | + |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | 0 | = | | | |
// | | | | f() | | | | = | 0 | | | |
// '-----------------------------------------------------------------------------------'
[_NUMBER] = {
{_______, KC_F, MT_E, KC_D, _______, _______, _______, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR},
{OS_CTL, GT_C, AT_B, LT_A, _______, _______, _______, KC_DOT, KC_4, KC_5, KC_6, KC_MINS},
{_______, KC_HASH, MT_X, S(KC_G), _______, _______, _______, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS},
#ifdef THUMB_0
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_0, LT_EQL, ___x___, ___x___, ___x___},
#else
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_EQL, LT_0, ___x___, ___x___, ___x___},
#endif
},
// .-----------------------------------------------------------------------------------.
// | | | | | | | | { | & | ? | : | } |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | ( | $ | % | ^ | ) |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | [ | < | ~ | > | ] |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | \ | | | | | |
// '-----------------------------------------------------------------------------------'
[_NUMSYM] = {
{_______, _______, _______, ___x___, _______, _______, _______, TD_LCBR, KC_AMPR, KC_QUES, KC_COLN, KC_RCBR},
{___x___, ___x___, ___x___, ___fn__, _______, _______, _______, TD_LPRN, KC_DLR, KC_PERC, KC_CIRC, KC_RPRN},
{_______, _______, _______, ___x___, _______, _______, _______, TD_LBRC, KC_LT, KC_TILD, KC_GT, KC_RBRC},
{___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___, KC_BSLS, KC_PIPE, ___x___, ___x___, ___x___},
},
#endif
// ............ .................................................. Function Keys
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | F7 | F8 | F9 | F12 |
// |-----------------------------------------------------------------------------------|
// | Ctrl | GUI | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | F1 | F2 | F3 | F10 |
// |-----------------------------------------------------------------------------------|
// | | | | | | f() | | + | | | | |
// | | | | | f() | | | + | | | | | see _PLOVER
// '-----------------------------------------------------------------------------------'
[_FNCKEY] = {
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 },
{OS_CTL, OS_GUI, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 },
{_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 },
{_______, _______, _______, _______, ___fn__, ___fn__, _______, KC_PLUS, _______, _______, _______, _______},
},

View file

@ -1,9 +0,0 @@
// simple window manager specific plover keybind hook
// toggle plover application, see herbstluftwm/config/appbinds
register_code (KC_LGUI);
register_code (KC_LCTL);
tap_key (KC_EQL);
unregister_code(KC_LCTL);
unregister_code(KC_LGUI);

View file

@ -1,14 +0,0 @@
// ................................................................ Audio Sounds
#ifdef AUDIO_ENABLE
float song_startup [][2] = SONG(STARTUP_SOUND);
float song_colemak [][2] = SONG(COLEMAK_SOUND);
float song_qwerty [][2] = SONG(QWERTY_SOUND);
float song_plover [][2] = SONG(PLOVER_SOUND);
float song_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
float song_caps_on [][2] = SONG(CAPS_LOCK_ON_SOUND);
float song_caps_off [][2] = SONG(CAPS_LOCK_OFF_SOUND);
float music_scale [][2] = SONG(MUSIC_SCALE_SOUND);
float song_goodbye [][2] = SONG(GOODBYE_SOUND);
#endif

View file

@ -1,39 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ...................................................................... Plover
#ifdef STENO_ENABLE
// ,-----------------------------------------------------------------------------------.
// | # | # | # | # | # | # | # | # | # | # | # | # |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | Base | S | T | P | H | * | * | F | P | L | T | D |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Base | S | K | W | R | * | * | R | B | G | S | Z |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | | A | O | E | U | |
// `-----------------------------------------------------------------------------------'
[_PLOVER] = LAYOUT_planck_grid(
STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC ,
BASE1, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR ,
BASE2, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR ,
_______, _______, _______, PS_STNA, PS_STNO, _______, _______, PS_STNE, PS_STNU, _______, _______, _______
),
#else
// ,-----------------------------------------------------------------------------------.
// | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | Base | S | T | P | H | * | * | F | P | L | T | D |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Base | S | K | W | R | * | * | R | B | G | S | Z |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | | A | O | E | U | |
// `-----------------------------------------------------------------------------------'
[_PLOVER] = LAYOUT_planck_grid(
KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 ,
BASE1, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
BASE2, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
_______, _______, _______, LT_C, LT_V, _______, _______, LT_N, LT_M, _______, _______, _______
),
#endif

View file

@ -1,75 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ..................................................... Symbol Navigation Layer
#ifdef SHIFT_SYMBOLS
// .-----------------------------------------------------------------------------------.
// | | ~ | * | & | | | | | Home | Up | End | PgUp |
// |-----------------------------------------------------------------------------------|
// | GUI | ^ | % | $ | | | | | Left | Down | Right| PgDn |
// |-----------------------------------------------------------------------------------|
// | | # | @ | ! | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | |Adjust| \ | | f() | |
// '-----------------------------------------------------------------------------------'
[_SYMBOL] = LAYOUT_planck_grid(
_______, KC_TILD, KC_ASTR, KC_AMPR, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP,
OS_GUI, SM_CIRC, SM_PERC, SM_DLR, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
_______, KC_HASH, KC_AT, KC_EXLM, _______, ___x___, ___x___, _______, _______, _______, _______, _______,
___x___, ___x___, ___x___, ADJUST, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___
),
#else
// .-----------------------------------------------------------------------------------.
// | { | . | * | & | } | | | | Home | Up | End | PgUp |
// |-----------------------------------------------------------------------------------|
// | ( | ^ | % | $ | ) | | | | Left | Down | Right| PgDn |
// |-----------------------------------------------------------------------------------|
// | [ | # | @ | ! | ] | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | | \ | | f() | |
// '-----------------------------------------------------------------------------------'
[_SYMBOL] = LAYOUT_planck_grid(
KC_LCBR, KC_DOT, KC_ASTR, KC_AMPR, TD_RCBR, _______, _______, _______, KC_HOME, KC_UP, KC_END, KC_PGUP,
SM_LPRN, SM_CIRC, SM_PERC, SM_DLR, TD_RPRN, _______, _______, _______, LT_LFTX, KC_DOWN, KC_RGHT, KC_PGDN,
KC_LBRC, KC_HASH, KC_AT, KC_EXLM, TD_RBRC, _______, _______, _______, _______, _______, _______, _______,
___x___, ___x___, ___x___, SL_PIPE, LT_BSLS, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___
),
// .-----------------------------------------------------------------------------------.
// | | ? | + | ~ | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | < | = | > | | | | | f() | | | |
// |-----------------------------------------------------------------------------------|
// | | 3 | 2 | 1 | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | | | f() | |
// '-----------------------------------------------------------------------------------'
[_SYMREG] = LAYOUT_planck_grid(
___x___, KC_QUES, KC_PLUS, KC_TILD, ___x___, _______, _______, _______, ___x___, ___x___, ___x___, ___x___,
___x___, KC_LT, KC_EQL, TD_RNGL, ___x___, _______, _______, _______, ___fn__, ___x___, ___x___, ___x___,
___x___, KC_3, KC_2, KC_1, ___x___, _______, _______, _______, _______, _______, _______, _______,
___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___fn__, ___x___, ___x___, ___x___
),
#endif
// ............................................................... Mouse Actions
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | Left | Up | Right| Up |
// |-----------------------------------------------------------------------------------|
// | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | f() | | f() | |
// '-----------------------------------------------------------------------------------'
[_MOUSE] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U,
_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______,
_______, _______, _______, _______, ___fn__, _______, _______, _______, ___fn__, _______, _______, _______
),

View file

@ -1,49 +0,0 @@
// tap dance keys
enum tap_dance {
_CAPS = 0
,_COLN
,_COMM
,_DOT
,_DQOT
,_ENT
,_EQL
,_GRV
,_GT
,_LBRC
,_LCBR
,_LPRN
,_LT
,_PRIV
,_QUOT
,_RBRC
,_RCBR
,_RNGL
,_RPRN
,_SEND
,_SPC
,_TILD
};
#define TD_CAPS TD(_CAPS)
#define TD_COLN TD(_COLN)
#define TD_COMM TD(_COMM)
#define TD_DOT TD(_DOT)
#define TD_DQOT TD(_DQOT)
#define TD_ENT TD(_ENT)
#define TD_EQL TD(_EQL)
#define TD_GRV TD(_GRV)
#define TD_GT TD(_GT)
#define TD_LBRC TD(_LBRC)
#define TD_LCBR TD(_LCBR)
#define TD_LPRN TD(_LPRN)
#define TD_LT TD(_LT)
#define TD_PRIV TD(_PRIV) // compile time macro string, provided in private_string.h
#define TD_QUOT TD(_QUOT)
#define TD_RBRC TD(_RBRC)
#define TD_RCBR TD(_RCBR)
#define TD_RNGL TD(_RNGL)
#define TD_RPRN TD(_RPRN)
#define TD_SEND TD(_SEND) // config.h defined macro string
#define TD_SPC TD(_SPC) // see process_record_user() for extended handling of Spc
#define TD_TILD TD(_TILD)

View file

@ -1,102 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ......................................................... Number Keypad Layer
// .-----------------------------------------------------------------------------------.
// | | F | E | D | | | | / | 7 | 8 | 9 | * |
// |-----------------------------------------------------------------------------------|
// | GUI | C | B | A | | | | . | 4 | 5 | 6 | - |
// |-----------------------------------------------------------------------------------|
// | | # | G | \ | | | | , | 1 | 2 | 3 | + |
// |-----------------------------------------------------------------------------------|
// | | | | f() | Space| | | 0 | = | | | |
// | | | | f() | Space| | | = | 0 | | | |
// '-----------------------------------------------------------------------------------'
[_TTNUMBER] = LAYOUT_planck_grid(
_______, KC_F, MT_E, KC_D, _______, ___x___, ___x___, KC_SLSH, KC_7, KC_8, KC_9, KC_ASTR,
OS_GUI, GT_C, AT_B, ST_A, _______, ___x___, ___x___, TD_DOT, KC_4, KC_5, KC_6, KC_MINS,
_______, KC_HASH, SM_G, KC_BSLS, _______, ___x___, ___x___, TD_COMM, KC_1, KC_2, KC_3, KC_PLUS,
#ifdef THUMB_0
_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_0, LT_EQL, _______, _______, _______
#else
_______, _______, _______, TT_ESC, KC_SPC, _______, _______, KC_EQL, LT_0, _______, _______, _______
#endif
),
// ............ .................................................. Function Keys
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | F7 | F8 | F9 | F12 |
// |-----------------------------------------------------------------------------------|
// | GUI | Ctrl | Alt | Shift| | | | | F4 | F5 | F6 | F11 |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | F1 | F2 | F3 | F10 |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | + | | | | |
// '-----------------------------------------------------------------------------------'
[_TTFNCKEY] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F7, KC_F8, KC_F9, KC_F12 ,
OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_F4, KC_F5, KC_F6, KC_F11 ,
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_F1, KC_F2, KC_F3, KC_F10 ,
_______, _______, _______, TT_ESC, _______, _______, _______, KC_PLUS, _______, _______, _______, _______
),
// ....................................................................... Regex
// ,-----------------------------------------------------------------------------------.
// | | ~ | { | } | & | | | % | [ | ] | @ | |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | | ^ | < | > | ? | | | | | ( | ) | $ | |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | | : | ! | = | / | | | \ | * | . | # | |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | | | | f() | - | | | + | Space| | | |
// `-----------------------------------------------------------------------------------'
[_TTREGEX] = LAYOUT_planck_grid(
___x___, KC_TILD, KC_LCBR, KC_RCBR, KC_AMPR, ___x___, ___x___, KC_PERC, KC_LBRC, KC_RBRC, KC_AT, ___x___,
___x___, KC_CIRC, KC_LT, KC_GT, KC_QUES, ___x___, ___x___, KC_PIPE, KC_LPRN, KC_RPRN, KC_DLR, ___x___,
___x___, KC_COLN, KC_EXLM, KC_EQL, KC_SLSH, ___x___, ___x___, KC_BSLS, KC_ASTR, KC_DOT, KC_HASH, ___x___,
_______, _______, _______, TT_ESC, KC_MINS, _______, _______, KC_PLUS, KC_SPC, _______, _______, _______
),
// ............................................................ Navigation Layer
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | Home | Up | End | PgUp |
// |-----------------------------------------------------------------------------------|
// | GUI | Ctrl | Alt | Shift| | | | | Left | Down | Right| PgDn |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | | | | | |
// '-----------------------------------------------------------------------------------'
[_TTCURSOR] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_HOME, KC_UP, KC_END, KC_PGUP,
OS_GUI, OS_CTL, OS_ALT, OS_SFT, _______, ___x___, ___x___, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______,
_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______
),
// ............................................................... Mouse Actions
// .-----------------------------------------------------------------------------------.
// | | | | | | | | | Left | Up | Right| Up |
// |-----------------------------------------------------------------------------------|
// | | Btn3 | Btn2 | Btn1 | | | | | Left | Down | Right| Down |
// |-----------------------------------------------------------------------------------|
// | | | | | | | | | | | | |
// |-----------------------------------------------------------------------------------|
// | | | | f() | | | | | | | | |
// '-----------------------------------------------------------------------------------'
[_TTMOUSE] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, ___x___, ___x___, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U,
_______, KC_BTN3, KC_BTN2, KC_BTN1, _______, ___x___, ___x___, _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
_______, _______, _______, _______, _______, ___x___, ___x___, _______, _______, _______, _______, _______,
_______, _______, _______, TT_ESC, _______, _______, _______, _______, _______, _______, _______, _______
),

View file

@ -1,46 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
// tap dance key press termination interval
#define TAPPING_TERM 250
// smooth mouse motion
// #define MOUSEKEY_INTERVAL 20
// #define MOUSEKEY_DELAY 0
// #define MOUSEKEY_TIME_TO_MAX 60
// #define MOUSEKEY_MAX_SPEED 7
// #define MOUSEKEY_WHEEL_DELAY 0
// compile time macro string, see functions/hardware planck script (undefine otherwise)
#define PRIVATE_STRING
// compile time macro string, must be in quotes
#define PUBLIC_STRING ":%s/arch=(.*)/arch=('any')\n"
// thumb key tap-shift() double tap: one shot shift (0) off (1) on
#define DT_SHIFT 1
// number layer 0 position KEYPAD_0, THUMB_0
#define THUMB_0
// home block shift symbol clustes defined (no overlays required for extended symbols, undefine otherwise)
#define SHIFT_SYMBOLS
// center column TT assignments (undefine for OSM chords)
#define CENTER_TT
#define TAPPING_TOGGLE 1
// home row modifiers
#define HOME_MODS
// fix dual function timing
#define PERMISSIVE_HOLD
// layout ADNW*, BEAKL*, COLEKA*, QWERTY (default)
#define BEAKLGR
// sync app with window manager keybind hook defined in plover_keybind.h
#define PLOVER_KEYBIND
#endif

View file

@ -1,479 +0,0 @@
// 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.
//
// To flash planck firmware
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
// Reset keyboard or press hw reset button on base (hole)
//
// cd qmk_firmware/keyboards/planck
// sudo make KEYMAP=sdothum dfu
//
// sudo make clean (good practice before flashing)
// sudo make KEYMAP=sdothum (to compile check)
//
// Package requirements (for arch linux)
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
// avr-gcc-atmel
// avr-libc-atmel
// dfu-programmer
//
// Notes
// ▔▔▔▔▔
// ** E R G O W I D E S P L I T ** Layout
//
// Autocompletion tap dance key pairs (),[],{} are available from the
// number/symbol layer, as well as, numerous (un)shift key values
//
// The navigation pad provides a single hand right thumb activated cluster
// with left hand modifiers
//
// #define PRIVATE_STRING includes private_string.h, a user defined code
// block for the PRIV tap dance e.g. SEND_STRING("secret messape"),
// see function private()
//
// Modifier clusters
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
// The num and sym keys together access the navigation pad layer
//
// ,-----------------------------------------------------------------------------------.
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
//
// Hint
// ▔▔▔▔
// For sculpted keycaps such as Cherry or OEM profile, reverse the Alt, Num,
// Shift, Shift, Nav, Sym keycaps for more ergonomic thumb orientation and
// actuation
//
// Code
// ▔▔▔▔
// This source is shamelessly based on the "default" planck layout
//
// #ifdef/#endif block structures are not indented, as syntax highlighting
// in vim is sufficient for identification
//
// c++ commenting style is used throughout
//
// Change history
// ▔▔▔▔▔▔▔▔▔▔▔▔▔▔
// See http://thedarnedestthing.com/planck%20constant
// See http://thedarnedestthing.com/planck%20done
// === N O T E ===
//
// sudo CPATH=<keymap.c directory>/common make ...
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers {
_BASE = 0
,_SHIFT
,_LSHIFT
,_RSHIFT
,_PLOVER
,_NUMBER
,_SYMBOL
,_FNCKEY
,_MOUSE
#ifdef CENTER_TT
,_TTNUMBER
,_TTREGEX
,_TTFNCKEY
,_TTCURSOR
,_TTMOUSE
#endif
#ifndef SHIFT_SYMBOLS
,_NUMSYM
,_SYMREG
#endif
,_EDIT
,_QWERTY
,_ADJUST
,_END_LAYERS
};
enum planck_keycodes {
BASE = SAFE_RANGE
,BASE1
,BASE2
,PLOVER
,PLOEXIT
,SM_CIRC // pseudo GUI_T(S(KC_6)) for shifted key-codes, see process_record_user()
,SM_DLR // pseudo SFT_T(S(KC_4)) for shifted key-codes, see process_record_user()
,SM_G // pseudo MT (MOD_LALT | MOD_LSFT, S(KC_G)) for shifted key-codes, see process_record_user()
,SM_K // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_K)) for shifted key-codes, see process_record_user()
,SM_PERC // pseudo ALT_T(S(KC_5)) for shifted key-codes, see process_record_user()
,SM_LPRN // pseudo CTL_T(S(KC_9)) for shifted key-codes, see process_record_user()
,SM_W // pseudo MT (MOD_LGUI | MOD_LSFT, S(KC_W)) for shifted key-codes, see process_record_user()
,SL_LEFT // pseudo LT (_MOUSE, S(KC_LEFT)) for shifted key-codes, see process_record_user()
,SP_DEL // pseudo LT (_MOUSE, KC_DEL) for shifted key-codes, see process_record_user()
,SL_PIPE // pseudo LT (_ADJUST, S(KC_BSLS)) for shifted key-codes, see process_record_user()
,SL_TAB // pseudo LT (_FNCKEY, S(KC_TAB)) for shifted key-codes, see process_record_user()
#ifdef CENTER_TT
,TT_ESC
#endif
#ifdef STENO_ENABLE
,PS_STNA = STN_A
,PS_STNO = STN_O
,PS_STNE = STN_E
,PS_STNU = STN_U
#else
,LT_C = LT (_NUMBER, KC_C)
,LT_V = LT (_FNCKEY, KC_V)
,LT_N = LT (_EDIT, KC_N)
,LT_M = LT (_SYMBOL, KC_M)
#endif
,PS_BASE
};
// modifier keys
#define AT_B ALT_T(KC_B)
#define AT_DOWN ALT_T(KC_DOWN)
#define CT_RGHT CTL_T(KC_RGHT)
#define GT_C GUI_T(KC_C)
#define GT_UP GUI_T(KC_UP)
#define MT_E MT (MOD_LCTL | MOD_LALT, KC_E)
#define MT_X MT (MOD_LALT | MOD_LSFT, KC_X)
#define ST_A SFT_T(KC_A)
#ifdef HOME_MODS
#define HOME_K GUI_T(KC_K)
#define HOME_H CTL_T(KC_H)
#define HOME_E ALT_T(KC_E)
#define HOME_A SFT_T(KC_A)
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
#define HOME_T SFT_T(KC_T)
#define HOME_R ALT_T(KC_R)
#define HOME_S CTL_T(KC_S)
#define HOME_W GUI_T(KC_W)
#else
#define HOME_T SFT_T(KC_T)
#define HOME_S ALT_T(KC_S)
#define HOME_N GUI_T(KC_N)
#define HOME_B CTL_T(KC_B)
#endif
#else
#define HOME_K KC_K
#define HOME_H KC_H
#define HOME_E KC_E
#define HOME_A KC_A
#define HOME_T KC_T
#define HOME_S KC_S
#define HOME_N KC_N
#define HOME_B KC_B
#endif
#define S_DOWN S (KC_DOWN)
#define S_LEFT S (KC_LEFT)
#define S_RGHT S (KC_RGHT)
#define S_TAB S (KC_TAB)
#define S_UP S (KC_UP)
#include "common/tapdance.h"
// keycodes
#define ___x___ KC_TRNS
#define ___fn__ KC_TRNS
#undef _______
#define _______ KC_NO
#define COPY LCTL(KC_C)
#define CUT LCTL(KC_X)
#define EOT LCTL(KC_D)
#define NAK LCTL(KC_U)
#define PASTE LCTL(KC_V)
#define UNDO LCTL(KC_Z)
#define TMCOPY LALT(LCTL(KC_C))
#define TMPASTE LALT(LCTL(KC_V))
#define LT_BSLS LT (_MOUSE, KC_BSLS) // see process_record_user() for extended handling
#define LT_BSPC LT (_EDIT, KC_BSPC)
#define SP_LEFT LT (_EDIT, KC_LEFT)
#define LT_ESC LT (_NUMBER, KC_ESC)
#define LT_LEFT LT (_SYMBOL, KC_LEFT) // see process_record_user() for extended handling
#define SP_BSPC LT (_SYMBOL, KC_BSPC) // see process_record_user() for extended handling
#define LT_TAB LT (_FNCKEY, KC_TAB)
#define LT_INS LT (_FNCKEY, KC_INS)
#define LT_ALTG LT (_FNCKEY, KC_RALT)
#define ADJUST MO (_ADJUST)
#define OS_ALT OSM (MOD_LALT)
#define OS_CTL OSM (MOD_LCTL)
#define OS_GUI OSM (MOD_LGUI)
#define OS_SFT OSM (MOD_LSFT)
#define OS_CALT OSM (MOD_LALT | MOD_LCTL)
#define OS_CGUI OSM (MOD_LGUI | MOD_LCTL)
#define OS_CSFT OSM (MOD_LSFT | MOD_LCTL)
#define OS_SALT OSM (MOD_LALT | MOD_LSFT)
#define OS_SGUI OSM (MOD_LGUI | MOD_LSFT)
#ifdef CENTER_TT
#ifdef BEAKLSP
#define CNTR_TL OSM (MOD_LSFT)
#else
#define CNTR_TL TT (_TTFNCKEY)
#endif
#define CNTR_TR KC_CAPS
#define CNTR_HL TT (_TTCURSOR)
#define CNTR_HR TT (_TTMOUSE)
#define CNTR_BL TT (_TTNUMBER)
#define CNTR_BR TT (_TTREGEX)
#else
#define CNTR_TL OSM (MOD_LALT | MOD_LCTL)
#define CNTR_TR OSM (MOD_LGUI | MOD_LCTL)
#define CNTR_HL OSM (MOD_LALT | MOD_LSFT)
#define CNTR_HR OSM (MOD_LGUI | MOD_LSFT)
#define CNTR_BL TD (_CAPS)
#define CNTR_BR OSM (MOD_LSFT | MOD_LCTL)
#endif
#ifdef THUMB_0
#define LT_EQL LT (_ADJUST, KC_EQL)
#else
#define LT_0 LT (_ADJUST, KC_0)
#endif
#ifndef SHIFT_SYMBOLS
#define LT_A LT (_NUMSYM, KC_A)
#define LT_LFTX LT (_SYMREG, KC_LEFT)
#endif
// ........................................................ Default Alpha Layout
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
#include "beakl.h"
#include "colemak.h"
#include "qwerty.h"
#include "common/steno_layout.h"
// ...................................................... Number / Function Keys
#include "common/number_fkey_layout.h"
// ......................................................... Symbol / Navigation
#include "common/symbol_guifn_layout.h"
// ............................................................... Toggle Layers
#ifdef CENTER_TT
#include "common/toggle_layout.h"
#endif
// ......................................................... Short Cuts / Adjust
#include "common/chord_layout.h"
};
// ...................................................................... Sounds
#include "common/sounds.h"
// ........................................................... User Keycode Trap
#include "common/keycode_functions.h"
#define BASE_1 1
#define BASE_2 2
#define BASE_12 3
static uint8_t base_n = 0;
bool process_record_user(uint16_t keycode, keyrecord_t *record)
{
switch (keycode) {
case BASE1:
if (record->event.pressed) {
base_n = base_n | BASE_1;
if (base_n == BASE_12) {
base_layer();
}
}
else {
base_n = base_n & ~BASE_1;
}
return false;
case BASE2:
if (record->event.pressed) {
base_n = base_n | BASE_2;
if (base_n == BASE_12) {
base_layer();
}
}
else {
base_n = base_n & ~BASE_2;
}
return false;
case AT_DOWN:
#ifdef HOME_MODS
case HOME_E:
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
case HOME_R:
#else
case HOME_S:
#endif
#endif
tap_mods(record, KC_LALT);
break;
case CT_RGHT:
#ifdef HOME_MODS
case HOME_K:
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
case HOME_W:
#else
case HOME_B:
#endif
#endif
tap_mods(record, KC_LGUI);
break;
case GT_UP:
#ifdef HOME_MODS
case HOME_H:
#if defined(BEAKLMU) || defined(BEAKLSP) || defined(BEAKLGR)
case HOME_S:
#else
case HOME_N:
#endif
#endif
tap_mods(record, KC_LCTL);
break;
#ifdef HOME_MODS
case HOME_A:
case HOME_T:
tap_mods(record, KC_LSFT);
break;
#endif
#ifdef CENTER_TT
case TT_ESC:
clear_tt(); // exit TT layer
return false;
#endif
case LT_ESC:
#ifdef CENTER_TT
if (tt_keycode != 0) {
clear_tt(); // exit TT layer
return false;
}
#endif
tap_layer(record, _NUMBER);
break;
case LT_LEFT:
case SP_BSPC:
tap_layer(record, _SYMBOL);
// LT (_SYMBOL, KC_LEFT) left right combination layer
thumb_layer(record, RIGHT, 0, 0, _SYMBOL, _LSHIFT);
break;
case OS_ALT:
tap_mods(record, KC_LALT);
break;
case OS_CTL:
tap_mods(record, KC_LCTL);
break;
case OS_GUI:
tap_mods(record, KC_LGUI);
break;
case SM_CIRC:
// GUI_T(S(KC_6))
mt_shift(record, KC_LGUI, 0, KC_6);
break;
case SM_DLR:
// SFT_T(S(KC_4))
mt_shift(record, KC_LSFT, 0, KC_4);
break;
case SM_G:
// MT(MOD_LALT | MOD_LSFT, S(KC_G))
mt_shift(record, KC_LALT, KC_LSFT, KC_G);
break;
case SM_K:
// MT(MOD_LGUI | MOD_LSFT, S(KC_K))
mt_shift(record, KC_LGUI, KC_LSFT, KC_K);
break;
case SM_W:
// MT(MOD_LGUI | MOD_LSFT, S(KC_W))
mt_shift(record, KC_LGUI, KC_LSFT, KC_W);
break;
case SM_LPRN:
// CTL_T(S(KC_9))
mt_shift(record, KC_LCTL, 0, KC_9);
break;
case SM_PERC:
// ALT_T(S(KC_5))
mt_shift(record, KC_LALT, 0, KC_5);
break;
case LT_BSLS:
tap_layer(record, _MOUSE);
// LT (_MOUSE, KC_BSLS) left right combination layer, see #define LT_BSLS
thumb_layer(record, LEFT, 0, 0, _MOUSE, _SYMBOL);
break;
case SL_LEFT:
tap_layer(record, _MOUSE);
// LT (_MOUSE, S(KC_LEFT)) left right combination layer
thumb_layer(record, RIGHT, SHIFT, KC_LEFT, _MOUSE, _LSHIFT);
break;
case SP_DEL:
tap_layer(record, _MOUSE);
// LT (_MOUSE, S(KC_LEFT)) left right combination layer
thumb_layer(record, RIGHT, NOSHIFT, KC_DEL, _MOUSE, _LSHIFT);
break;
case SL_PIPE:
// LT (_ADJUST, S(KC_BSLS)) emulation
lt_shift(record, KC_BSLS, _ADJUST);
break;
case SL_TAB:
// LT (_FNCKEY, S(KC_TAB)) emulation
lt_shift(record, KC_TAB, _FNCKEY);
break;
case TD_ENT:
tap_layer(record, _RSHIFT);
// LT (_RSHIFT, KC_ENT) emulation, see tap dance enter
break;
case TD_SPC:
tap_layer(record, _LSHIFT);
// LT (_LSHIFT, KC_SPC) left right combination layer, see tap dance TD_SPC
thumb_layer(record, LEFT, 0, 0, _LSHIFT, _SYMBOL);
break;
#ifdef CENTER_TT
case CNTR_TL:
case CNTR_TR:
case CNTR_HL:
case CNTR_HR:
case CNTR_BL:
case CNTR_BR:
if (tt_keycode != keycode && tt_keycode != 0) {
clear_tt(); // return to base layer first if different TT layer selected
}
tt_keycode = keycode;
break;
#endif
// #ifdef STENO_ENABLE
// case PS_STNA:
// stn_layer(record, STN_A, _NUMBER);
// break;
// case PS_STNO:
// stn_layer(record, STN_O, _FNCKEY);
// break;
// case PS_STNE:
// stn_layer(record, STN_E, _EDIT);
// break;
// case PS_STNU:
// stn_layer(record, STN_U, _SYMBOL);
// break;
// #endif
case PS_BASE:
if (record->event.pressed) {
base_layer();
}
return false;
case PLOVER:
steno(record);
return false;
case PLOEXIT:
steno_exit(record);
return false;
}
return true;
}
#include "common/init.h"

View file

@ -1 +0,0 @@
SEND_STRING("the keys of enoch");

View file

@ -1,64 +0,0 @@
// const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// ...................................................................... Qwerty
#ifdef QWERTY
// ,-----------------------------------------------------------------------------------.
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | ; |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | V | B | Caps |^Shift| N | M | , | . | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | Space| Tab | Bksp | Ent | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_BASE] = LAYOUT_planck_grid(
KC_Q, KC_W, KC_E, KC_R, KC_T, CNTR_TL, CNTR_TR, KC_Y, KC_U, KC_I, KC_O, KC_P ,
KC_A, KC_S, KC_D, KC_F, KC_G, CNTR_HL, CNTR_HR, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, CNTR_BL, CNTR_BR, KC_N, KC_M, KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
[_SHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P),
S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), KC_SCLN,
S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_COMM, KC_DOT, TD_QUOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, TD_SPC, LT_TAB, LT_BSPC, TD_ENT, LT_LEFT, AT_DOWN, GT_UP, CT_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | V | B | Caps |^Shift| N | M | / | ? | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Esc | f() | Tab | Del | - | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_LSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P),
S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN,
S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), KC_SLSH, KC_QUES, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, LT_ESC, ___fn__, LT_TAB, KC_DEL, KC_MINS, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
// ,-----------------------------------------------------------------------------------.
// | Q | W | E | R | T | ^Alt | ^GUI | Y | U | I | O | P |
// |------+------+------+------+------+-------------+------+------+------+------+------|
// | A | S | D | F | G | ↑Alt | ↑GUI | H | J | K | L | : |
// |------+------+------+------+------+------|------+------+------+------+------+------|
// | Z | X | C | V | B | Caps |^Shift| N | M | ~ | ` | " |
// |------+------+------+------+------+------+------+------+------+------+------+------|
// | Ctrl | GUI | Alt | Caps | _ | ↑Tab | Bksp | f() | Left | Down | Up | Right|
// `-----------------------------------------------------------------------------------'
[_RSHIFT] = LAYOUT_planck_grid(
S(KC_Q), S(KC_W), S(KC_E), S(KC_R), S(KC_T), CNTR_TL, CNTR_TR, S(KC_Y), S(KC_U), S(KC_I), S(KC_O), S(KC_P),
S(KC_A), S(KC_S), S(KC_D), S(KC_F), S(KC_G), CNTR_HL, CNTR_HR, S(KC_H), S(KC_J), S(KC_K), S(KC_L), TD_COLN,
S(KC_Z), S(KC_X), S(KC_C), S(KC_V), S(KC_B), CNTR_BL, CNTR_BR, S(KC_N), S(KC_M), TD_TILD, TD_GRV, TD_DQOT,
OS_CTL, OS_GUI, OS_ALT, KC_CAPS, KC_UNDS, SL_TAB, LT_BSPC, ___fn__, SL_LEFT, S_DOWN, S_UP, S_RGHT
),
#endif

View file

@ -1,10 +0,0 @@
# The sdothum extended Default Planck Layout
- Colemak-DH layout layer with shift/tab key overlays
- Number and symbol/function key layer
- Hexadecimal keypad layer
- Navigation keypad layer
- Dynamic macro layer
- Autocompletion tap key pairs (),[],{}
- Normalized enter and esc key position across keyboard layers
- Extensive use of tap keys

View file

@ -1,23 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # mouse keys(+4700)
EXTRAKEY_ENABLE = no # audio control and System control(+450)
CONSOLE_ENABLE = no # console for debug(+400)
COMMAND_ENABLE = no # commands for debug and configuration
NKRO_ENABLE = yes # nkey rollover
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.
STENO_ENABLE = yes # enable TX Bolt protocol, requires VIRTSER and may not work with mouse keys
# do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # breathing sleep LED during USB suspend
TAP_DANCE_ENABLE = yes # enable double tap completion of (),[],{}

View file

@ -1,35 +0,0 @@
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND) \
}
#endif
#define MUSIC_MASK (keycode != KC_NO)
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4

View file

@ -1,204 +0,0 @@
// 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 QMK_KEYBOARD_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.
enum planck_layers {
_QWERTY,
_COLEMAK,
_LOWER,
_RAISE,
_TOUCHCURSOR,
_MOUSE,
_ADJUST
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
LOWER,
RAISE,
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
// Taps
#define CTL_ESC CTL_T(KC_ESC) // Tap for Esc, hold for Ctr
#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
#define LT_TC LT(_TOUCHCURSOR, KC_SPC) // L-ayer T-ap T-ouch C-ursor
#define LT_ML LT(_MOUSE, KC_A) // L-ayer T-ap M-ouse C-ursor (on A)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,--------------------------------------------------------------------------------------.
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |--------+------+------+------+------+-------------+------+------+------+------+-------|
* |Ctrl/Esc| ML/A | S | D | F | G | H | J | K | L | ; | " |
* |--------+------+------+------+------+------|------+------+------+------+------+-------|
* | Shift | Z | X | C | V | B | N | M | , | . | / |Sft/Ent|
* |--------+------+------+------+------+------+------+------+------+------+------+-------|
* | Power | ~ | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
* `--------------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
CTL_ESC, LT_ML, 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, SFT_ENT,
KC_CAPS, KC_TILD, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Colemak
* ,-------------------------------------------------------------------------------------.
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
* |--------+------+------+------+------+-------------+------+------+------+------+------|
* |Ctrl/Esc| ML/A | R | S | T | D | H | N | E | I | O | " |
* |--------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift | Z | X | C | V | B | K | M | , | . | / |Enter |
* |--------+------+------+------+------+------+------+------+------+------+------+------|
* | Power | ~ | Alt | GUI |Lower | TC/Space |Raise | Next | Vol- | Vol+ | Play |
* `-------------------------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT_planck_grid(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
CTL_ESC, LT_ML, 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,
KC_CAPS, KC_TILD, KC_LALT, KC_LGUI, LOWER, LT_TC, LT_TC, RAISE, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | F1 | F2 | F3 | F4 | F5 | F6 | - | + | { | } | ` |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | \ | F7 | F8 | F9 | F10 | F11 | F12 | _ | = | [ | ] | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Sleep | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_PIPE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, KC_GRV,
KC_BSLS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_EQL, KC_LBRC, KC_RBRC, KC_SLSH,
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ^ | 4 | 5 | 6 | . | + | * | 4 | 5 | 6 | - | $ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | = | 7 | 8 | 9 | 0 | - | / | 1 | 2 | 3 | . |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Sleep | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_CIRC, KC_4, KC_5, KC_6, KC_DOT, KC_PLUS, KC_ASTR, KC_4, KC_5, KC_6, KC_MINS, KC_DLR,
KC_EQL, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_SLSH, KC_1, KC_2, KC_3, KC_DOT, KC_ENT,
KC_SLEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* TouchCursor layer (http://martin-stone.github.io/touchcursor/) plus personal customizations
* ,-----------------------------------------------------------------------------------.
* | | | |Shift | GUI | ~ |Insert| Home | Up | End | Bksp | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Alt |Space | | Find |Again | PgUp | Left | Down |Right | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | Undo | Cut | Copy |Paste | ` | PgDn | Del | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*
* The KC_UNDO, KC_CUT, KC_COPY, KC_PASTE, KC_FIND, and KC_AGAIN keycodes don't
* seem to work on Mac. Presumably they'll work under Windows.
*/
[_TOUCHCURSOR] = LAYOUT_planck_grid(
_______, _______, _______, KC_LSFT, KC_LGUI, KC_TILD, KC_INS, KC_HOME, KC_UP, KC_END, KC_BSPC, _______,
_______, KC_LALT, KC_SPC, _______, KC_FIND,KC_AGAIN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, KC_UNDO, KC_CUT, KC_COPY, KC_PASTE,KC_GRV, KC_PGDN, KC_DEL, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Mouse Layer
* ,-----------------------------------------------------------------------------------.
* | | |ACCL0 |ACCL1 |ACCL2 |ACCL2 | |WHL_L | Up |WHL_R | BTN2 | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | BTN3 | BTN1 | BTN4 |WHL_Up| Left | Down |Right | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | BTN2 | BTN5 |WHL_Dn| BTN1 | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOUSE] = LAYOUT_planck_grid(
_______, _______, KC_ACL0, KC_ACL1, KC_ACL2, KC_ACL2, _______, KC_WH_L, KC_MS_U, KC_WH_R, KC_BTN2, _______,
_______, _______, _______, KC_BTN3, KC_BTN1, KC_BTN4, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
_______, _______, _______, _______, KC_BTN2, KC_BTN5, KC_WH_D, KC_BTN1, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | | Reset| | | | | | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL,
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, _______, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
}
return true;
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}

View file

@ -1,17 +0,0 @@
# The Am Planck Layout
Heavily inspired by other layouts out there, and fine tuned to work well on emacs (most recently spacemacs with vim bindings).
It features:
- Media keys (bottom right)
- Focused on Qwerty and Colemak
- Number pads (normal and reversed)
- TouchCursor layer
- Mouse layer
## Build
Making planck/rev4 with keymap am and target dfu
make planck/rev4:am:dfu

View file

@ -1,10 +0,0 @@
# 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
#
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE = yes # Audio output on port C6

View file

@ -1,40 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
#define MUSIC_MASK (keycode != KC_NO)
#define PERMISSIVE_HOLD
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
#endif

View file

@ -1,287 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers {
_QWERTY,
_COLEMAK,
_DVORAK,
_LOWER,
_RAISE,
_PLOVER,
_ADJUST,
_NAVIGATION
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
PLOVER,
BACKLIT,
EXT_PLV
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define _NAVIGATION 8
#define NAVL MO(_NAVIGATION)
#define NAVSPC LT( 8, KC_SPC)
//#define SHFTENT SHFT_T(KC_ENT)
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 | , | . | / |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
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, SFT_T(KC_ENT) ,
KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* 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 | , | . | / |SftEnt|
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT_planck_grid(
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, SFT_T(KC_ENT) ,
KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Dvorak REUSED AS 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 | , | . | / |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | CS | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_DVORAK] = LAYOUT_planck_grid(
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_QUOT,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_T(KC_ENT) ,
KC_LCTL, LCTL(KC_LSFT), KC_LGUI, KC_LALT, LOWER, NAVSPC, NAVSPC, 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] = LAYOUT_planck_grid(
// 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, NAVSPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
// ),
//
// /* Lower
// * ,-----------------------------------------------------------------------------------.
// * | ~ | F7 | F8 | F9 | F10 | F11 | F12 | _ | + | { | } | Bksp |
// * |------+------+------+------+------+-------------+------+------+------+------+------|
// * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | | |
// * |------+------+------+------+------+------|------+------+------+------+------+------|
// * | |Ctl+z |Ctl+x |Ctl+c |Ctl+v | | | | | | |Enter |
// * |------+------+------+------+------+------+------+------+------+------+------+------|
// * | | | | | | | | HOME | PGDN | PGUP | END |
// * `-----------------------------------------------------------------------------------'
// */
[_LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSPC ,
KC_DEL , KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_PIPE ,
_______, LCTL(KC_Z), LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), _______, _______, _______, _______, _______, _______, KC_ENT ,
_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | HOME | PGDN | PGUP | END |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC ,
KC_DEL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS ,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_ENT ,
_______, _______, _______, _______, _______, KC_SPC, KC_SPC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
/* Plover layer (http://opensteno.org)
* ,-----------------------------------------------------------------------------------.
* | # | # | # | # | # | # | # | # | # | # | # | # |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | S | T | P | H | * | * | F | P | L | T | D |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | S | K | W | R | * | * | R | B | G | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Exit | | | A | O | | E | U | | | |
* `-----------------------------------------------------------------------------------'
*/
[_PLOVER] = LAYOUT_planck_grid(
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| | | | | | | | | | | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* |C.A.D.| | | | | | | | | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | CAPS | | | | | | |Insert|PntScn|Scroll|Pause | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | |Qwerty|Colemk|Dvorak|Plover|
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,
LALT(LCTL(KC_DEL)), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______, QWERTY, COLEMAK, DVORAK, XXXXXXX //PLOVER
),
/* Navigation
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | Home | PgDn | PgUp | End |ctlBsp|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del |Ctl+A | |Shift | Ctrl | | | Left | Down | Up |Right | Del |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | C+S |Ctl+z |Ctl+x |Ctl+c |Ctl+v | | | |Shift |Shift |Shift |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |C+A+S | | | | | | |C+Left|C+Down| C+Up |C+Right|
* `-----------------------------------------------------------------------------------'
*/
[_NAVIGATION] = LAYOUT_planck_grid(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, LCTL(KC_BSPC) ,
KC_DEL, LCTL(KC_A), XXXXXXX, KC_LSFT, KC_LCTL, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DEL,
LCTL(KC_LSFT), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT, KC_RSFT, KC_RSFT, KC_ENT,
_______, _______, _______, _______, _______, _______, _______, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), _______
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
return false;
break;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
break;
case PLOVER:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
stop_all_notes();
PLAY_SONG(plover_song);
#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_SONG(plover_gb_song);
#endif
layer_off(_PLOVER);
}
return false;
break;
}
return true;
}

View file

@ -1,2 +0,0 @@
# The Default Planck Layout

View file

@ -1,29 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_planck_grid( /* Qwerty */
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
KC_LCTL, KC_LGUI, KC_LALT, BL_STEP, MO(3), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
// Space is repeated to accommodate for both spacebar wiring positions
),
[1] = LAYOUT_planck_grid( /* WASD + NumPad */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_PSLS, KC_PMNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PPLS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_PDOT, KC_PENT, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_SPC, KC_P0, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_planck_grid( /* RAISE */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_TRNS,
KC_TRNS, DF(0), DF(1), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, MO(2), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
[3] = LAYOUT_planck_grid( /* LOWER */
S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_DEL,
KC_TRNS, DF(0), DF(1), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS),
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END
)
};

View file

@ -1,22 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # 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 SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,33 +0,0 @@
// Copyright 2021 Anton Kavalkou (@antosha417)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4
#define TAPPING_TERM 200
#define COMBO_TERM 30

View file

@ -1,447 +0,0 @@
// Copyright 2021 Anton Kavalkou (@antosha417)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "sendstring_dvorak.h"
#include "muse.h"
enum layers {
_QWERTY,
_DVORAK,
_LOWER,
_RAISE,
_TOP,
_BOTTOM,
_ADJUST
};
float USSR_SONG[][2] = SONG(B__NOTE(_G6),
B__NOTE(_C7), W__NOTE(_G6), H__NOTE(_A6),
B__NOTE(_B6), W__NOTE(_E6), W__NOTE(_E6),
B__NOTE(_A6), W__NOTE(_G6), H__NOTE(_F6),
B__NOTE(_G6), W__NOTE(_C6), W__NOTE(_C6),
B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_E6),
B__NOTE(_D6), W__NOTE(_D6), W__NOTE(_G6),
B__NOTE(_F6), W__NOTE(_G6), W__NOTE(_A6),
B__NOTE(_B6),
);
enum keycodes {
QWERTY = SAFE_RANGE,
RUS_LANG,
EN_LANG,
HEB_LANG,
BRUDERSCHAFT,
VIM_SAVE,
#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
keycode,
#include "mod_tap_keys.h"
#undef MOD_TAP_KEY
};
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define TOP MO(_TOP)
#define BOTTOM MO(_BOTTOM)
#define LANG TG(_DVORAK)
#define KC_CAD LALT(LCTL(KC_DEL))
#define KC_CAH LALT(LCTL(KC_HOME))
#define E_SFT LSFT_T(KC_E)
#define D_SFT LSFT_T(KC_D)
#define A_ALT LALT_T(KC_A)
#define O_GUI LGUI_T(KC_O)
#define U_CTRL LCTL_T(KC_U)
#define T_SFT RSFT_T(KC_T)
#define K_SFT RSFT_T(KC_K)
#define S_ALT RALT_T(KC_S)
#define N_GUI RGUI_T(KC_N)
#define H_CTRL RCTL_T(KC_H)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | | 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 | , | . | / | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | |Bottom| SPC |Lower |Raise | SPC | TOP | | | |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
_______, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
_______, A_ALTQ, S_GUIQ, D_SFT, F_CTLQ, KC_G, KC_H, J_CTLQ, K_SFT, L_GUIQ, SCLN_Q, _______,
_______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
_______, _______, _______, BOTTOM, KC_SPC, LOWER, RAISE, KC_SPC, TOP, _______, _______, _______
),
/* Dvorak
* ,-----------------------------------------------------------------------------------.
* | | ' | , | . | P | Y | F | G | C | R | L | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | A | O | E | U | I | D | H | T | N | S | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | ; | Q | J | K | X | B | M | W | V | Z | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_DVORAK] = LAYOUT_planck_grid(
_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
_______, A_ALT, O_GUI, E_SFT, U_CTRL, KC_I, KC_D, H_CTRL, T_SFT, N_GUI, S_ALT, _______,
_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | F11 | _ | - | ~ | % | ' | | ^ | ` | \ | | | - |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | [ | { | + | ( | = | * | ) | ! | } | ] | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | CAD | CAH | | LANG | | | EN | HEB | RUS | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | RCTL | | | | [{}] | | | PSCR | PGDN | PGUP | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_F11, KC_UNDS, KC_MINS, KC_TILD, KC_PERC, KC_QUOT, _______, KC_CIRC, KC_GRV, KC_BSLS, KC_PIPE, KC_MINS,
KC_DEL, KC_LBRC, KC_LCBR, KC_PLUS, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_EXLM, KC_RCBR, KC_RBRC, KC_BSPC,
_______, KC_CAD, KC_CAH, _______, LANG, _______, _______, HEB_LANG, EN_LANG, RUS_LANG, _______, _______,
_______, KC_RCTL, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_PGDN, KC_PGUP, _______
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | F11 | | | $ | & | | : | ? | @ | # | / | F12 |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | 7 | 5 | 3 | 1 | 9 | 0 | 2 | 4 | 6 | 8 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | F7 | F5 | F3 | F1 | F9 | F10 | F2 | F4 | F6 | F8 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | [{}] | | Vol- | End | Home | Vol+ |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_F11, _______, _______, KC_DLR, KC_AMPR, _______, KC_COLON, KC_QUES, KC_AT, KC_HASH, KC_SLSH, KC_F12,
_______, KC_7, KC_5, KC_3, KC_1, KC_9, KC_0, KC_2, KC_4, KC_6, KC_8, KC_BSPC,
_______, KC_F7, KC_F5, KC_F3, KC_F1, KC_F9, KC_F10, KC_F2, KC_F4, KC_F6, KC_F8, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_END, KC_HOME, KC_VOLU
),
/* TOP
* ,-----------------------------------------------------------------------------------
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | Down | Up | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | [{}] | | | |
* `-----------------------------------------------------------------------------------'
*/
[_TOP] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_DOWN, KC_UP, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* BOTTOM
* ,-----------------------------------------------------------------------------------
* | | | | | | | | | | | -> | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | <- | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | vold | volu | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | [{}] | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_BOTTOM] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RGHT, _______,
_______, _______, _______, _______, _______, _______, _______, KC_LEFT, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Adjust (Lower + Raise)
* v------------------------RGB CONTROL--------------------v
* ,-----------------------------------------------------------------------------------
* | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | |Aud on|Audoff| | | | | | |Dvorak| | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | |Mus on|Musoff| | | | | | | | | USSR |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | [{}] | [{}] | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
_______, QK_BOOT, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
_______, AU_ON, AU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, MU_ON, MU_OFF, _______, _______, _______, _______, _______, _______, _______, _______, BRUDERSCHAFT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
void keyboard_post_init_user(void) {
layer_on(_DVORAK);
}
void set_english_language(void) {
layer_on(_DVORAK);
SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_1)))));
}
void set_russian_language(void) {
layer_off(_DVORAK);
SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_2)))));
}
void set_hebrew_language(void) {
layer_off(_DVORAK);
SEND_STRING(SS_LSFT(SS_LCTL(SS_LGUI(SS_TAP(X_3)))));
}
#define CASE(keycode, key_pressed_action, key_released_action) \
case (keycode): \
if (record->event.pressed) { \
key_pressed_action; \
} else { \
key_released_action; \
} \
return false; \
break;
#define CASE_PRESSED(keycode, key_pressed_action) CASE(keycode, key_pressed_action, {});
#define CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action) \
CASE(keycode, { \
keycode ## _TIMER = timer_read(); \
IS_ ## keycode ## _ACTIVE = true; \
}, { \
if(IS_ ## keycode ## _MOD_ACTIVE) { \
mod_off_action; \
} else if (IS_ ## keycode ## _ACTIVE) { \
tap_action; \
} \
IS_ ## keycode ## _MOD_ACTIVE = false; \
IS_ ## keycode ## _ACTIVE = false; \
});
#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
uint16_t keycode ## _TIMER = 0; \
bool IS_ ## keycode ## _ACTIVE = false; \
bool IS_ ## keycode ## _MOD_ACTIVE = false;
#include "mod_tap_keys.h"
#undef MOD_TAP_KEY
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
CASE_PRESSED(BRUDERSCHAFT, PLAY_SONG(USSR_SONG));
CASE_PRESSED(EN_LANG, set_english_language());
CASE_PRESSED(RUS_LANG, set_russian_language());
CASE_PRESSED(HEB_LANG, set_hebrew_language());
CASE_PRESSED(VIM_SAVE, {set_english_language(); SEND_STRING(SS_TAP(X_ESC)SS_LSFT(SS_TAP(X_SCLN))SS_TAP(X_W)SS_TAP(X_ENT));});
#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
CASE_MOD_TAP_KEY(keycode, tap_action, mod_off_action);
#include "mod_tap_keys.h"
#undef MOD_TAP_KEY
}
#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
if (IS_ ## keycode ## _ACTIVE && !IS_ ## keycode ## _MOD_ACTIVE) { \
if (timer_elapsed(keycode ## _TIMER) <= TAPPING_TERM) { \
tap_action; \
IS_ ## keycode ## _ACTIVE = false; \
} \
}
#include "mod_tap_keys.h"
#undef MOD_TAP_KEY
return true;
}
bool muse_mode = false;
uint8_t last_muse_note = 0;
uint16_t muse_counter = 0;
uint8_t muse_offset = 70;
uint16_t muse_tempo = 50;
bool encoder_update_user(uint8_t index, bool clockwise) {
if (muse_mode) {
if (IS_LAYER_ON(_RAISE)) {
if (clockwise) {
muse_offset++;
} else {
muse_offset--;
}
} else {
if (clockwise) {
muse_tempo+=1;
} else {
muse_tempo-=1;
}
}
} else {
if (clockwise) {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_DOWN);
#else
tap_code(KC_PGDN);
#endif
} else {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_UP);
#else
tap_code(KC_PGUP);
#endif
}
}
return false;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0:
if (active) {
layer_off(_ADJUST);
}
break;
case 1:
if (active) {
muse_mode = true;
} else {
muse_mode = false;
#ifdef AUDIO_ENABLE
stop_all_notes();
#endif
}
}
return true;
}
void matrix_scan_user(void) {
#define MOD_TAP_KEY(keycode, tap_action, mod_on_action, mod_off_action) \
if (IS_ ## keycode ## _ACTIVE) { \
if (timer_elapsed(keycode ## _TIMER) > TAPPING_TERM) { \
mod_on_action; \
IS_ ## keycode ## _MOD_ACTIVE = true; \
} \
}
#include "mod_tap_keys.h"
#undef MOD_TAP_KEY
#ifdef AUDIO_ENABLE
if (muse_mode) {
if (muse_counter == 0) {
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
if (muse_note != last_muse_note) {
stop_note(compute_freq_for_midi_note(last_muse_note));
play_note(compute_freq_for_midi_note(muse_note), 0xF);
last_muse_note = muse_note;
}
}
muse_counter = (muse_counter + 1) % muse_tempo;
}
#endif
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
enum combo_events {
// combos for dvorak layer
RU_COMBO,
EN_COMBO,
HEB_COMBO,
ESC_COMBO,
TAB_COMBO,
ENT_COMBO,
DEL_COMBO,
SAVE_COMBO,
BSPC_COMBO,
BSPCW_COMBO,
// combos for qwerty layer
RUQ_COMBO,
ENQ_COMBO,
HEBQ_COMBO,
ESCQ_COMBO,
TABQ_COMBO,
ENTQ_COMBO,
DELQ_COMBO,
SAVEQ_COMBO,
BSPCQ_COMBO,
BSPCWQ_COMBO
};
const uint16_t PROGMEM ru_combo[] = {KC_R, U_CTRL, COMBO_END};
const uint16_t PROGMEM en_combo[] = {U_CTRL, S_ALT, COMBO_END};
const uint16_t PROGMEM heb_combo[] = {KC_I, KC_V, COMBO_END};
const uint16_t PROGMEM esc_combo[] = {H_CTRL, U_CTRL, COMBO_END};
const uint16_t PROGMEM tab_combo[] = {T_SFT, A_ALT, COMBO_END};
const uint16_t PROGMEM ent_combo[] = {E_SFT, N_GUI, COMBO_END};
const uint16_t PROGMEM del_combo[] = {KC_D, E_SFT, COMBO_END};
const uint16_t PROGMEM bspc_combo[] = {KC_C, H_CTRL, COMBO_END};
const uint16_t PROGMEM bspcw_combo[] = {N_GUI, U_CTRL, COMBO_END};
const uint16_t PROGMEM save_combo[] = {O_GUI, H_CTRL, COMBO_END};
const uint16_t PROGMEM ruq_combo[] = {KC_O, F_CTLQ, COMBO_END};
const uint16_t PROGMEM enq_combo[] = {F_CTLQ, SCLN_Q, COMBO_END};
const uint16_t PROGMEM hebq_combo[] = {KC_G, KC_DOT, COMBO_END};
const uint16_t PROGMEM escq_combo[] = {F_CTLQ, J_CTLQ, COMBO_END};
const uint16_t PROGMEM tabq_combo[] = {K_SFT, A_ALTQ, COMBO_END};
const uint16_t PROGMEM entq_combo[] = {D_SFT, L_GUIQ, COMBO_END};
const uint16_t PROGMEM delq_combo[] = {KC_H, D_SFT, COMBO_END};
const uint16_t PROGMEM bspcq_combo[] = {KC_I, J_CTLQ, COMBO_END};
const uint16_t PROGMEM bspcwq_combo[] = {L_GUIQ, F_CTLQ, COMBO_END};
const uint16_t PROGMEM saveq_combo[] = {S_GUIQ, J_CTLQ, COMBO_END};
combo_t key_combos[] = {
[RU_COMBO] = COMBO(ru_combo, RUS_LANG),
[EN_COMBO] = COMBO(en_combo, EN_LANG),
[HEB_COMBO] = COMBO(heb_combo, HEB_LANG),
[ESC_COMBO] = COMBO(esc_combo, KC_ESC),
[TAB_COMBO] = COMBO(tab_combo, KC_TAB),
[ENT_COMBO] = COMBO(ent_combo, KC_ENT),
[DEL_COMBO] = COMBO(del_combo, KC_DEL),
[BSPC_COMBO] = COMBO(bspc_combo, KC_BSPC),
[SAVE_COMBO] = COMBO(save_combo, VIM_SAVE),
[BSPCW_COMBO] = COMBO(bspcw_combo, A(KC_BSPC)),
[RUQ_COMBO] = COMBO(ruq_combo, RUS_LANG),
[ENQ_COMBO] = COMBO(enq_combo, EN_LANG),
[HEBQ_COMBO] = COMBO(hebq_combo, HEB_LANG),
[ESCQ_COMBO] = COMBO(escq_combo, KC_ESC),
[TABQ_COMBO] = COMBO(tabq_combo, KC_TAB),
[ENTQ_COMBO] = COMBO(entq_combo, KC_ENT),
[DELQ_COMBO] = COMBO(delq_combo, KC_DEL),
[BSPCQ_COMBO] = COMBO(bspcq_combo, KC_BSPC),
[SAVEQ_COMBO] = COMBO(saveq_combo, VIM_SAVE),
[BSPCWQ_COMBO] = COMBO(bspcwq_combo, A(KC_BSPC)),
};

View file

@ -1,14 +0,0 @@
// Copyright 2021 Anton Kavalkou (@antosha417)
// SPDX-License-Identifier: GPL-2.0-or-later
// MOD_TAP_KEY(key, tap_action, mod_on_action, mod_off_action)
MOD_TAP_KEY(S_GUIQ, tap_code(KC_S), {layer_on(_DVORAK); register_code(KC_LGUI);}, {layer_off(_DVORAK); unregister_code(KC_LGUI);})
MOD_TAP_KEY(L_GUIQ, tap_code(KC_L), {layer_on(_DVORAK); register_code(KC_RGUI);}, {layer_off(_DVORAK); unregister_code(KC_RGUI);})
MOD_TAP_KEY(F_CTLQ, tap_code(KC_F), {layer_on(_DVORAK); register_code(KC_LCTL);}, {layer_off(_DVORAK); unregister_code(KC_LCTL);})
MOD_TAP_KEY(J_CTLQ, tap_code(KC_J), {layer_on(_DVORAK); register_code(KC_RCTL);}, {layer_off(_DVORAK); unregister_code(KC_RCTL);})
MOD_TAP_KEY(A_ALTQ, tap_code(KC_A), {layer_on(_DVORAK); register_code(KC_LALT);}, {layer_off(_DVORAK); unregister_code(KC_LALT);})
MOD_TAP_KEY(SCLN_Q, tap_code(KC_SCLN), {layer_on(_DVORAK); register_code(KC_RALT);}, {layer_off(_DVORAK); unregister_code(KC_RALT);})

View file

@ -1,11 +0,0 @@
# How to install:
make planck/rev6:antosha417:flash
# Useful:
* [keycodes](https://docs.qmk.fm/#/keycodes)
* [string keycodes](https://github.com/qmk/qmk_firmware/blob/master/quantum/send_string_keycodes.h)
# Todo:
[ ] sync with corne

View file

@ -1,4 +0,0 @@
SRC += muse.c
AUDIO_ENABLE = yes
COMBO_ENABLE = yes

View file

@ -1,5 +0,0 @@
{
"files.associations": {
"select_word.h": "c"
}
}

View file

@ -1,55 +0,0 @@
/* Copyright 2015-2021 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/>.
*/
#pragma once
#ifdef AUDIO_ENABLE
# define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
#define TAPPING_TERM 150
#define TAPPING_TERM_PER_KEY
// #define HOLD_ON_OTHER_KEY_PRESS
#define COMBO_TERM 20
#define MOUSEKEY_INTERVAL 16 //Time between cursor movements in milliseconds.
//If the refresh rate of your display is 60Hz, you could set it to 16 (1/60). As this raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED
#define MOUSEKEY_MAX_SPEED 8 //Maximum cursor speed at which acceleration stops
#define MOUSEKEY_TIME_TO_MAX 50 //Time until maximum scroll speed is reached
#define MOUSEKEY_DELAY 100 //Delay between pressing a movement key and cursor movement
#define MOUSEKEY_MOVE_DELTA 8 //Step size

View file

@ -1,122 +0,0 @@
// Copyright 2021-2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/caps-word
#include "caps_word.h"
static bool caps_word_active = false;
bool process_caps_word(uint16_t keycode, keyrecord_t* record) {
#ifndef NO_ACTION_ONESHOT
const uint8_t mods = get_mods() | get_oneshot_mods();
#else
const uint8_t mods = get_mods();
#endif // NO_ACTION_ONESHOT
if (!caps_word_active) {
// Pressing both shift keys at the same time enables caps word.
if ((mods & MOD_MASK_SHIFT) == MOD_MASK_SHIFT) {
caps_word_set(true); // Activate Caps Word.
return false;
}
return true;
}
if (!record->event.pressed) { return true; }
if (!(mods & ~MOD_MASK_SHIFT)) {
switch (keycode) {
// Ignore MO, TO, TG, TT, and OSL layer switch keys.
case QK_MOMENTARY ... QK_MOMENTARY + 255:
case QK_TO ... QK_TO + 255:
case QK_TOGGLE_LAYER ... QK_TOGGLE_LAYER + 255:
case QK_LAYER_TAP_TOGGLE ... QK_LAYER_TAP_TOGGLE + 255:
case QK_ONE_SHOT_LAYER ... QK_ONE_SHOT_LAYER + 255:
return true;
#ifndef NO_ACTION_TAPPING
case QK_MOD_TAP ... QK_MOD_TAP_MAX:
if (record->tap.count == 0) {
// Deactivate if a mod becomes active through holding a mod-tap key.
caps_word_set(false);
return true;
}
keycode &= 0xff;
break;
#ifndef NO_ACTION_LAYER
case QK_LAYER_TAP ... QK_LAYER_TAP_MAX:
#endif // NO_ACTION_LAYER
if (record->tap.count == 0) { return true; }
keycode &= 0xff;
break;
#endif // NO_ACTION_TAPPING
#ifdef SWAP_HANDS_ENABLE
case QK_SWAP_HANDS ... QK_SWAP_HANDS_MAX:
if (keycode > 0x56F0 || record->tap.count == 0) { return true; }
keycode &= 0xff;
break;
#endif // SWAP_HANDS_ENABLE
}
if (caps_word_press_user(keycode)) {
return true;
}
}
caps_word_set(false); // Deactivate Caps Word.
return true;
}
void caps_word_set(bool active) {
if (active != caps_word_active) {
if (active) {
clear_mods();
#ifndef NO_ACTION_ONESHOT
clear_oneshot_mods();
#endif // NO_ACTION_ONESHOT
}
caps_word_active = active;
caps_word_set_user(active);
}
}
bool caps_word_get(void) { return caps_word_active; }
__attribute__((weak)) void caps_word_set_user(bool active) {}
__attribute__((weak)) bool caps_word_press_user(uint16_t keycode) {
switch (keycode) {
// Keycodes that continue Caps Word, with shift applied.
case KC_A ... KC_Z:
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
return true;
// Keycodes that continue Caps Word, without shifting.
case KC_1 ... KC_0:
case KC_P1 ... KC_P0:
case KC_BSPC:
case KC_MINS:
case KC_UNDS:
return true;
default:
return false; // Deactivate Caps Word.
}
}

View file

@ -1,101 +0,0 @@
// Copyright 2021-2022 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// Caps Word, activated by pressing both shift keys at the same time.
//
// This library implements "Caps Word", which is like conventional Caps Lock,
// but automatically disables itself at the end of the word. This is useful for
// typing all-caps identifiers like `MOD_MASK_ALT`.
//
// Caps Word is activated by pressing the left and right shift keys at the same
// time. This way you don't need a dedicated key for using Caps Word. I've
// tested that this works as expected with one-shot mods and Space Cadet Shift.
// If your shift keys are mod-taps, activate Caps Word by holding both shift
// mod-tap keys until the tapping term, release them, then begin typing.
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/caps-word
#pragma once
#include QMK_KEYBOARD_H
// Call this function from `process_record_user()` to implement Caps Word.
bool process_caps_word(uint16_t keycode, keyrecord_t* record);
// Activates or deactivates Caps Word. For instance activate Caps Word with a
// combo by defining a `COMBO_ACTION` that calls `caps_word_set(true)`:
//
// void process_combo_event(uint16_t combo_index, bool pressed) {
// switch(combo_index) {
// case CAPS_COMBO:
// if (pressed) {
// caps_word_set(true); // Activate Caps Word.
// }
// break;
//
// // Other combos...
// }
// }
void caps_word_set(bool active);
// Returns whether Caps Word is currently active.
bool caps_word_get(void);
// An optional callback that gets called when Caps Word turns on or off. This is
// useful to represent the current Caps Word state, e.g. by setting an LED or
// playing a sound. In your keymap, define
//
// void caps_word_set_user(bool active) {
// if (active) {
// // Do something when Caps Word activates.
// } else {
// // Do something when Caps Word deactivates.
// }
// }
void caps_word_set_user(bool active);
// An optional callback which is called on every key press while Caps Word is
// active. When the key should be shifted (that is, a letter key), the callback
// should call `add_weak_mods(MOD_BIT(KC_LSFT))` to shift the key. The callback
// also determines whether the key should continue Caps Word. Returning true
// continues the current "word", while returning false is "word breaking" and
// deactivates Caps Word. The default callback is
//
// bool caps_word_press_user(uint16_t keycode) {
// switch (keycode) {
// // Keycodes that continue Caps Word, with shift applied.
// case KC_A ... KC_Z:
// add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to the next key.
// return true;
//
// // Keycodes that continue Caps Word, without shifting.
// case KC_1 ... KC_0:
// case KC_BSPC:
// case KC_MINS:
// case KC_UNDS:
// return true;
//
// default:
// return false; // Deactivate Caps Word.
// }
// }
//
// To customize, copy the above function into your keymap and add/remove
// keycodes to the above cases.
//
// NOTE: Outside of this callback, you can use `caps_word_set(false)` to
// deactivate Caps Word.
bool caps_word_press_user(uint16_t keycode);

View file

@ -1,110 +0,0 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/select-word
#include "select_word.h"
// Mac users, uncomment this line:
// #define MAC_HOTKEYS
enum { STATE_NONE, STATE_SELECTED, STATE_WORD, STATE_FIRST_LINE, STATE_LINE };
bool process_select_word(uint16_t keycode, keyrecord_t* record,
uint16_t sel_keycode) {
static uint8_t state = STATE_NONE;
if (keycode == KC_LSFT || keycode == KC_RSFT) { return true; }
if (keycode == sel_keycode && record->event.pressed) { // On key press.
const uint8_t mods = get_mods();
#ifndef NO_ACTION_ONESHOT
const uint8_t all_mods = mods | get_oneshot_mods();
#else
const uint8_t all_mods = mods;
#endif // NO_ACTION_ONESHOT
if ((all_mods & MOD_MASK_SHIFT) == 0) { // Select word.
#ifdef MAC_HOTKEYS
register_code(KC_LALT);
#else
register_code(KC_LCTL);
#endif // MAC_HOTKEYS
if (state == STATE_NONE) {
tap_code(KC_RGHT);
tap_code(KC_LEFT);
}
register_code(KC_LSFT);
register_code(KC_RGHT);
state = STATE_WORD;
} else { // Select line.
if (state == STATE_NONE) {
clear_mods();
#ifndef NO_ACTION_ONESHOT
clear_oneshot_mods();
#endif // NO_ACTION_ONESHOT
#ifdef MAC_HOTKEYS
register_code16(LCTL(KC_A));
tap_code16(LSFT(KC_E));
unregister_code16(LCTL(KC_A));
#else
tap_code(KC_HOME);
tap_code16(LSFT(KC_END));
#endif // MAC_HOTKEYS
set_mods(mods);
state = STATE_FIRST_LINE;
} else {
register_code(KC_DOWN);
state = STATE_LINE;
}
}
return false;
}
// `sel_keycode` was released, or another key was pressed.
switch (state) {
case STATE_WORD:
unregister_code(KC_RGHT);
unregister_code(KC_LSFT);
#ifdef MAC_HOTKEYS
unregister_code(KC_LALT);
#else
unregister_code(KC_LCTL);
#endif // MAC_HOTKEYS
state = STATE_SELECTED;
break;
case STATE_FIRST_LINE:
state = STATE_SELECTED;
break;
case STATE_LINE:
unregister_code(KC_DOWN);
state = STATE_SELECTED;
break;
case STATE_SELECTED:
if (keycode == KC_ESC) {
tap_code(KC_RGHT);
state = STATE_NONE;
return false;
}
// Fallthrough.
default:
state = STATE_NONE;
}
return true;
}

View file

@ -1,37 +0,0 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//
// Select word/line button.
//
// Implements a button that selects the current word, assuming conventional text
// editor hotkeys. Pressing it again extends the selection to the following
// word. The effect is similar to word selection (W) in the Kakoune editor.
//
// Pressing the button with shift selects the current line, and pressing the
// button again extends the selection to the following line.
//
// Note for Mac users: Windows/Linux editing hotkeys are assumed by default.
// Uncomment the `#define MAC_HOTKEYS` line in select_word.c for Mac hotkeys.
// The Mac implementation is untested, let me know if it has problems.
//
// For full documentation, see
// https://getreuer.info/posts/keyboards/select-word
#pragma once
#include QMK_KEYBOARD_H
bool process_select_word(uint16_t keycode, keyrecord_t* record,
uint16_t sel_keycode);

View file

@ -1,671 +0,0 @@
/* Copyright 2021 Aric Crosson Bouwers
*
* 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/>.
*/
#include QMK_KEYBOARD_H
#include "muse.h"
#include "features/select_word.h"
#include "features/caps_word.h"
// using the Word Selection QMK Macro by Pascal Getreuer, found here: https://getreuer.info/posts/keyboards/select-word/index.html
// THANKS Pascal for such amazing functionality!!
// 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_VCP 1
#define _LOWER 2
#define _RAISE 3
#define _NUMPAD 4
#define _FN 5
#define _ADJUST 6
#define _GAMING 7
#define MICMUTE LALT(KC_M)
#define DESKTR LGUI(LCTL(KC_RGHT)) // move one virtual desktop to the right
#define DESKTL LGUI(LCTL(KC_LEFT)) // move one virtual desktop to the left
#define MTLCTL_F9 MT(MOD_LCTL, KC_F9)
#define MTLSFT_F10 MT(MOD_LSFT, KC_F10)
#define MTLALT_F11 MT(MOD_LALT, KC_F11)
#define MTLGUI_Z MT(MOD_LGUI, KC_Z)
#define MTLALT_PL MT(MOD_LALT, KC_MPLY)
#define MTLALT_NXT MT(MOD_LALT, KC_MNXT)
#define MTENTER MT(MOD_LCTL, KC_ENT)
#define MTRSFTBSLS MT(MOD_RSFT, KC_BSLS)
#define MTRCTLQUO MT(MOD_RCTL, KC_QUOT)
#define MTTAB MT(MOD_LCTL | MOD_LGUI | MOD_LALT, KC_TAB)
#define LTESC LT(_FN, KC_ESC)
#define MTPLAY MT(MOD_RALT, KC_MPLY)
#define KC_COPY LCTL(KC_C)
#define KC_CUT LCTL(KC_X)
#define KC_PASTE LCTL(KC_V)
#define KC_WINPASTE LGUI(KC_V)
#define KC_PTXT LCTL(LSFT(KC_V))
#define KC_UNDO LCTL(KC_Z)
#define KC_REDO LCTL(KC_Y)
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK_VCP,
LOWER,
RAISE,
FN,
ADJUST,
NUMPAD,
GAMING,
EXT_NUM,
EXT_GAMING,
SELWORD,
BRACES,
BRACES2,
ARROW,
ALT_TAB
};
// Define a type for as many tap dance states as you need
typedef enum {
TD_NONE,
TD_UNKNOWN,
TD_SINGLE_TAP,
TD_SINGLE_HOLD,
TD_DOUBLE_TAP
} td_state_t;
typedef struct {
bool is_press_action;
td_state_t state;
} td_tap_t;
// Our custom tap dance keys; add any other tap dance keys to this enum
enum {
UNDS_LOWER,
PLAY_RAISE
};
// Declare the functions to be used with your tap dance key(s)
// Function associated with all tap dances
td_state_t cur_dance(tap_dance_state_t *state);
// Functions associated with individual tap dances
void usl_finished(tap_dance_state_t *state, void *user_data);
void usl_reset(tap_dance_state_t *state, void *user_data);
/* ----------------------------------------------------------------------------------------------------------------------------- */
// This is a completely modified layout that stikes a balance between muscle memory for keys, where I was coming from a standard
// Qwerty keyboard, and efficiency gained by using layers. I've switched tab and esc because it's more natural to me this way, and
// added layer switch on hold functionality for each key. Enter has moved to the key beside LOWER, to allow usage while still having
// the right hand on the mouse.
// Lower incorporates a numpad on the right side, and all of the symbols included on the left. There is logic for the symbols needed for
// calculators and math are located around the numpad, and coding symbols are placed in easy to remember spots.
// CAPS has moved to the Fn layer, and a few additional shortcut modifiers like CTRL_ALT_UP and DOWN for adding additional cursors in VSCode.
// Play/Pause has a prime spot on the base layer, and the Fn version skips to next track
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* MIT Layout (QWERTY)
*
* ,------------------------------------------------------------------------.
* |FN,Esc| q | w | e | r | t | y | u | i | o | p |Bsp |
* |------------------------------------------------------------------------|
|CSW,Tab| a | s | d | f | g | h | j | k | l | ; |Ctl,'|
* |------------------------------------------------------------------------|
* |Shift |Win,z| x | c | v | b | n | m | , | . | / |Sft,\|
* |------------------------------------------------------------------------|
* | | | |Ctl,Ent|LOWER| Space |RAISE|Alt,Play| | | |
* `------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid( /* QWERTY */
LTESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
MTTAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MTRCTLQUO,
KC_LSFT, MTLGUI_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MTRSFTBSLS,
KC_NO, KC_NO, KC_NO, MTENTER, TD(UNDS_LOWER), KC_SPC, KC_SPC, MO(3), MTLALT_PL, KC_NO, KC_NO, KC_NO
),
/* MIT Layout (COLEMAK_VCP)
*
* ,------------------------------------------------------------------------.
* |FN,ESC| q | w | f | d | b | j | l | u | y | ; | Bsp |
* |------------------------------------------------------------------------|
|CSW,Tab| a | r | s | t | g | m | n | e | i | o |Ctl,'|
* |------------------------------------------------------------------------|
* |Shift |Win,z| x | v | c | p | k | h | , | . | / |Sft,\|
* |------------------------------------------------------------------------|
* | | | |Ctl,Ent|LWR,_| Space |RAISE|Alt,Play| | | |
* `------------------------------------------------------------------------'
*/
[_COLEMAK_VCP] = LAYOUT_planck_grid( /* COLEMAK_VCP */
LTESC, KC_Q, KC_W, KC_F, KC_D, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
MTTAB, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, MTRCTLQUO,
KC_LSFT, MTLGUI_Z, KC_X, KC_V, KC_C, KC_P, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, MTRSFTBSLS,
KC_NO, KC_NO, KC_NO, MTENTER, TD(UNDS_LOWER), KC_SPC, KC_SPC, MO(3), MTLALT_PL, KC_NO, KC_NO, KC_NO
),
/* MIT Layout (RAISE)
*
* ,----------------------------------------------------------------------------.
* | ~ | ! | | | | | | Cut | Undo| Redo|P2TXT| Bsp |
* |----------------------------------------------------------------------------|
* | |Menu | | | | |ARROW |SELWORD|Copy|Paste|WinPst| " |
* |----------------------------------------------------------------------------|
* | |Vol+ |Vol- | Mute| | |Braces|Braces2| < | > | ? | ! |
* |----------------------------------------------------------------------------|
* | | | | |Adjust| | | | | | |
* `----------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid( /* RAISE */
KC_TILD, KC_EXLM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CUT, KC_UNDO, KC_REDO, KC_PTXT, KC_BSPC,
KC_TRNS, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ARROW, SELWORD, KC_COPY, KC_PASTE, KC_WINPASTE, KC_DQUO,
KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, BRACES, BRACES2, KC_LABK, KC_RABK, KC_QUES, KC_EXLM,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO
),
/* MIT Layout (LOWER)
* XZ
* ,-----------------------------------------------------------------------.
* | ` | ! | # | $ | < | > | : | 7 | 8 | 9 | = | Bsp |
* |-----------------------------------------------------------------------|
* | ' | _ | ^ | % | ( | ) | M | 4 | 5 | 6 | - | + |
* |-----------------------------------------------------------------------|
* |Shift| | | & | " | { | } | @ | 1 | 2 | 3 | / | * |
* |-----------------------------------------------------------------------|
* | | | | | | |MO(6),0| . | | | |
* `-----------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid( /* LOWER */
KC_GRV, KC_EXLM, KC_HASH, KC_DLR, KC_LABK, KC_RABK, KC_COLN, KC_P7, KC_P8, KC_P9, KC_EQL, KC_BSPC,
KC_QUOT, KC_UNDS, KC_CIRC, KC_PERC, KC_LPRN, KC_RPRN, KC_M, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PPLS,
KC_TRNS, KC_PIPE, KC_AMPR, KC_DQUO, KC_LCBR, KC_RCBR, KC_AT, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PAST,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_NO
),
/* MIT Layout (GAMING)
*.
* ,-----------------------------------------------------------------------.
* |ESC,`| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |EXIT GAMING|
* |-----------------------------------------------------------------------|
* | TAB | Q | W | E | R | T | I | 4 | 5 | 6 | - | + |
* |-----------------------------------------------------------------------|
* |Shift| A | S | D | F | G | K | 1 | 2 | 3 | / | * |
* |-----------------------------------------------------------------------|
* | | | | Ctl | Alt | SPACE | 0 | . | | | |
* `-----------------------------------------------------------------------'
*/
[_GAMING] = LAYOUT_planck_grid( /* GAMING */
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_P8, KC_9, KC_0, EXT_GAMING,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_I, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PPLS,
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_K, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PAST,
KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_P0, KC_PDOT, KC_NO, KC_NO, KC_NO
),
/* MIT Layout (FN)
*
* ,----------------------------------------------------------------------------.
* | |Ctl,F9 |Sft,F10|Alt,F11| F12 |MyComp|Calc |home | up | end |PrtScr| Del |
* |-----------------------------------------------------------------------------|
* | | F5 | F6 | F7 | F8 |DeskL |DeskR |left | down |right|ScrLck| CAPS|
* |-----------------------------------------------------------------------------|
* | | F1 | F2 | F3 | F4 |ALT_TAB|MicM |pgup |LCA_dn| pgdn|Pse/Brk| Ins|
* |-----------------------------------------------------------------------------|
* | | | | | | | |Alt,MNext| | | |
* `-----------------------------------------------------------------------------'
*/
[_FN] = LAYOUT_planck_grid( /* FUNCTION */
KC_TRNS, MTLCTL_F9, MTLSFT_F10, MTLALT_F11, KC_F12, KC_MYCM, KC_CALC, KC_HOME, KC_UP, KC_END, KC_PSCR, KC_DEL,
KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, DESKTL, DESKTR, KC_LEFT, KC_DOWN, KC_RGHT, KC_SCRL, KC_CAPS,
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, ALT_TAB, MICMUTE, KC_PGUP, LCA(KC_DOWN), KC_PGDN, KC_PAUSE, KC_INS,
KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MTLALT_NXT, KC_NO, KC_NO, KC_NO
),
/* MIT Layout (ADJUST)
*
* ,-----------------------------------------------------------------------------.
* |RGBtog|Ms3 | Ms2 |MsUp | Ms1 | Hue+| Hue- | Sat+| Sat- |Brt+ |Brt- | Boot |
* |-----------------------------------------------------------------------------|
* |RGBMod| MWL | MsL |MDn |MsR |GAMING| |AU_ON|AU_OFF|MU_ON|MU_OF| Debug|
* |-----------------------------------------------------------------------------|
* | |MWLft|MWUp |NWDn |NWRght|QWERTY|CMK_VCP|MI_ON|MI_OF | | |MU_Mod|
* |-----------------------------------------------------------------------------|
* | | | |SLEEP| | | | | | | |
* `-----------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid( /* ADJUST LAYER */
RGB_TOG, KC_BTN3, KC_BTN2, KC_MS_U, KC_BTN1, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QK_BOOT,
RGB_MOD, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, GAMING, KC_NO, AU_ON, AU_OFF, MU_ON, MU_OFF, DB_TOGG,
KC_TRNS, KC_WH_L, KC_WH_U, KC_WH_D, KC_WH_R, QWERTY, COLEMAK_VCP, MI_ON, MI_OFF, KC_TRNS, KC_TRNS, MU_NEXT,
KC_NO, KC_NO, KC_NO, KC_SLEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO
)
};
#ifdef AUDIO_ENABLE
float layerswitch_song[][2] = SONG(PLANCK_SOUND);
float tone_startup[][2] = SONG(STARTUP_SOUND);
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_COLEMAK_VCP[][2] = SONG(COLEMAK_SOUND);
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
float tone_goodbye[][2] = SONG(GOODBYE_SOUND);
#endif
bool is_alt_tab_active = false;
layer_state_t layer_state_set_user(layer_state_t state) {
static bool is_this_layer_on = false;
if (layer_state_cmp(state, 4) != is_this_layer_on) {
is_this_layer_on = layer_state_cmp(state, 4);
if (is_this_layer_on) {
PLAY_SONG(layerswitch_song);
}
else {
stop_all_notes();
}
}
if (is_alt_tab_active) {
unregister_code(KC_LALT);
is_alt_tab_active = false;
}
return state;
switch (get_highest_layer(state)) {
case _ADJUST:
rgblight_setrgb (0xFF, 0x00, 0x00);
break;
case _LOWER:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
case _NUMPAD:
rgblight_setrgb (0x00, 0x00, 0xFF);
break;
case _RAISE:
rgblight_setrgb (0x7A, 0x00, 0xFF);
break;
case _FN:
rgblight_setrgb (0x00, 0xFF, 0x00);
break;
default: // for any other layers, or the default layer
rgblight_setrgb (0xFF, 0xFF, 0xFF);
break;
}
return state;
}
// void dance_media (tap_dance_state_t *state, void *user_data)
// if (state->count == 1) {
// tap_code(KC_MPLY);
// } else if (state->count == 2) {
// tap_code (KC_MNXT);
// } else if (state->count == 3) {
// tap_code(KC_MPRV);
// } else {
// reset_tap_dance (state);
// }
// }
// tap_dance_action_t tap_dance_actions[] = {
// [0] = ACTION_TAP_DANCE_FN (dance_media),
// };
// Determine the current tap dance state
td_state_t cur_dance(tap_dance_state_t *state) {
if (state->interrupted) return TD_SINGLE_HOLD;
if (state->count == 1) {
if (!state->pressed) return TD_SINGLE_TAP;
else return TD_SINGLE_HOLD;
} else if (state->count == 2) return TD_DOUBLE_TAP;
else return TD_UNKNOWN;
}
// Initialize tap structure associated with example tap dance key
static td_tap_t usl_tap_state = {
.is_press_action = true,
.state = TD_NONE
};
// Functions that control what our tap dance key does
void usl_finished(tap_dance_state_t *state, void *user_data) {
usl_tap_state.state = cur_dance(state);
switch (usl_tap_state.state) {
case TD_SINGLE_TAP:
tap_code16(KC_UNDS);
break;
case TD_SINGLE_HOLD:
layer_on(_LOWER);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
break;
case TD_DOUBLE_TAP:
// Check to see if the layer is already set
if (layer_state_is(_LOWER)) {
// If already set, then switch it off
layer_off(_LOWER);
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_goodbye);
#endif
} else {
// If not already set, then switch the layer on
layer_on(_LOWER);
#ifdef AUDIO_ENABLE
PLAY_SONG(layerswitch_song);
#endif
}
break;
default:
break;
}
}
void usl_reset(tap_dance_state_t *state, void *user_data) {
// If the key was held down and now is released then switch off the layer
if (usl_tap_state.state == TD_SINGLE_HOLD) {
layer_off(_LOWER);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
usl_tap_state.state = TD_NONE;
}
// Associate our tap dance key with its functionality
tap_dance_action_t tap_dance_actions[] = {
[UNDS_LOWER] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, usl_finished, usl_reset)
};
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case TD(UNDS_LOWER):
return 175;
default:
return TAPPING_TERM;
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (!process_select_word(keycode, record, SELWORD)) { return false; }
if (!process_caps_word(keycode, record)) { return false; }
const uint8_t mods = get_mods();
const uint8_t oneshot_mods = get_oneshot_mods();
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case KC_CAPS:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
register_code(KC_CAPS);
}
return false;
break;
case GAMING:
if (record->event.pressed) {
layer_off(_RAISE);
layer_off(_LOWER);
layer_off(_ADJUST);
layer_on(_GAMING);
#ifdef AUDIO_ENABLE
PLAY_SONG(layerswitch_song);
#endif
}
return false;
break;
case EXT_GAMING:
if (record->event.pressed) {
layer_off(_GAMING);
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_goodbye);
#endif
}
return false;
break;
case COLEMAK_VCP:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK_VCP);
}
return false;
break;
case BRACES: // Types (), or {}, and puts cursor between braces.
if (record->event.pressed) {
clear_mods(); // Temporarily disable mods.
clear_oneshot_mods();
if ((mods | oneshot_mods) & MOD_MASK_SHIFT) {
SEND_STRING("{}");
} else {
SEND_STRING("<>");
}
tap_code(KC_LEFT); // Move cursor between braces.
set_mods(mods); // Restore mods.
}
return false;
case BRACES2: // Types [], or <>, and puts cursor between braces.
if (record->event.pressed) {
clear_mods(); // Temporarily disable mods.
clear_oneshot_mods();
if ((mods | oneshot_mods) & MOD_MASK_SHIFT) {
SEND_STRING("()");
} else {
SEND_STRING("[]");
}
tap_code(KC_LEFT); // Move cursor between braces.
set_mods(mods); // Restore mods.
}
return false;
case ARROW: // Arrow macro, types -> or =>.
if (record->event.pressed) {
if ((mods | oneshot_mods) & MOD_MASK_SHIFT) { // Is shift held?
del_mods(MOD_MASK_SHIFT); // Temporarily delete shift.
del_oneshot_mods(MOD_MASK_SHIFT);
SEND_STRING("->");
set_mods(mods); // Restore mods.
} else {
SEND_STRING("=>");
}
}
return false;
case ALT_TAB: // super alt tab macro
if (record->event.pressed) {
if (!is_alt_tab_active) {
is_alt_tab_active = true;
register_code(KC_LALT);
}
register_code(KC_TAB);
} else {
unregister_code(KC_TAB);
}
return false;
break;
}
return true;
}
enum combo_events {
EM_EMAIL,
EM_WORK_EMAIL,
HTML_P,
HTML_TITLE,
HTML_DIV,
HTML_HTML,
HTML_HEAD,
HTML_BODY,
HTML_FOOTER,
HTML_A_HREF,
HTML_IMG,
CSS_STYLE,
HTML_GENERIC_TAG,
CTLRGHT,
CTLLEFT
};
const uint16_t PROGMEM email_combo[] = {KC_E, KC_M, COMBO_END};
const uint16_t PROGMEM email_work_combo[] = {KC_E, KC_K, COMBO_END};
const uint16_t PROGMEM html_p_combo[] = {KC_P, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_title_combo[] = {KC_T, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_div_combo[] = {KC_D, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_html_combo[] = {KC_Q, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_head_combo[] = {KC_W, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_body_combo[] = {KC_R, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_footer_combo[] = {KC_X, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_a_href_combo[] = {KC_A, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_img_combo[] = {KC_F, KC_DOT, COMBO_END};
const uint16_t PROGMEM css_style_combo[] = {KC_S, KC_DOT, COMBO_END};
const uint16_t PROGMEM html_generic_tag_combo[] = {KC_G, KC_DOT, COMBO_END};
const uint16_t PROGMEM ctrrght_combo[] = {KC_RGHT, KC_DOWN, COMBO_END};
const uint16_t PROGMEM ctrleft_combo[] = {KC_LEFT, KC_DOWN, COMBO_END};
// const uint8_t combo_mods = get_mods();
// const uint8_t combo_oneshot_mods = get_oneshot_mods();
combo_t key_combos[] = {
[EM_EMAIL] = COMBO_ACTION(email_combo),
[EM_WORK_EMAIL] = COMBO_ACTION(email_work_combo),
[HTML_P] = COMBO_ACTION(html_p_combo),
[HTML_TITLE] = COMBO_ACTION(html_title_combo),
[HTML_DIV] = COMBO_ACTION(html_div_combo),
[HTML_HTML] = COMBO_ACTION(html_html_combo),
[HTML_HEAD] = COMBO_ACTION(html_head_combo),
[HTML_BODY] = COMBO_ACTION(html_body_combo),
[HTML_FOOTER] = COMBO_ACTION(html_footer_combo),
[HTML_A_HREF] = COMBO_ACTION(html_a_href_combo),
[HTML_IMG] = COMBO_ACTION(html_img_combo),
[CSS_STYLE] = COMBO_ACTION(css_style_combo),
[HTML_GENERIC_TAG] = COMBO_ACTION(html_generic_tag_combo),
[CTLRGHT] = COMBO_ACTION(ctrrght_combo),
[CTLLEFT] = COMBO_ACTION(ctrleft_combo),
};
/* COMBO_ACTION(x) is same as COMBO(x, KC_NO) */
void process_combo_event(uint16_t combo_index, bool pressed) {
switch(combo_index) {
case EM_EMAIL:
if (pressed) {
SEND_STRING("aricbouwers@outlook.com");
}
break;
case EM_WORK_EMAIL:
if (pressed) {
SEND_STRING("acrossonbouwers@rjc.ca");
}
break;
case HTML_DIV:
if (pressed) {
SEND_STRING("<div></div>");
for (int i = 0; i < 6; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_P:
if (pressed) {
SEND_STRING("<p></p>");
for (int i = 0; i < 4; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_TITLE:
if (pressed) {
SEND_STRING("<title></title>");
for (int i = 0; i < 8; i++) {
tap_code16(KC_LEFT);
}
}
break;
case CSS_STYLE:
if (pressed) {
SEND_STRING("<style></style>");
for (int i = 0; i < 8; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_HTML:
if (pressed) {
SEND_STRING("<html lang=\"en\"></html>");
for (int i = 0; i < 7; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_HEAD:
if (pressed) {
SEND_STRING("<head></head>");
for (int i = 0; i < 7; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_BODY:
if (pressed) {
SEND_STRING("<body></body>");
for (int i = 0; i < 7; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_FOOTER:
if (pressed) {
SEND_STRING("<footer></footer>");
for (int i = 0; i < 9; i++) {
tap_code16(KC_LEFT);
}
}
break;
case HTML_A_HREF:
if (pressed) {
SEND_STRING("<a href=\"link_goes_here\">name_of_link_goes_here</a>");
tap_code16(KC_HOME);
for (int i = 0; i < 10; i++) {
tap_code16(KC_RGHT);
}
}
break;
case HTML_IMG:
if (pressed) {
SEND_STRING("<img src=\"image_source_or_link_goes_here\" alt=\"name_if_cant_load\" width=\"num_pixels\" height=\"num_pixels\">");
tap_code16(KC_HOME);
for (int i = 0; i < 11; i++) {
tap_code16(KC_RGHT);
}
}
break;
case HTML_GENERIC_TAG:
if (pressed) {
SEND_STRING("<TAG></TAG>");
tap_code16(KC_ESC);
for (int i = 0; i < 9; i++) {
tap_code16(KC_LEFT);
}
tap_code16(LCTL(KC_D));
tap_code16(LCTL(KC_D));
tap_code16(KC_BSPC);
}
break;
case CTLLEFT:
if (pressed) {
tap_code16(C(KC_LEFT));
}
break;
case CTLRGHT:
if (pressed) {
tap_code16(C(KC_RGHT));
}
break;
}
}

View file

@ -1,78 +0,0 @@
```
QWERTY LAYER
* ,------------------------------------------------------------------------.
* |FN,Esc| q | w | e | r | t | y | u | i | o | p |Bsp |
* |------------------------------------------------------------------------|
|CSW,Tab| a | s | d | f | g | h | j | k | l | ; |Ctl,'|
* |------------------------------------------------------------------------|
* |Shift |Win,z| x | c | v | b | n | m | , | . | / |Sft,\|
* |------------------------------------------------------------------------|
* | | | |Ctl,Ent|LOWER| Space |RAISE|Alt,Play| | | |
* `------------------------------------------------------------------------'
COLEMAK_VCP(default) LAYER
* ,------------------------------------------------------------------------.
* |FN,ESC| q | w | f | d | b | j | l | u | y | ; | Bsp |
* |------------------------------------------------------------------------|
|CSW,Tab| a | r | s | t | g | m | n | e | i | o |Ctl,'|
* |------------------------------------------------------------------------|
* |Shift |Win,z| x | v | c | p | k | h | , | . | / |Sft,\|
* |------------------------------------------------------------------------|
* | | | |Ctl,Ent|LWR,_| Space |RAISE|Alt,Play| | | |
* `------------------------------------------------------------------------'
LOWER LAYER
* ,-----------------------------------------------------------------------.
* | ` | ! | # | $ | < | > | : | 7 | 8 | 9 | = | Bsp |
* |-----------------------------------------------------------------------|
* | ' | _ | ^ | % | ( | ) | M | 4 | 5 | 6 | - | + |
* |-----------------------------------------------------------------------|
* |Shift| | | & | " | { | } | @ | 1 | 2 | 3 | / | * |
* |-----------------------------------------------------------------------|
* | | | | | | |MO(6),0| . | | | |
* `-----------------------------------------------------------------------'
RAISED LAYER
* ,-----------------------------------------------------------------------------.
* | ~ | ! | | | | | | Cut | Undo| Redo|P2TXT| Bsp |
* |-----------------------------------------------------------------------------|
* | |Menu | | | | | ARROW |SELWORD|Copy|Paste|WinPst| " |
* |-----------------------------------------------------------------------------|
* | |Vol+ |Vol- | Mute| | | Braces|Braces2| < | > | ? | ! |
* |-----------------------------------------------------------------------------|
* | | | | |Adjust| | | | | | |
* `-----------------------------------------------------------------------------'
FN LAYER
* ,----------------------------------------------------------------------------.
* | |Ctl,F9 |Sft,F10|Alt,F11| F12 |MyComp|Calc |home | up | end |PrtScr| Del |
* |-----------------------------------------------------------------------------|
* | | F5 | F6 | F7 | F8 |DeskL |DeskR |left | down |right|ScrLck| CAPS|
* |-----------------------------------------------------------------------------|
* | | F1 | F2 | F3 | F4 |ALT_TAB| MicM|pgup |LCA_dn| pgdn|Pse/Brk| Ins|
* |-----------------------------------------------------------------------------|
* | | | | | | | |Alt,MNext| | | |
* `-----------------------------------------------------------------------------'
GAMING LAYER
* ,-----------------------------------------------------------------------.
* |ESC,`| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |EXIT GAMING|
* |-----------------------------------------------------------------------|
* | TAB | Q | W | E | R | T | I | 4 | 5 | 6 | - | + |
* |-----------------------------------------------------------------------|
* |Shift| A | S | D | F | G | K | 1 | 2 | 3 | / | * |
* |-----------------------------------------------------------------------|
* | | | | Ctl | Alt | SPACE | 0 | . | | | |
* `-----------------------------------------------------------------------'
ADJUST LAYER
* ,-----------------------------------------------------------------------------.
* |RGBtog|Ms3 | Ms2 |MsUp | Ms1 | Hue+| Hue- | Sat+| Sat- |Brt+ |Brt- | RESET|
* |-----------------------------------------------------------------------------|
* |RGBMod| MWL | MsL |MDn |MsR |GAMING| |AU_ON|AU_OFF|MU_ON|MU_OF| Debug|
* |-----------------------------------------------------------------------------|
* | |MWLft|MWUp |NWDn |NWRght|QWERTY|CMK_VCP|MI_ON|MI_OF | | |MU_Mod|
* |-----------------------------------------------------------------------------|
* | | | |SLEEP| | | | | | | |
* `-----------------------------------------------------------------------------'
```

View file

@ -1,10 +0,0 @@
BOOTMAGIC_ENABLE = no
CONSOLE_ENABLE = no
BACKLIGHT_ENABLE = yes
MIDI_ENABLE = yes
TAP_DANCE_ENABLE = yes
DIP_SWITCH_ENABLE = no
COMBO_ENABLE = yes
SRC += features/select_word.c
SRC += features/caps_word.c

View file

@ -1,52 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4

View file

@ -1,241 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
#include "muse.h"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Default layer
* ,-----------------------------------------------------------------------------------.
* | 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 | Fun | - | ' |Enter |
* `-----------------------------------------------------------------------------------'
*/
[0] = LAYOUT_ortho_4x12(
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_GRV, KC_BSLS, 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, MO(1), KC_MINS, KC_QUOT, KC_ENT),
/* Function layer
* ,-----------------------------------------------------------------------------------.
* | ! | @ | Up | $ | % | | | PgUp | 7 | 8 | 9 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | ( | Left | Down |Right | ) | | | PgDn | 4 | 5 | 6 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | [ | ] | # | { | } | ^ | & | * | 1 | 2 | 3 | + |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Upper| Ins | | | | | | | | . | 0 | = |
* `-----------------------------------------------------------------------------------'
*/
[1] = LAYOUT_ortho_4x12(
KC_EXLM, KC_AT, KC_UP, KC_DLR, KC_PERC, KC_NO, KC_NO, KC_PGUP, KC_7, KC_8, KC_9, KC_BSPC, KC_LPRN, KC_LEFT, KC_DOWN, KC_RGHT, KC_RPRN, KC_NO, KC_NO, KC_PGDN, KC_4, KC_5, KC_6, KC_NO, KC_LBRC, KC_RBRC, KC_HASH, KC_LCBR, KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR, KC_1, KC_2, KC_3, KC_PLUS, TG(2), KC_INS, KC_LGUI, KC_LSFT, KC_DEL, KC_LCTL, KC_LALT, KC_SPC, KC_TRNS, KC_DOT, KC_0, KC_EQL),
/* Upper layer
* ,-----------------------------------------------------------------------------------.
* | Ins | Home | | End | PgUp | | | Up | F7 | F8 | F9 | F10 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Del | | | | PgDn | | | Down | F4 | F5 | F6 | F11 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Vol+ | | | | | | | F1 | F2 | F3 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Vol- | | | | | | | |PrtSc |ScrLk | Play |
* `-----------------------------------------------------------------------------------'
*/
[2] = LAYOUT_ortho_4x12(
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_NO, KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12, KC_NO, KC_VOLD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0), KC_PSCR, KC_SCRL, KC_MPLY)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
return false;
break;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
#ifdef KEYBOARD_planck_rev5
writePinLow(E6);
#endif
} else {
unregister_code(KC_RSFT);
#ifdef KEYBOARD_planck_rev5
writePinHigh(E6);
#endif
}
return false;
break;
case PLOVER:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
stop_all_notes();
PLAY_SONG(plover_song);
#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_SONG(plover_gb_song);
#endif
layer_off(_PLOVER);
}
return false;
break;
}
return true;
}
bool muse_mode = false;
uint8_t last_muse_note = 0;
uint16_t muse_counter = 0;
uint8_t muse_offset = 70;
uint16_t muse_tempo = 50;
bool encoder_update_user(uint8_t index, bool clockwise) {
if (muse_mode) {
if (IS_LAYER_ON(_RAISE)) {
if (clockwise) {
muse_offset++;
} else {
muse_offset--;
}
} else {
if (clockwise) {
muse_tempo+=1;
} else {
muse_tempo-=1;
}
}
} else {
if (clockwise) {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_DOWN);
#else
tap_code(KC_PGDN);
#endif
} else {
#ifdef MOUSEKEY_ENABLE
tap_code(KC_MS_WH_UP);
#else
tap_code(KC_PGUP);
#endif
}
}
return true;
}
bool dip_switch_update_user(uint8_t index, bool active) {
switch (index) {
case 0: {
#ifdef AUDIO_ENABLE
static bool play_sound = false;
#endif
if (active) {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_song); }
#endif
layer_on(_ADJUST);
} else {
#ifdef AUDIO_ENABLE
if (play_sound) { PLAY_SONG(plover_gb_song); }
#endif
layer_off(_ADJUST);
}
#ifdef AUDIO_ENABLE
play_sound = true;
#endif
break;
}
case 1:
if (active) {
muse_mode = true;
} else {
muse_mode = false;
}
}
return true;
}
void matrix_scan_user(void) {
#ifdef AUDIO_ENABLE
if (muse_mode) {
if (muse_counter == 0) {
uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
if (muse_note != last_muse_note) {
stop_note(compute_freq_for_midi_note(last_muse_note));
play_note(compute_freq_for_midi_note(muse_note), 0xF);
last_muse_note = muse_note;
}
}
muse_counter = (muse_counter + 1) % muse_tempo;
} else {
if (muse_counter) {
stop_all_notes();
muse_counter = 0;
}
}
#endif
}
bool music_mask_user(uint16_t keycode) {
switch (keycode) {
case RAISE:
case LOWER:
return false;
default:
return true;
}
}

View file

@ -1,9 +0,0 @@
![Layout Image](https://imgur.com/G9TNUzy.png)
# Keyboardio Atreus layout for Planck
This is the same layout as the new Atreus from Keyboardio (the one with 44 keys, so not the atreus v1).
There are 4 unused keys in the center as the Planck has 48 keys.
It is mostly for people with a Planck to try this new layout before buying.
More details here: https://shop.keyboard.io/products/keyboardio-atreus

View file

@ -1 +0,0 @@
SRC += muse.c

View file

@ -1,29 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_planck_grid( /* 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,
BL_STEP, KC_LGUI, KC_LALT, KC_LCTL, MO(3), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
// Space is repeated to accommadate for both spacebar wiring positions
),
[1] = LAYOUT_planck_grid( /* 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,
DF(0), KC_LGUI, KC_LALT, KC_LCTL, MO(3), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[2] = LAYOUT_planck_grid( /* RAISE */
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TRNS, DF(0), DF(1), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
KC_TRNS, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
[3] = LAYOUT_planck_grid( /* LOWER */
S(KC_GRV), S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), S(KC_7), S(KC_8), S(KC_9), S(KC_0), KC_BSPC,
KC_TRNS, DF(0), DF(1), LSFT(RSFT(KC_PAUSE)), KC_TRNS, KC_TRNS, KC_TRNS, S(KC_MINS), S(KC_EQL), S(KC_LBRC), S(KC_RBRC), S(KC_BSLS),
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
)
};

View file

@ -1,22 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # 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 SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,40 +0,0 @@
#pragma once
#ifndef KEYBOARD_planck_light
#define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 3
#endif
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
#define MUSIC_MASK (keycode != KC_NO)
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2

View file

@ -1,138 +0,0 @@
[
{
"name": "The Aviator",
"author": "John Ramsay",
"notes": "Designed for aeronautical data entry on the OLKB Planck.",
"switchMount": "cherry",
"switchBrand": "gateron",
"switchType": "KS-3-Green",
"plate": true
},
[
{
"c": "#ADADAD",
"t": "#000000\n#3f76d4\n#d67509"
},
"\nDel\nDel\n\n\n\n\n\n\nEsc",
{
"c": "#CDC1B0"
},
"\n!\nF1\n\n\n\n\n\n\nQ",
"\n@\nF2\n\n\n\n\n\n\nW",
"\n#\nF3\n\n\n\n\n\n\nE",
"\n$\nF4\n\n\n\n\n\n\nR",
"\n%\n\n\n\n\n\n\n\nT",
"\n^\nN\n\n\n\n\n\n\nY",
"\n&\nS\n\n\n\n\n\n\nU",
"\n*\n7\n\n\n\n\n\n\nI",
"\n(\n8\n\n\n\n\n\n\nO",
"\n)\n9\n\n\n\n\n\n\nP",
{
"c": "#ADADAD",
"t": "#000000",
"a": 7
},
"Back Space"
],
[
"Tab",
{
"c": "#CDC1B0",
"t": "#000000\n#3f76d4\n#d67509",
"a": 4
},
"\n~\nF5\n\n\n\n\n\n\nA",
"\n`\nF6\n\n\n\n\n\n\nS",
{
"t": "#000000\n\n#d67509"
},
"\n\nF7\n\n\n\n\n\n\nD",
"\n\nF8\n\n\n\n\n\n\nF",
{
"t": "#000000",
"a": 7
},
"G",
{
"t": "#000000\n\n#d67509",
"a": 4
},
"\n\nE\n\n\n\n\n\n\nH",
{
"t": "#000000\n#3f76d4\n#d67509"
},
"\n_\nW\n\n\n\n\n\n\nJ",
"\n+\n4\n\n\n\n\n\n\nK",
"\n{\n5\n\n\n\n\n\n\nL",
"\n}\n6\n\n\n\n\n\n\n:\n;",
"\n\\\nTab\n\n\n\n\n\n\n\"\n'"
],
[
{
"c": "#ADADAD",
"t": "#000000",
"a": 7
},
"Shift",
{
"c": "#CDC1B0",
"t": "#000000\n\n#d67509",
"a": 4
},
"\n\nF9\n\n\n\n\n\n\nZ",
"\n\nF10\n\n\n\n\n\n\nX",
"\n\nF11\n\n\n\n\n\n\nC",
"\n\nF12\n\n\n\n\n\n\nV",
{
"t": "#000000",
"a": 7
},
"B",
{
"t": "#000000\n\n#d67509",
"a": 4
},
"\n\n+\n\n\n\n\n\n\nN",
{
"t": "#000000\n#3f76d4\n#d67509"
},
"\n-\n-\n\n\n\n\n\n\nM",
"\n=\n1\n\n\n\n\n\n\n<\n,",
"\n[\n2\n\n\n\n\n\n\n>\n.",
"\n]\n3\n\n\n\n\n\n\n?\n/",
{
"c": "#ADADAD",
"t": "#000000",
"a": 7
},
"Return"
],
[
"Fn",
"Ctrl",
"Alt",
"Meta",
{
"c": "#9FACBF"
},
"&dArr;",
{
"c": "#CDC1B0"
},
"",
"",
{
"c": "#E5A65B"
},
"&uArr;",
{
"c": "#ADADAD",
"t": "#000000\n#3f76d4\n#d67509",
"a": 4
},
"\nHome\n0\n\n\n\n\n\n\n&larr;",
"\nPDwn\n.\n\n\n\n\n\n\n&darr;",
"\nPUp\nShift\n\n\n\n\n\n\n&uarr;",
"\nEnd\nReturn\n\n\n\n\n\n\n&rarr;"
]
]

View file

@ -1,199 +0,0 @@
/* Copyright 2017 John Ramsay
* Aviator Keymap v1.0
*
* Designed for aeronautical data entry on the OLKB Planck.
*/
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers {
_QWERTY,
_DATA,
_LOWER,
_RAISE,
_ADJUST
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
DATA,
LOWER,
RAISE,
BACKLIT
};
#define ___x___ KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, 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 ,
BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Data
* ,-----------------------------------------------------------------------------------.
* | Esc | Home | Up | End | | | N | S | 7 | 8 | 9 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | Left | Down | Right| | | E | W | 4 | 5 | 6 | Tab |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | | + | - | 1 | 2 | 3 |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . |Shift |Enter |
* `-----------------------------------------------------------------------------------'
*/
[_DATA] = LAYOUT_planck_grid(
KC_ESC, KC_HOME, KC_UP, KC_END, ___x___, ___x___, KC_N, KC_S, KC_7, KC_8, KC_9, KC_BSPC,
KC_TAB, KC_LEFT, KC_DOWN, KC_RIGHT, ___x___, ___x___, KC_E, KC_W, KC_4, KC_5, KC_6, KC_TAB,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, ___x___, KC_PLUS, KC_MINS, KC_1, KC_2, KC_3, KC_ENT,
BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_0, KC_DOT, KC_RSFT, KC_ENT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | ~ | ` | | | | | _ | + | { | } | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | - | = | [ | ] | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Home |Pg Dn |Pg Up | End |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_DEL, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
_______, KC_TILD, KC_GRV, ___x___, ___x___, ___x___, ___x___, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
_______, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | Del | F1 | F2 | F3 | F4 | | N | S | 7 | 8 | 9 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | F5 | F6 | F7 | F8 | | E | W | 4 | 5 | 6 | Tab |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F9 | F10 | F11 | F12 | | + | - | 1 | 2 | 3 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | 0 | . |Shift |Enter |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, ___x___, KC_N, KC_S, KC_7, KC_8, KC_9, KC_BSPC,
_______, KC_F5, KC_F6, KC_F7, KC_F8, ___x___, KC_E, KC_W, KC_4, KC_5, KC_6, KC_TAB,
_______, KC_F9, KC_F10, KC_F11, KC_F12, ___x___, KC_PLUS, KC_MINS, KC_1, KC_2, KC_3, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_0, KC_DOT, KC_RSFT, KC_ENT
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | Esc | Reset| Debug| | | | | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| Data | | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
KC_ESC, QK_BOOT, DB_TOGG, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, ___x___, KC_DEL,
_______, ___x___, ___x___, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, DATA, ___x___, ___x___, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, ___x___, ___x___, ___x___, ___x___, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
#ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
}
return false;
break;
case DATA:
if (record->event.pressed) {
set_single_persistent_default_layer(_DATA);
#ifdef BACKLIGHT_BREATHING
breathing_enable();
#endif
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
uint8_t default_layer = get_highest_layer(default_layer_state);
if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_BREATHING
breathing_enable();
#endif
}
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
uint8_t default_layer = get_highest_layer(default_layer_state);
if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
}
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
uint8_t default_layer = get_highest_layer(default_layer_state);
if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_BREATHING
breathing_enable();
#endif
}
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
uint8_t default_layer = get_highest_layer(default_layer_state);
if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
}
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_BREATHING
backlight_step();
#endif
} else {
unregister_code(KC_RSFT);
}
return false;
break;
}
return true;
}

View file

@ -1,68 +0,0 @@
# The Aviator
Designed for aeronautical data entry on the OLKB Planck.
![Imgur](https://i.imgur.com/lj6uMYI.png)
## Layers
````
Qwerty
,-----------------------------------------------------------------------------------.
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | A | S | D | F | G | H | J | K | L | ; | " |
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
`-----------------------------------------------------------------------------------'
Data
,-----------------------------------------------------------------------------------.
| Esc | Home | Up | End | | | N | S | 7 | 8 | 9 | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | Left | Down | Right| | | E | W | 4 | 5 | 6 | Tab |
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| Z | X | C | V | | + | - | 1 | 2 | 3 |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Brite| Ctrl | Alt | GUI |Lower | Space |Raise | 0 | . |Shift |Enter |
`-----------------------------------------------------------------------------------'
Lower
,-----------------------------------------------------------------------------------.
| Del | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | ~ | ` | | | | | _ | + | { | } | \ |
|------+------+------+------+------+------|------+------+------+------+------+------|
| | | | | | | | - | = | [ | ] | |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | Home |Pg Dn |Pg Up | End |
`-----------------------------------------------------------------------------------'
Raise
,-----------------------------------------------------------------------------------.
| Del | F1 | F2 | F3 | F4 | | N | S | 7 | 8 | 9 | Bksp |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | F5 | F6 | F7 | F8 | | E | W | 4 | 5 | 6 | Tab |
|------+------+------+------+------+------|------+------+------+------+------+------|
| | F9 | F10 | F11 | F12 | | + | - | 1 | 2 | 3 | |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | 0 | . |Shift |Enter |
`-----------------------------------------------------------------------------------'
Adjust (Lower + Raise)
,-----------------------------------------------------------------------------------.
| Esc | Reset| Debug| | | | | | | | | Del |
|------+------+------+------+------+-------------+------+------+------+------+------|
| | | |Aud on|Audoff|AGnorm|AGswap|Qwerty| Data | | | |
|------+------+------+------+------+------|------+------+------+------+------+------|
| |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | |
`-----------------------------------------------------------------------------------'
````
## Notes
Supports LED backlighting.

View file

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

View file

@ -1,65 +0,0 @@
#include QMK_KEYBOARD_H
// 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.
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 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[0] = LAYOUT_planck_grid(
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_RSFT, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Reset | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[1] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Reset | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[2] = LAYOUT_planck_grid(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
};

View file

@ -1,2 +0,0 @@
# A more basic Planck Layout for copying

View file

@ -1,22 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # 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 SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,14 +0,0 @@
// name result chord keys
COMB(QW_ESC, KC_ESC, KC_Q, KC_W)
COMB(CV_DEL, KC_DEL, KC_C, KC_V)
COMB(XC_BSPC, KC_BSPC, KC_X, KC_C)
COMB(WE_LBRC, KC_LBRC, KC_W, KC_E)
COMB(ER_RBRC, KC_RBRC, KC_E, KC_R)
COMB(SD_LPRN, KC_LPRN, KC_S, KC_D)
COMB(DF_RPRN, KC_RPRN, KC_D, KC_F)
COMB(FG_BSLS, KC_BSLS, KC_F, KC_G)
COMB(HJ_SLSH, KC_SLSH, KC_H, KC_J)
COMB(DQ_LGUI, KC_LGUI, KC_DOT, KC_QUOT)
COMB(CD_LALT, KC_LALT, KC_COMM, KC_DOT)
COMB(MC_LSFT, KC_LSFT, KC_M, KC_COMM)
COMB(NM_LCTL, KC_LCTL, KC_N, KC_M)

View file

@ -1,7 +0,0 @@
// Copyright 2021 Your Name (@bghull)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define AUTO_SHIFT_TIMEOUT 135
#define ONESHOT_TIMEOUT 1000
#define COMBO_TERM 20

View file

@ -1,100 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
#include "g/keymap_combo.h"
#include "muse.h"
#define COMBO_ONLY_FROM_LAYER QWERTY
enum planck_layers {
QWERTY,
COLMAK,
NAVNUM,
FUNC
};
#define BspNAV LT(NAVNUM, KC_BSPC)
#define SpcFUN LT(FUNC, KC_SPC)
#define OneSFT OSM(MOD_LSFT)
#define OneALT OSM(MOD_LALT)
#define OneCTL OSM(MOD_LCTL)
#define OneWIN OSM(MOD_LGUI)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* ,-----------------------------------------------------------------------------------.
* | 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 | , < | . > | ' " |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Ctrl |NAVNUM| |Space |BspNAV| |
* `-----------------------------------------------------------------------------------'
*/
[QWERTY] = LAYOUT_planck_grid(
KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
_______, _______, _______, KC_LCTL, MO(NAVNUM),_______, _______, KC_SPC, BspNAV, _______, _______, _______
),
[COLMAK] = LAYOUT_planck_grid(
KC_Q, KC_W, KC_F, KC_P, KC_B, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
KC_A, KC_R, KC_S, KC_T, KC_G, _______, _______, KC_M, KC_N, KC_E, KC_I, KC_O,
KC_Z, KC_X, KC_C, KC_D, KC_V, _______, _______, KC_K, KC_H, KC_COMM, KC_DOT, KC_QUOT,
_______, _______, _______, KC_LCTL, MO(NAVNUM),_______, _______, KC_SPC, BspNAV, _______, _______, _______
),
/* NAVNUM
* ,-----------------------------------------------------------------------------------.
* |Enter | Home | Up | End | | RST | - | 7 | 8 | 9 | 0 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |OneSFT| Left | Down |Right | ` ~ | CLMK | + | 4 | 5 | 6 |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |OneCTL|OneALT| Tab | _ |OneWIN| QWER | = | 1 | 2 | 3 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | |SpcFUN| Ctrl | |
* `-----------------------------------------------------------------------------------'
*/
[NAVNUM] = LAYOUT_planck_grid(
KC_ENT, KC_HOME, KC_UP, KC_END, _______, _______, QK_BOOT, KC_PMNS, KC_7, KC_8, KC_9, KC_0,
OneSFT, KC_LEFT, KC_DOWN, KC_RGHT, KC_GRV, _______, DF(COLMAK), KC_PPLS, KC_4, KC_5, KC_6, KC_ENT,
OneCTL, OneALT, KC_TAB, KC_UNDS, OneWIN, _______, DF(QWERTY), KC_EQL, KC_1, KC_2, KC_3, _______,
_______, _______, _______, _______, _______, _______, _______, SpcFUN, KC_LCTL, _______, _______, _______
),
/* FUNC: Mousekeys + F keys
* ,-----------------------------------------------------------------------------------.
* | |Rclick| MsUp |Lclick| WhUp | | | F7 | F8 | F9 | F10 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | MsLt | MsDn | MsRt | WhDn | |OneALT| F4 | F5 | F6 | F11 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | |Mclick| | | | | F1 | F2 | F3 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[FUNC] = LAYOUT_planck_grid(
_______, KC_BTN2, KC_MS_U, KC_BTN1, KC_WH_U, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10,
_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, _______, OneALT , KC_F4, KC_F5, KC_F6, KC_F11,
_______, _______, KC_BTN3, _______, _______, _______, _______, _______, KC_F1, KC_F2, KC_F3, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
};

View file

@ -1,6 +0,0 @@
SRC += muse.c
AUTO_SHIFT_ENABLE = yes
MOUSEKEY_ENABLE = yes
AUDIO_ENABLE = no
COMBO_ENABLE = yes
VPATH += keyboards/gboards

View file

@ -1,135 +0,0 @@
#include QMK_KEYBOARD_H
#include "keymap_german.h"
// for intellisense, has to be commented for building
/*
#include "..\..\..\..\quantum\keymap_extras\keymap_german.h"
#include "..\..\..\..\tmk_core\common\keycode.h"
*/
/* This Layout tries to emulate the Bone2 Variant of Neo2, and is intended to be used with a German QWERTZ Softwarelayout.
It has "üäöß" as it is optimized for a mix of German & English.
My favourite features are the placement of the special characters often used for programming right on the home row
and the number & navigation block combo, so you never have to move your hands from their home position.
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Bone2 (adapted)
* ,-----------------------------------------------------------------------------------.
* | ß | J | D | U | A | X | P | H | L | M | W | Q |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| //hold for M1, tap for Enter
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[0] = LAYOUT_planck_grid(
DE_SS, DE_J, DE_D, DE_U, DE_A, DE_X, DE_P, DE_H, DE_L, DE_M, DE_W, DE_Q ,
// LT(1,KC_TAB), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) ,
MO(1), DE_C, DE_T, DE_I, DE_E, DE_O, DE_B, DE_N, DE_R, DE_S, DE_G, LT(1,KC_ENT) ,
KC_LSFT, DE_F, DE_V, DE_UDIA, DE_ADIA, DE_ODIA, DE_Y, DE_Z, DE_COMM, DE_DOT, DE_K, KC_LSFT ,
KC_LCTL, KC_LGUI, KC_LALT, MO(4), MO(2), KC_SPC, KC_SPC, MO(2), MO(4), KC_RALT, KC_ESC, KC_RCTL
),
/* M1 Special Characters
* very ergonomic placement for coding
* ,-----------------------------------------------------------------------------------.
* | ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| //hold for M1, tap for Enter
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| # | ~ | | | $ | | + | % | " | ' | ; |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[1] = LAYOUT_planck_grid(
DE_DEG, DE_AT, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LABK, DE_RABK, DE_EQL, DE_AMPR, DE_ACUT ,
_______, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QUES, DE_LPRN, DE_RPRN, DE_MINS, DE_COLN, _______ ,
_______, DE_HASH, DE_TILD, DE_PIPE, DE_DLR, DE_EURO, DE_PLUS, DE_PERC, DE_DQUO, DE_QUOT, DE_SCLN, _______ ,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* M2 Navigation & Number Blocks
* very easy to get used to & intuituve placement
* ,-----------------------------------------------------------------------------------.
* | | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[2] = LAYOUT_planck_grid(
XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_INS ,
KC_TAB, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_ENT ,
_______, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, DE_0, DE_1, DE_2, DE_3, DE_COMM, _______ ,
_______, _______, _______, MO(3), _______, _______, _______, _______, MO(3), _______, _______, _______
),
/* M3 Switched Navigation & Number Blocks for one handed use
* accessed by sliding from M2 to M3 with thumb
* ,-----------------------------------------------------------------------------------.
* | Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[3] = LAYOUT_planck_grid(
KC_INS, XXXXXXX, DE_7, DE_8, DE_9, XXXXXXX, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, XXXXXXX ,
_______, XXXXXXX, DE_4, DE_5, DE_6, DE_DOT, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______ ,
_______, DE_0, DE_1, DE_2, DE_3, DE_COMM, XXXXXXX, KC_TAB, XXXXXXX, KC_ENT, XXXXXXX, _______ ,
_______, _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, _______, _______
),
/* M4 Function & Media Keys
* ,-----------------------------------------------------------------------------------.
* | | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[4] = LAYOUT_planck_grid(
XXXXXXX, XXXXXXX, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX ,
KC_TAB, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, DE_SUP3, KC_F4, KC_F5, KC_F6, KC_F11, KC_ENT ,
_______, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, DE_SUP2, KC_F1, KC_F2, KC_F3, KC_F10, _______ ,
_______, _______, _______, _______, MO(5), _______, _______, MO(5), _______, _______, _______, _______
),
/* M5 Switched Function & Media Keys|
* accessed by sliding from M4 to M5 with thumb
* ,-----------------------------------------------------------------------------------.
* | | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
* `-----------------------------------------------------------------------------------'
*/
[5] = LAYOUT_planck_grid(
XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, XXXXXXX, KC_PSCR, KC_SCRL, KC_PAUS, XXXXXXX, XXXXXXX ,
_______, DE_SUP3, KC_F4, KC_F5, KC_F6, KC_F11, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______ ,
_______, DE_SUP2, KC_F1, KC_F2, KC_F3, KC_F10, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, _______ ,
_______, _______, _______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, _______, _______
)
};

View file

@ -1,96 +0,0 @@
Bone2Planck
=====================================
This layout tries to emulate the Bone2 variant of Neo2, and is intended to be used with a German QWERTZ softwarelayout.
It has "üäöß" as it is optimized for a mix of German & English.
The special character layer and the navigation & number block layer are inspired by the Neo2 layers,
designed to keep the fingers near the home row.
Bone2 wiki page: http://wiki.neo-layout.org/wiki/Bone
To build, run "make" from within the \bone2planck folder.
## Bone2 (adapted) Base Layer
```
,-----------------------------------------------------------------------------------.
| ß | J | D | U | A | X | P | H | L | M | W | Q |
|------+------+------+------+------+-------------+------+------+------+------+------|
| M1 | C | T | I | E | O | B | N | R | S | G |M1/Ent| hold: M1, tap: Enter
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| F | V | Ü | Ä | Ö | Y | Z | , | . | K |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```
## M1 Special Characters
very ergonomic placement for coding
```
,-----------------------------------------------------------------------------------.
| ° | @ | _ | [ | ] | ^ | ! | < | > | = | & | ´ |
|------+------+------+------+------+-------------+------+------+------+------+------|
| M1 | \ | / | { | } | * | ? | ( | ) | - | : |M1/Ent| hold: M1, tap: Enter
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| # | ~ | | | $ | € | + | % | " | ' | ; |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | M4 | M2 | Space | M2 | M4 | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```
## M2 Navigation & Number Blocks
very easy to get used to & intuituve placement
```
,-----------------------------------------------------------------------------------.
| | PgUp | Bksp | Up | DEL | PgDn | | 7 | 8 | 9 | | Ins |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | Home | Lft | Down | Right| End | | 4 | 5 | 6 | . | Enter|
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| | Tab | | Enter| | 0 | 1 | 2 | 3 | , |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | M3 | M2 | Space | M2 | M3 | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```
## M4 Function & Media Keys
```
,-----------------------------------------------------------------------------------.
| | | Print|Scroll|Pause | | | F7 | F8 | F9 | F12 | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | | Mute | Vol- | Vol+ | | ³ | F4 | F5 | F6 | F11 | Enter|
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| | Prev | Play | Next | | ² | F1 | F2 | F3 | F10 |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | M4 | M5 | Space | M5 | M4 | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```
##Switched layers for one handed access:
### M3 Switched Navigation & Number Blocks
accessed by sliding from M2 to M3 with thumb
```
,-----------------------------------------------------------------------------------.
| Ins | | 7 | 8 | 9 | | PgUp | Bksp | Up | DEL | PgDn | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | | 4 | 5 | 6 | . | Home | Left | Down | Right| End | Enter|
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| 0 | 1 | 2 | 3 | , | | Tab | | Enter| |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | M3 | | Space | | M3 | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```
### M5 Switched Function & Media Keys
accessed by sliding from M4 to M5 with thumb
```
,-----------------------------------------------------------------------------------.
| | | F7 | F8 | F9 | F12 | | Print|Scroll| Pause| | |
|------+------+------+------+------+-------------+------+------+------+------+------|
| Tab | ³ | F4 | F5 | F6 | F11 | | Mute | Vol- | Vol+ | | Enter|
|------+------+------+------+------+------|------+------+------+------+------+------|
| Shift| ² | F1 | F2 | F3 | F10 | | Prev | Play | Next | |Shift |
|------+------+------+------+------+------+------+------+------+------+------+------|
| Ctrl | GUI | Alt | | M5 | Space | M5 | | Alt | Esc | Ctrl |
`-----------------------------------------------------------------------------------'
```

View file

@ -1,20 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # 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 SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,46 +0,0 @@
#pragma once
#define TAPPING_TERM 150
#define PERMISSIVE_HOLD
// Disable all RGB effects
#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#undef ENABLE_RGB_MATRIX_ALPHAS_MODS
#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
#undef ENABLE_RGB_MATRIX_BREATHING
#undef ENABLE_RGB_MATRIX_BAND_SAT
#undef ENABLE_RGB_MATRIX_BAND_VAL
#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#undef ENABLE_RGB_MATRIX_CYCLE_ALL
#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#undef ENABLE_RGB_MATRIX_DUAL_BEACON
#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON
#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#undef ENABLE_RGB_MATRIX_RAINDROPS
#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP
#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
#undef ENABLE_RGB_MATRIX_SPLASH
#undef ENABLE_RGB_MATRIX_MULTISPLASH
#undef ENABLE_RGB_MATRIX_SOLID_SPLASH
#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
// Most tactile encoders have detents every 4 stages
#define ENCODER_RESOLUTION 4

View file

@ -1,384 +0,0 @@
/* Copyright 2015-2017 Jack Humbert
* 2020 Niclas Meyer
*
* 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/>.
*/
#include QMK_KEYBOARD_H
#define K(kc) (1ull<<((kc) - ALPHA))
#define KALPHA K(ALPHA)
#define KBETA K(BETA)
#define KGAMMA K(GAMMA)
#define KDELTA K(DELTA)
#define KEPSILON K(EPSILON)
#define KZETA K(ZETA)
#define KTHETA K(THETA)
#define KIOTA K(IOTA)
#define KKAPPA K(KAPPA)
enum keys {
ALPHA = SAFE_RANGE,
BETA,
GAMMA,
DELTA,
EPSILON,
ZETA,
THETA,
IOTA,
KAPPA,
LOCK,
NONE,
};
enum layers {
NORMAL,
QWERTY,
GAME,
LOWER,
RAISE,
PHI,
FN,
};
#define XXXX KC_NO
#define ____ KC_TRNS
#define CQWER LM(QWERTY, MOD_LCTL)
#define AQWER LM(QWERTY, MOD_LALT)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[NORMAL] = LAYOUT_planck_grid(
ALPHA, BETA, GAMMA, DELTA, ____, ____, ____, ____, DELTA, GAMMA, BETA, ALPHA,
EPSILON, ZETA, THETA, IOTA, ____, ____, ____, ____, IOTA, THETA, ZETA, EPSILON,
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
MO(PHI), CQWER, AQWER, MO(FN), KAPPA, ____, XXXX, KAPPA, MO(FN), ____, ____, MO(PHI)
),
[QWERTY] = LAYOUT_planck_grid(
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, SC_SENT,
MO(PHI), KC_LCTL, KC_LALT, KC_LGUI, MO(LOWER), KC_SPC, XXXX, MO(RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
),
[GAME] = LAYOUT_planck_grid(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_SPC, ____, XXXX, ____, KC_V, KC_B, ____, MO(PHI)
),
[LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
KC_DEL, ____, ____, ____, ____, ____, ____, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
____, ____, ____, ____, ____, ____, ____, KC_PGUP, KC_PGDN, KC_HOME, KC_END, ____,
____, ____, ____, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
[RAISE] = LAYOUT_planck_grid(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_DEL, ____, ____, ____, ____, ____, ____, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
____, ____, ____, ____, ____, ____, ____, KC_PGUP, KC_PGDN, KC_HOME, KC_END, ____,
____, ____, ____, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
[PHI] = LAYOUT_planck_grid(
QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, ____, ____, ____, ____, ____, ____, KC_DEL,
____, KC_F5, KC_F6, KC_F7, KC_F8, ____, ____, DF(QWERTY), DF(NORMAL), DF(GAME), ____, KC_F13,
____, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____, ____, ____, ____, ____, ____,
____, RGB_TOG, RGB_MOD, ____, ____, ____, XXXX, ____, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
[FN] = LAYOUT_planck_grid(
____, ____, KC_UP, ____, ____, ____, ____, ____, ____, KC_UP, ____, ____,
KC_DEL, KC_LEFT, KC_DOWN, KC_RIGHT, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL,
KC_HOME, KC_END, KC_PGUP, KC_PGDN, ____, ____, ____, ____, KC_PGDN, KC_PGUP, KC_HOME, KC_END,
____, ____, ____, ____, ____, ____, XXXX, ____, ____, ____, ____, ____
),
};
static uint16_t left_chord = 0;
static uint16_t right_chord = 0;
static bool locking = false;
static bool locked = false;
static uint16_t mods = 0;
#define PROCESS_MOD(mod) \
do { \
if ((mods & MOD_##mod) && !(keys & MOD_##mod)) { \
unregister_code16(KC_##mod); \
} \
if (!(mods & MOD_##mod) && (keys & MOD_##mod)) { \
register_code16(KC_##mod); \
} \
} while (0)
static void process_keys(uint16_t keys) {
if (keys == NONE) {
return;
}
if (keys == LOCK) {
locking = !locking;
return;
}
if ((keys & QK_ONE_SHOT_MOD) == QK_ONE_SHOT_MOD) {
PROCESS_MOD(LCTL);
PROCESS_MOD(LSFT);
PROCESS_MOD(LALT);
PROCESS_MOD(LGUI);
mods = keys & ~QK_ONE_SHOT_MOD;
locked = false;
if (locking) {
locking = false;
locked = true;
}
return;
}
// Normal key
tap_code16(keys);
locking = false;
if (mods && !locked) {
if (mods & MOD_LCTL) {
unregister_code16(KC_LCTL);
}
if (mods & MOD_LSFT) {
unregister_code16(KC_LSFT);
}
if (mods & MOD_LALT) {
unregister_code16(KC_LALT);
}
if (mods & MOD_LGUI) {
unregister_code16(KC_LGUI);
}
mods = 0;
}
}
static uint16_t chord_to_keys(uint16_t chord) {
switch (chord) {
// Unshifted Extra
case KKAPPA: return KC_SPC;
case KEPSILON | KZETA | KTHETA | KIOTA: return KC_ENT;
case KEPSILON | KZETA | KGAMMA | KIOTA: return KC_TAB;
case KEPSILON | KIOTA: return KC_BSPC;
case KKAPPA | KEPSILON: return KC_ESC;
// Shifted Extra
case KKAPPA | KEPSILON | KZETA | KTHETA | KIOTA: return S(KC_ENT);
case KKAPPA | KEPSILON | KZETA | KGAMMA | KIOTA: return S(KC_TAB);
case KKAPPA | KEPSILON | KIOTA: return S(KC_BSPC);
// Lowercase Letters
case KBETA: return KC_A;
case KZETA | KDELTA: return KC_B;
case KBETA | KGAMMA | KDELTA: return KC_C;
case KZETA | KTHETA | KIOTA: return KC_D;
case KDELTA: return KC_E;
case KGAMMA | KIOTA: return KC_F;
case KBETA | KTHETA: return KC_G;
case KZETA | KTHETA: return KC_H;
case KGAMMA: return KC_I;
case KBETA | KGAMMA | KIOTA: return KC_J;
case KBETA | KTHETA | KIOTA: return KC_K;
case KBETA | KGAMMA: return KC_L;
case KBETA | KDELTA: return KC_M;
case KZETA: return KC_N;
case KTHETA: return KC_O;
case KZETA | KGAMMA: return KC_P;
case KBETA | KTHETA | KDELTA: return KC_Q;
case KGAMMA | KDELTA: return KC_R;
case KTHETA | KIOTA: return KC_S;
case KIOTA: return KC_T;
case KZETA | KIOTA: return KC_U;
case KTHETA | KDELTA: return KC_V;
case KZETA | KGAMMA | KIOTA: return KC_W;
case KZETA | KTHETA | KDELTA: return KC_X;
case KBETA | KIOTA: return KC_Y;
case KZETA | KGAMMA | KDELTA: return KC_Z;
// Uppercase Letters
case KKAPPA | KBETA: return S(KC_A);
case KKAPPA | KZETA | KDELTA: return S(KC_B);
case KKAPPA | KBETA | KGAMMA | KDELTA: return S(KC_C);
case KKAPPA | KZETA | KTHETA | KIOTA: return S(KC_D);
case KKAPPA | KDELTA: return S(KC_E);
case KKAPPA | KGAMMA | KIOTA: return S(KC_F);
case KKAPPA | KBETA | KTHETA: return S(KC_G);
case KKAPPA | KZETA | KTHETA: return S(KC_H);
case KKAPPA | KGAMMA: return S(KC_I);
case KKAPPA | KBETA | KGAMMA | KIOTA: return S(KC_J);
case KKAPPA | KBETA | KTHETA | KIOTA: return S(KC_K);
case KKAPPA | KBETA | KGAMMA: return S(KC_L);
case KKAPPA | KBETA | KDELTA: return S(KC_M);
case KKAPPA | KZETA: return S(KC_N);
case KKAPPA | KTHETA: return S(KC_O);
case KKAPPA | KZETA | KGAMMA: return S(KC_P);
case KKAPPA | KBETA | KTHETA | KDELTA: return S(KC_Q);
case KKAPPA | KGAMMA | KDELTA: return S(KC_R);
case KKAPPA | KTHETA | KIOTA: return S(KC_S);
case KKAPPA | KIOTA: return S(KC_T);
case KKAPPA | KZETA | KIOTA: return S(KC_U);
case KKAPPA | KTHETA | KDELTA: return S(KC_V);
case KKAPPA | KZETA | KGAMMA | KIOTA: return S(KC_W);
case KKAPPA | KZETA | KTHETA | KDELTA: return S(KC_X);
case KKAPPA | KBETA | KIOTA: return S(KC_Y);
case KKAPPA | KZETA | KGAMMA | KDELTA: return S(KC_Z);
// Unshifted Numbers
case KEPSILON | KZETA: return KC_0;
case KEPSILON | KZETA | KIOTA: return KC_1;
case KEPSILON | KZETA | KTHETA: return KC_2;
case KEPSILON | KBETA: return KC_3;
case KEPSILON | KBETA | KDELTA: return KC_4;
case KEPSILON | KBETA | KGAMMA: return KC_5;
case KEPSILON | KBETA | KIOTA: return KC_6;
case KEPSILON | KTHETA: return KC_7;
case KEPSILON | KBETA | KGAMMA | KIOTA: return KC_8;
case KEPSILON | KGAMMA | KDELTA: return KC_9;
// Shifted Numbers
case KKAPPA | KEPSILON | KZETA | KIOTA: return KC_EXLM;
case KKAPPA | KEPSILON | KZETA | KTHETA: return KC_AT;
case KKAPPA | KEPSILON | KBETA: return KC_HASH;
case KKAPPA | KEPSILON | KBETA | KDELTA: return KC_DLR;
case KKAPPA | KEPSILON | KBETA | KGAMMA: return KC_PERC;
case KKAPPA | KEPSILON | KBETA | KIOTA: return KC_CIRC;
case KKAPPA | KEPSILON | KTHETA: return KC_AMPR;
case KKAPPA | KEPSILON | KBETA | KGAMMA | KIOTA: return KC_ASTR;
case KKAPPA | KEPSILON | KGAMMA | KDELTA: return KC_LPRN;
case KKAPPA | KEPSILON | KZETA: return KC_RPRN;
// Unshifted Symbols
case KEPSILON | KBETA | KTHETA | KIOTA: return KC_MINS;
case KEPSILON | KZETA | KTHETA | KDELTA: return KC_EQL;
case KEPSILON | KZETA | KGAMMA: return KC_LBRC;
case KEPSILON | KGAMMA | KIOTA: return KC_RBRC;
case KEPSILON | KBETA | KTHETA: return KC_BSLS;
case KEPSILON | KBETA | KGAMMA | KDELTA: return KC_SCLN;
case KEPSILON | KZETA | KDELTA: return KC_QUOT;
case KEPSILON | KTHETA | KIOTA: return KC_COMM;
case KEPSILON | KZETA | KGAMMA | KDELTA: return KC_DOT;
case KEPSILON | KGAMMA: return KC_SLSH;
case KEPSILON | KDELTA: return KC_GRV;
// Shifted Symbols
case KKAPPA | KEPSILON | KBETA | KTHETA | KIOTA: return KC_UNDS;
case KKAPPA | KEPSILON | KZETA | KTHETA | KDELTA: return KC_PLUS;
case KKAPPA | KEPSILON | KZETA | KGAMMA: return KC_LCBR;
case KKAPPA | KEPSILON | KGAMMA | KIOTA: return KC_RCBR;
case KKAPPA | KEPSILON | KBETA | KTHETA: return KC_PIPE;
case KKAPPA | KEPSILON | KBETA | KGAMMA | KDELTA: return KC_COLN;
case KKAPPA | KEPSILON | KZETA | KDELTA: return KC_DQT;
case KKAPPA | KEPSILON | KTHETA | KIOTA: return KC_LT;
case KKAPPA | KEPSILON | KZETA | KGAMMA | KDELTA: return KC_GT;
case KKAPPA | KEPSILON | KGAMMA: return KC_QUES;
case KKAPPA | KEPSILON | KDELTA: return KC_TILD;
// Modifiers
case KALPHA | KIOTA: return LOCK;
case KALPHA: return QK_ONE_SHOT_MOD; // Release all
case KALPHA | KBETA: return OSM(MOD_LCTL);
case KALPHA | KGAMMA: return OSM(MOD_LSFT);
case KALPHA | KDELTA: return OSM(MOD_LALT);
case KALPHA | KKAPPA: return OSM(MOD_LGUI);
case KALPHA | KBETA | KGAMMA: return OSM(MOD_LCTL | MOD_LSFT);
case KALPHA | KBETA | KDELTA: return OSM(MOD_LCTL | MOD_LALT);
case KALPHA | KBETA | KKAPPA: return OSM(MOD_LCTL | MOD_LGUI);
case KALPHA | KGAMMA | KDELTA: return OSM(MOD_LSFT | MOD_LALT);
case KALPHA | KGAMMA | KKAPPA: return OSM(MOD_LSFT | MOD_LGUI);
case KALPHA | KDELTA | KKAPPA: return OSM(MOD_LALT | MOD_LGUI);
case KALPHA | KBETA | KGAMMA | KDELTA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LALT);
case KALPHA | KBETA | KGAMMA | KKAPPA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LGUI);
case KALPHA | KBETA | KDELTA | KKAPPA: return OSM(MOD_LCTL | MOD_LALT | MOD_LGUI);
case KALPHA | KGAMMA | KDELTA | KKAPPA: return OSM(MOD_LSFT | MOD_LALT | MOD_LGUI);
case KALPHA | KBETA | KGAMMA | KDELTA | KKAPPA: return OSM(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI);
}
return NONE;
}
static uint16_t *get_hand(keypos_t *key) {
if (key->row <= 3) {
return &left_chord;
}
if (key->row <= 6) {
return &right_chord;
}
// row 7
if (key->col <= 2) {
return &right_chord;
} else {
return &left_chord;
}
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (keycode < ALPHA) {
return true;
}
uint16_t *chord = get_hand(&record->event.key);
if (record->event.pressed) {
*chord |= K(keycode);
return false;
}
if (*chord != 0) {
process_keys(chord_to_keys(*chord));
*chord = 0;
}
return false;
}
#ifdef KEYBOARD_planck_ez
#define LED_BRIGHTNESS 50
layer_state_t default_layer_state_set_user(layer_state_t state) {
switch (state) {
case 1U << NORMAL:
planck_ez_left_led_off();
planck_ez_right_led_off();
break;
case 1U << QWERTY:
planck_ez_left_led_level(LED_BRIGHTNESS);
planck_ez_right_led_off();
break;
case 1U << GAME:
planck_ez_left_led_off();
planck_ez_right_led_level(LED_BRIGHTNESS);
break;
}
return state;
}
#endif /* KEYBOARD_planck_ez */

View file

@ -1,104 +0,0 @@
# buffet's planck layout
## Layout
The Layout is based on keychords.
The general idea is that you're able to type everything with either hand, so that you can alternate between hands as you type.
The keys are in a 2x4 block in the top left and top right respectively (mirrored).
They have greek letter names (see `keymap.c` for more info).
Thumb added to any key means shift is pressed as well.
`-` means the finger presses nothing.
`^` means the finger presses the upper row.
`v` means the finger presses the lower row.
```
Space: thumb
Return: vvvv vvvv
Tab: vv^v v^vv
Bspace: v--v v--v
Esc: lower pinky and thumb
```
### Letters
```
a: -^-- --^-
b: -v-^ ^-v-
c: -^^^ ^^^-
d: -vvv vvv-
e: ---^ ^---
f: --^v v^--
g: -^v- -v^-
h: -vv- -vv-
i: --^- -^--
j: -^^v v^^-
k: -^vv vv^-
l: -^^- -^^-
m: -^-^ ^-^-
n: -v-- --v-
o: --v- -v--
p: -v^- -^v-
q: -^v^ ^v^-
r: --^^ ^^--
s: --vv vv--
t: ---v v---
u: -v-v v-v-
v: --v^ ^v--
w: -v^v v^v-
x: -vv^ ^vv-
y: -^-v v-^-
z: -v^^ ^^v-
```
### Numbers and Symbols
```
0: vv-- --vv
1: vv-v v-vv
2: vvv- -vvv
3: v^-- --^v
4: v^-^ ^-^v
5: v^^- -^^v
6: v^-v v-^v
7: v-v- -v-v
8: v^^v v^^v
9: v-^^ ^^-v
-: v^vv vv^v
=: vvv^ ^vvv
[: vv^- -^vv
]: v-^v v^-v
\: v^v- -v^v
;: v^^^ ^^^v
': vv-^ ^-vv
,: v-vv vv-v
.: vv^^ ^^vv
/: v-^- -^-v
`: v--^ ^--v
```
### Modifiers
Modifiers all use the top pinky key, and a combinations of modifiers you want to activate for the next keypress (very similar to how OMS work).
For the modifiers the top row of keys is used.
```
Control: Ringfinger
Shift: Middlefinger
Alt: Indexfinger
Super: Thumb
```
`^--v v--^` can be used to lock the next modifier input.
### Remaining
These combinations are unused.
```
v^v^
v-v^
v---
```

View file

@ -1,18 +0,0 @@
RGB_MATRIX_EFFECT(rainbow_stripe)
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
static HSV rainbow_stripe_math(HSV hsv, uint8_t i, uint8_t time) {
if (i >= 14 && i <= 21) {
hsv.h = g_led_config.point[i].x - time;
} else {
hsv.v = 0;
}
return hsv;
}
bool rainbow_stripe(effect_params_t* params) {
return effect_runner_i(params, &rainbow_stripe_math);
}
#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS

View file

@ -1,6 +0,0 @@
AUDIO_ENABLE = no
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
COMMAND_ENABLE = no
MOUSEKEY_ENABLE = no
RGB_MATRIX_CUSTOM_USER = yes

View file

@ -1,15 +0,0 @@
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(MARIO_MUSHROOM)
#define UNICODE_SONG_MAC SONG(COIN_SOUND)
#define UNICODE_SONG_LNX SONG(UNICODE_LINUX)
#define UNICODE_SONG_WIN SONG(UNICODE_WINDOWS)
#define UNICODE_SONG_WINC SONG(UNICODE_WINDOWS)
#endif
#define ENCODER_RESOLUTION 4
#define MOUSEKEY_DELAY 300
#define MOUSEKEY_INTERVAL 50
#define MOUSEKEY_MAX_SPEED 8
#define MOUSEKEY_TIME_TO_MAX 20

View file

@ -1,99 +0,0 @@
#include QMK_KEYBOARD_H
#include "muse.h"
extern keymap_config_t keymap_config;
enum custom_keycodes {
B_UPD = SAFE_RANGE,
B_SSH,
B_SSHK,
B_USR,
B_X11,
B_X12,
B_X13
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_planck_grid(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
LT(5,KC_TAB),KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, LT(4,KC_BSLS),
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(MOD_RSFT,KC_ENT),
KC_LCTL, KC_LGUI, KC_LALT, MO(3), MO(2), KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[1] = LAYOUT_planck_grid(
KC_TRNS, B_UPD, B_USR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_DEL,
KC_TRNS, B_SSH, B_SSHK, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_TRNS,
KC_TRNS, B_X11, B_X12, B_X13, KC_NO, KC_NO, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_PDOT, KC_PPLS, KC_PMNS
),
[2] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLSH, KC_QUOT, KC_MINS, KC_LCBR, KC_RCBR, KC_TRNS,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DQUO, KC_EQL, KC_LBRC, KC_RBRC, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UNDS, KC_LT, KC_GT, KC_NO
),
[3] = LAYOUT_planck_grid(
KC_TRNS, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_NO, KC_PSCR, KC_SCRL, KC_PAUS, KC_DEL,
KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PGUP, KC_MS_U, KC_PGDN, KC_TRNS,
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_HOME,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, KC_BTN3, KC_END
),
[4] = LAYOUT_planck_grid(
KC_TRNS, QK_BOOT, DB_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, MU_NEXT, AU_NEXT, MU_ON, AU_ON, KC_EJCT,
KC_TRNS, EE_CLR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, AU_PREV, MU_OFF, AU_OFF, KC_TRNS,
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_MPRV, KC_MNXT, KC_NO,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MSTP, KC_VOLD, KC_VOLU, KC_MPLY
),
[5] = LAYOUT_planck_grid(
UC(0xB0), UC(0xB9), UC(0xB2), UC(0xB3), UC(0xDF), UC(0x20AC), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, UC(0xC4), UC(0xD6), UC(0xDC), UC(0xBB), UC(0xAB), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, UC(0xE4), UC(0xF6), UC(0xFC), UC(0x2022), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UC_MAC, UC_LINX, UC_WIN, UC_WINC
)};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case B_UPD:
if (record->event.pressed) {
SEND_STRING("sudo apt update && sudo apt full-upgrade -yyy" SS_TAP(X_ENTER));
}
break;
case B_SSH:
if (record->event.pressed) {
SEND_STRING("cd /etc/ssh" SS_TAP(X_ENTER) "sudo shasum ssh_host_*" SS_TAP(X_ENTER) "sudo rm ssh_host_*" SS_TAP(X_ENTER) "sudo dpkg-reconfigure openssh-server" SS_TAP(X_ENTER));
}
break;
case B_SSHK:
if (record->event.pressed) {
SEND_STRING("ssh-keygen -t ed25519" SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_ENTER) SS_TAP(X_ENTER));
}
break;
case B_USR:
if (record->event.pressed) {
SEND_STRING("useradd -m user" SS_TAP(X_ENTER) "usermod -a -G sudo user" SS_TAP(X_ENTER) "chsh -s /bin/bash user" SS_TAP(X_ENTER) "passwd user" SS_TAP(X_ENTER));
}
break;
case B_X11:
if (record->event.pressed) {
SEND_STRING("sudo x11vnc -storepasswd /etc/x11vnc.pass" SS_TAP(X_ENTER));
}
break;
case B_X12:
if (record->event.pressed) {
SEND_STRING("sudo nano /lib/systemd/system/x11vnc.service" SS_TAP(X_ENTER) "[Unit]" SS_TAP(X_ENTER) "Description=Start X11VNC" SS_TAP(X_ENTER) "After=multi-user.target" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "[Service]" SS_TAP(X_ENTER) "Type=simple" SS_TAP(X_ENTER) "ExecStart=/usr/bin/x11vnc -display :0 -auth guess -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared -localhost -o /var/log/x11vnc.log" SS_TAP(X_ENTER) SS_TAP(X_ENTER) "[Install]" SS_TAP(X_ENTER) "WantedBy=multi-user.target");
}
break;
case B_X13:
if (record->event.pressed) {
SEND_STRING("sudo systemctl enable x11vnc.service" SS_TAP(X_ENTER));
}
break;
}
return true;
};

View file

@ -1,20 +0,0 @@
Buhearns Keymap (February 12th, 2019)
=====================================
Simple QWERTY keymap with german Unicode umlauts, special characters and several Linux commands. Intended to be working with ENGLISH layout.
## Buhearns base layer
```
,-----------------------------------------------------------------------------------.
| GESC | Q | W | E | R | T | Y | U | I | O | P | BKSP |
|------+------+------+------+------+-------------+------+------+------+------+------|
|M5/TAB| A | S | D | F | G | H | J | K | L | ; |M4/BSL| hold: M5, tap: TAB // hold: M4, tap: Backslash
|------+------+------+------+------+------|------+------+------+------+------+------|
|LSHIFT| Z | X | C | V | B | N | M | , | . | / |ST/ENT| hold: RSHIFT, tap: Enter
|------+------+------+------+------+------+------+------+------+------+------+------|
| CTRL | LGUI | LALT | M3 | M2 | SPACE | M1 | LEFT | DOWN | UP | RIGHT|
`-----------------------------------------------------------------------------------'
```
## Other layers are a WIP and being tested (DON'T WAIT FOR UPDATES!)

View file

@ -1,13 +0,0 @@
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = yes # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,22 +0,0 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_planck_grid( /* Native */
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, DF(1),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
KC_DEL, KC_LCTL, KC_NO, KC_LSFT, KC_LALT, KC_SPC, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
[1] = LAYOUT_planck_grid( /* QWERTY->PHOTOSHOP */
KC_DELETE, KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, DF(0),
KC_O, KC_G, KC_S, KC_U, KC_T, C(KC_R), KC_F21, KC_F10, KC_F11, KC_F7, KC_F8, KC_F9,
KC_TAB, C(S(A(KC_F9))), C(S(KC_I)), S(KC_M), KC_F1, A(KC_BSPC), KC_F18, KC_F19, KC_F23, KC_F20, KC_F22, C(S(A(KC_F12))),
KC_COMM, KC_DOT, KC_R, C(KC_H), MO(2), KC_SPC, C(KC_S), KC_F2, C(S(A(KC_X))), KC_F3, KC_F14
),
[2] = LAYOUT_planck_grid( /* PHOTOSHOP */
KC_ESC, C(KC_Z), C(KC_Y), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, C(S(A(KC_F7))), C(S(A(KC_F8))), C(S(KC_X)),
KC_C, KC_NO, S(KC_MINS), C(S(KC_I)), KC_NO, C(S(KC_BSPC)), KC_NO, KC_NO, KC_NO, KC_NO, C(S(KC_F5)), KC_NO,
C(KC_F2), C(S(KC_F2)), C(KC_0), C(S(KC_H)), MO(2), KC_SPC, C(S(KC_S)), KC_NO, KC_NO, KC_F24, KC_NO
)
};

View file

@ -1,22 +0,0 @@
# 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 # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # 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 SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,46 +0,0 @@
##Design goals:
1. Arrow keys always available.
2. As close to a to my US layout 107-key QWERTY keyboard as I could manage, (i.e. as few arbitrary decisions as possible).
3. Togglable DVORAK keyboard.
4. most frequently used things in the easiest to reach places.
5. Ability to game on it, just for fun.
My layout differs from most in the placement the ARROW keys, `ESC`, VOL keys, use of double-tap `CAPS`, and the GAME LOCK function.
I put the layer buttons in the usual spots. I originally wanted only function/symbols layer, but that proved detrimental. I use some timed press actions to save some space, but this has been accounted for, (see GAME LOCK below). I'm not fully satisfied with the current product (see NOTES below), so it may change in the future.
##Effective layers:
* Default later is obviously your letters and modifiers.
* Lower layer [NUMBER] is your numbers and punctuation.
* Upper layer [ACTION] is your symbols and actions.
* Function layer is the infrequently used function keys, layout toggle, game lock, and reset.
There is also a toggle for the DVORAK/QWERTY layers, but in normal typing this is not of concern.
###Special keys:
* `RSHFT` and `ENTER` are combined. Tap once for `ENTER` and hold for `RSHFT`. `ENTER` will be registered on release if released within 200 ms, else `RSHFT` is registered starting at 201 ms until release.
* If for some reason, this interferes with the normal usage of the `ENTER` key in any way, (some problem that may never happen), I have added a regular non-modified `ENTER` key on the same key in the [ACTION] layer.
* `LSHFT` and `CAPS` are also combined. The key works like a normal `LSHFT` unless double-tapped, in which case it counts as `CAPS`. This functionality unfortunately delays all key presses by at most 200 ms, but I have added ways to disable this both temporarily or permanently, described below.
* A failsafe `CAPS` key is on the same key in the [ACTION] layer.
* There are `UNDO`, `CUT`, `COPY`, and `PASTE` keys. This was intended to be a universal way to use these commands since in macOS cut is `⌘ + C` but in Windows it is `⌃ + C`. Unfortunately these special keys only work in Windows. ¯\\\_(ツ)\_/¯
##Game lock:
**TL;DR** the game lock toggle disables the double-tap `CAPS`, and disables `GUI` keys (WINDOWS key).
I wished for this keyboard to be fully usable in the most demanding of games. The most demanding game I know of is ARMA 3 which has a binding to practically every individual key of a 107-key keyboard. This means I need to have pretty much every key possible somewhere. I also wanted the keyboard to be responsive in games for every critical keypress. This means having a way to disable features that introduce an inherent delay to registering keys, such as double-tap.
I do not expect to see this used by the pros, but I enjoyed making it. As for use in ARMA 3, I got a little ways into the APEX campaign, but I found a few flaws. For Example, I cannot enable my HUD GPS since that requires `RCTRL`+`M` but `RCTRL` is not bound. The obvious fix is to rebind the action to a new key, but I still take this as a shortcoming of my layout.
###If you wish to disable double-tap
####Disable it temporarily
Turn on the game lock. While on, it registers as normal `LSHFT` and has no delay. Whether in game mode or not, `CAPS` is on the same key in the [ACTION] layer.
####Disable it permanently
Open the `Makefile` and set `TAP_DANCE_ENABLE = no`. I wrote the layout to compensate for this change, and no further changes to the code should be necessary. Whether or not it's disabled, `CAPS` is on the same key in the [ACTION] layer.
##Notes:
* `ALT` and `GUI` are reversed compared to the normal US layout. I will also be using my Planck on my mac, and that's the standard in the Apple ecosystem. I may add a special compiler flag in the future to swap the two.
* The DVORAK `Z` key is to the right of the `S` key instead of under it as part of a compromise I made to keep the ARROW keys available on the default layer. I prioritize the ARROW keys, so the DVORAK layout is the one to suffer.
* I also support the little tones that the default Planck layout features, identical to them too, (minus those for layouts I don't support). To enable it, open the `Makefile` and set `AUDIO_ENABLE = yes`.
![keyboard-layout](https://i.imgur.com/HHSZSQq.png)

View file

@ -1,26 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
#endif

View file

@ -1,209 +0,0 @@
// Layout picture at http://www.keyboard-layout-editor.com/#/gists/125febfad6960add078e6f14256539b6
#include QMK_KEYBOARD_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 _DVORAK 1
#define _LOCKED 2
#define _NUMBER 3
#define _ACTION 4
#define _FUNCTN 5
enum planck_keycodes {
QWERTY = SAFE_RANGE,
DVORAK,
NUMBER,
ACTION
};
// Key code names
#define SFT_ENT MT(MOD_RSFT, KC_ENT) // Tap for enter, hold for right shift
#define LOCK TG(_LOCKED)
#define KC_PSTE KC_PASTE
#ifdef TAP_DANCE_ENABLE
#define SFT_CAP TD(0) // Left shift, double tap for caps
#endif
#ifndef TAP_DANCE_ENABLE
#define SFT_CAP KC_LSFT // Regular left shift
#endif
// Tap Dance Definitions
#ifdef TAP_DANCE_ENABLE
tap_dance_action_t tap_dance_actions[] = {
[0] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS)
};
#endif
// Layout definitions
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* QWERTY
* ,-----------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Y | U | I | O | P | BKSP |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |*Shift| Z | X | C | V | B | N | M | , | . | Up |SftEnt|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Ctrl | Alt | Cmd | Vol- | ACTN | Space | NUMS | Vol+ | Left | Down | Left |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
SFT_CAP, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, SFT_ENT,
KC_LCTL, KC_LALT, KC_LGUI, KC_VOLD, ACTION, KC_SPC, KC_SPC, NUMBER, KC_VOLU, KC_LEFT, KC_DOWN, KC_RGHT
),
/* DVORAK
* ,-----------------------------------------------------------------------------------.
* | | ' | , | . | P | Y | F | G | C | R | L | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | A | O | E | U | I | D | H | T | N | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | ; | Q | J | K | X | B | M | W | V | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_DVORAK] = LAYOUT_planck_grid(
_______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
_______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_Z ,
_______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* LOCK
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Shift| | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | NULL | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_LOCKED] = LAYOUT_planck_grid(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* NUMBERS
* ,-----------------------------------------------------------------------------------.
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | ~ | NULL | NULL | NULL | | | _ | + | { | } | ? | / |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | ` | NULL | NULL | NULL | \ | - | = | [ | ] | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | NULL | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_NUMBER] = LAYOUT_planck_grid(
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
_______, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_QUES, KC_SLSH,
_______, KC_GRV, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______, _______,
_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______
),
/* ACTIONS
* ,-----------------------------------------------------------------------------------.
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | CAPS | Undo | Cut | Copy | Paste| NULL | NULL | NULL | NULL | NULL | PgUp | Enter|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | Mute | | NULL | | NULL | Home | PgDn | End |
* `-----------------------------------------------------------------------------------'
*/
[_ACTION] = LAYOUT_planck_grid(
_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL ,
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
KC_CAPS, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGUP, KC_ENT ,
_______, _______, _______, KC_MUTE, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_HOME, KC_PGDN, KC_END
),
/* FUNCTIONS
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | NULL | NULL | NULL | NULL | NULL |QWERTY|DVORAK| NULL | NULL | NULL | NULL | NULL |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Reset| NULL | Lock | NULL | | NULL | | NULL | NULL | NULL | NULL |
* `-----------------------------------------------------------------------------------'
*/
[_FUNCTN] = LAYOUT_planck_grid(
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_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 ,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, DVORAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
QK_BOOT, XXXXXXX, LOCK, XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
)
};
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
if (IS_LAYER_ON(_DVORAK)) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
layer_off(_DVORAK);
}
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
if (!IS_LAYER_ON(_DVORAK)) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak);
#endif
layer_on(_DVORAK);
}
}
return false;
break;
case NUMBER:
if (record->event.pressed) {
layer_on(_NUMBER);
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
} else {
layer_off(_NUMBER);
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
}
return false;
break;
case ACTION:
if (record->event.pressed) {
layer_on(_ACTION);
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
} else {
layer_off(_ACTION);
update_tri_layer(_NUMBER, _ACTION, _FUNCTN);
}
return false;
break;
}
return true;
}

View file

@ -1,22 +0,0 @@
# Build Options
# change to "no" to disable the options, or define them in the makefile.mk in
# the appropriate keymap folder that will get included automatically
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE = yes # 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.
TAP_DANCE_ENABLE = yes # Enables the double-tap functionality of keys
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend

View file

@ -1,38 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
#define MUSIC_MASK (keycode != KC_NO)
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
#endif

View file

@ -1,260 +0,0 @@
/* Copyright 2015-2017 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/>.
*/
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers {
_QWERTY,
_COLEMAK,
_DVORAK,
_LOWER,
_RAISE,
_PLOVER,
_ADJUST
};
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
PLOVER,
LOWER,
RAISE,
BACKLIT,
EXT_PLV
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Tab | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl | GUI | Alt | App |Lower | Space |Raise | - | = | \ | Alt |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT_planck_grid(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, 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, RSFT_T(KC_ENT) ,
KC_LCTL, KC_LGUI, KC_LALT, KC_APP, LOWER, KC_SPC, KC_SPC, RAISE, KC_MINS, KC_EQL, KC_BSLS, KC_RALT
),
/* 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] = LAYOUT_planck_grid(
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] = LAYOUT_planck_grid(
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
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | { | } | Del | Home | PgDn | PgUp | End | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | F5 | F6 |ISO ~ |ISO | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Mute | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_planck_grid(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
_______, _______, _______, KC_LCBR, KC_RCBR, KC_DEL, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, S(KC_NUHS), KC_MPRV, KC_MNXT, S(KC_NUBS), _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_MUTE
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | [ | ] | Del | Left | Down | Up | Right| | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Mute | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_planck_grid(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
_______, _______, _______, KC_LBRC, KC_RBRC, KC_DEL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_MPRV, KC_MNXT, KC_NUBS, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_MUTE
),
/* Plover layer (http://opensteno.org)
* ,-----------------------------------------------------------------------------------.
* | # | # | # | # | # | # | # | # | # | # | # | # |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | S | T | P | H | * | * | F | P | L | T | D |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | S | K | W | R | * | * | R | B | G | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Exit | | | A | O | | E | U | | | |
* `-----------------------------------------------------------------------------------'
*/
[_PLOVER] = LAYOUT_planck_grid(
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] = LAYOUT_planck_grid(
_______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,
_______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_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_SONG(plover_song);
#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_SONG(plover_gb_song);
#endif
layer_off(_PLOVER);
}
return false;
break;
}
return true;
}

View file

@ -1,2 +0,0 @@
# /u/Coloneljesus's Planck Layout

View file

@ -1,17 +0,0 @@
#pragma once
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
#define MIDI_BASIC
#define ENCODER_RESOLUTION 4
#define LEADER_TIMEOUT 300
#define TAPPING_TERM 180

View file

@ -1,197 +0,0 @@
#include QMK_KEYBOARD_H
#include "muse.h"
// Custom Keycode Definitions
#define LOWER MO(_LOWER)
#define RAISE MO(_RAISE)
#define META MO(_META)
#define KC_PRS LGUI(LALT(LCTL(KC_4)))
#define KC_EUR LALT(KC_4)
#define KC_MGRV LALT(KC_GRV)
#define KC_FORMAT LGUI(LALT(KC_L))
#define KC_FBSP LALT(KC_BSPC)
#define KC_FDEL LALT(KC_DEL)
#define KC_PS3 LSFT(LCTL(LGUI(KC_3)))
#define KC_PS4 LSFT(LCTL(LGUI(KC_4)))
#define HK_TM LALT(KC_2)
#define HK_AF9 LALT(KC_F9)
#define KC_SRC LGUI(KC_F12)
#define KC_RNME LSFT(KC_F6)
#define M_LGSPC LGUI_T(KC_SPC)
#define M_LCENT LCTL_T(KC_ENT)
#define M_LGENT LGUI_T(KC_ENT)
enum planck_layers {
_DEFAULT = 0,
_LOWER,
_RAISE,
_META,
_ADJUST
};
enum planck_keycodes {
KC_ARR = SAFE_RANGE, // ->
KC_FARR, // =>
HK_CLOS, // />
XD1, // :D
XD3, // :DDD
XD5, // :DDDDD
XD15, // :DDDDDDDDDDDDDDD
};
enum tapdancers {
T_BR = 0, // [, ]
T_PA, // (, )
T_CU, // {, }
T_DL, // $, €
T_SL, // slash, backslash
};
//Tap Dance Definitions
tap_dance_action_t tap_dance_actions[] = {
[T_BR] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
[T_PA] = ACTION_TAP_DANCE_DOUBLE(KC_LPRN, KC_RPRN),
[T_CU] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR, KC_RCBR),
[T_DL] = ACTION_TAP_DANCE_DOUBLE(KC_DLR, KC_EUR),
[T_SL] = ACTION_TAP_DANCE_DOUBLE(KC_SLSH, KC_BSLS),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT] = LAYOUT_planck_grid(
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, XXXXXXX, QK_LEAD,
KC_LGUI, KC_LCTL, KC_LALT, KC_LALT, LOWER, KC_SPC, META, RAISE, KC_RALT, KC_MPRV, KC_MPLY, KC_MNXT
),
[_LOWER] = LAYOUT_planck_grid(
KC_F1, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX,
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, XXXXXXX,
_______, HK_TM, XD1, XD3, XD5, XD15, XXXXXXX, XXXXXXX, KC_ARR, KC_FARR, HK_CLOS, XXXXXXX,
_______, _______, _______, _______, _______, KC_DEL, KC_FBSP, RAISE, KC_RALT, KC_VOLD, KC_MUTE, KC_VOLU
),
[_RAISE] = LAYOUT_planck_grid(
KC_MGRV, KC_MINUS, KC_EQL, KC_EXLM, KC_QUES, KC_PLUS, KC_PGUP, KC_HOME, KC_UP, KC_END, XXXXXXX, KC_FBSP,
KC_TILD, TD(T_BR), TD(T_CU), TD(T_PA), TD(T_DL), KC_SLSH, KC_RNME, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, KC_FORMAT,
_______, KC_UNDS, KC_DQUO, KC_QUOT, KC_PIPE, KC_BSLS, XXXXXXX, KC_SCLN, KC_COLN, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, KC_DEL, KC_FDEL, _______, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU
),
[_META] = LAYOUT_planck_grid(
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SRC, XXXXXXX,
KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F10, KC_F11, KC_F12, HK_AF9, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
[_ADJUST] = LAYOUT_planck_grid(
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, CG_TOGG, XXXXXXX,
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT
)
};
layer_state_t layer_state_set_user(layer_state_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case KC_ARR:
if (record->event.pressed) {
SEND_STRING("->");
}
return false;
case KC_FARR:
if (record->event.pressed) {
SEND_STRING("=>");
}
return false;
case XD1:
if (record->event.pressed) {
SEND_STRING(":D");
}
return false;
case XD3:
if (record->event.pressed) {
SEND_STRING(":DDD");
}
return false;
case XD5:
if (record->event.pressed) {
SEND_STRING(":DDDDD");
}
return false;
case XD15:
if (record->event.pressed) {
SEND_STRING(":DDDDDDDDDDDDDDD");
}
return false;
case HK_CLOS:
if (record->event.pressed) {
SEND_STRING("/>");
}
return false;
}
return true;
}
void leader_end_user(void) {
// Screenshot
if (leader_sequence_one_key(KC_S)) {
tap_code16(G(C(S(KC_4))));
}
// Record Screen
if (leader_sequence_two_keys(KC_S, KC_S)) {
tap_code16(S(G(KC_5)));
}
// 1Pass browser
if (leader_sequence_one_key(KC_A)) {
tap_code16(G(A(KC_BSLS)));
}
// 1Pass mini
if (leader_sequence_two_keys(KC_A, KC_A)) {
tap_code16(G(KC_BSLS));
}
// Comment out
if (leader_sequence_one_key(KC_F)) {
tap_code16(G(KC_SLSH));
}
// Spotlight
if (leader_sequence_one_key(KC_SPC)) {
tap_code16(G(KC_SPC));
}
// Auto format
if (leader_sequence_one_key(KC_ENT)) {
tap_code16(S(G(A(KC_F))));
}
// Focus file tree
if (leader_sequence_one_key(KC_TAB)) {
tap_code16(G(KC_1));
}
// Caps-lock
if (leader_sequence_two_keys(KC_TAB, KC_TAB)) {
tap_code16(KC_CAPS);
}
}

View file

@ -1,11 +0,0 @@
# Copface's planck keyboard layout
This layout utilizes tapdancing and leader keys as well as 3 extra layers for maximizing the efficiancy when programming.
Please see the keymap.c for how the keymap looks and works.
The home row is filled with everything one could need when working on web development,
It's all a layer away.
To build and flash this keymap, use this command:
qmk compile -kb planck/rev6 -km copface

View file

@ -1,11 +0,0 @@
SRC += muse.c
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
MIDI_ENABLE = no
AUDIO_ENABLE = yes
RGBLIGHT_ENABLE = no
TAP_DANCE_ENABLE = yes
LEADER_ENABLE = yes

View file

@ -1,49 +0,0 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif
#define MUSIC_MASK (keycode != KC_NO)
/*
* MIDI options
*/
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 2
#define PERMISSIVE_HOLD
// AutoShift config
#define AUTO_SHIFT_TIMEOUT 135
#define NO_AUTO_SHIFT_SPECIAL
// #define NO_AUTO_SHIFT_NUMERIC
// #define NO_AUTO_SHIFT_ALPHA
// TapDance config
#define TAPPING_TERM 150
#endif

View file

@ -1,200 +0,0 @@
/* Copyright 2015-2018 Jack Humbert, Corey Kump
*
* 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/>.
*/
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
enum planck_layers {
_COLEMAK,
_QWERTY,
_LOWER,
_LEANDOWN,
_RAISE,
_WOBBLE,
_PLOVER,
_ADJUST
};
/* This include relies on the layer constants above and so must be declared after them */
#include "tapdance.c"
enum planck_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
LOWER,
RAISE,
BACKLIT
};
/**
* Custom Corvec Bindings
*
* Previously used but currently unused bindings are commented out.
**/
// Activate the Wobble layer
#define KC_WOBL MO(_WOBBLE)
// Dual function with Raise
#define KC_RESC LT(_RAISE, KC_ESC)
// Dual functions with Lower
#define KC_LENT LT(_LOWER, KC_ENT)
#define KC_LQUT LT(_LEANDOWN, KC_QUOT)
// Dual functions with Shift
#define KC_SDEL MT(MOD_LSFT, KC_DEL)
#define KC_SAPP MT(MOD_LSFT, KC_APP)
/**
* Functions taking advantage of tap dance:
**/
// Tap once: quote. Hold: LEANDOWN layer. Tap twice: minus.
#define KC_TQTD TD(TD_QUOT_LEAN_MINS)
// Tap once: [. Hold: RALT. Tap twice: {
#define KC_TALT TD(TD_LBRC_RALT_LCBR)
// Tap once: ]. Hold: RGUI. Tap twice: }
#define KC_TGUI TD(TD_RBRC_RGUI_RCBR)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_COLEMAK] = LAYOUT_planck_grid(
//-----+----+----+----+----+----+----+----+----+----+----+----
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_RESC, KC_A , KC_R , KC_S , KC_T , KC_D , KC_H , KC_N , KC_E , KC_I , KC_O ,KC_TQTD,
//-----+----+----+----+----+----+----+----+----+----+----+----
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_K , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
//-----+----+----+----+----+----+----+----+----+----+----+----
KC_LCTL,KC_LGUI,KC_WOBL,KC_LALT,KC_LENT, KC_SPC, KC_SPC,RAISE,KC_SDEL,KC_TALT,KC_TGUI,KC_RCTL
),
[_QWERTY] = LAYOUT_planck_grid(
//-----+----+----+----+----+----+----+----+----+----+----+----
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_RESC, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_TQTD,
//-----+----+----+----+----+----+----+----+----+----+----+----
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_RSFT,
//-----+----+----+----+----+----+----+----+----+----+----+----
KC_LCTL,KC_LGUI,KC_WOBL,KC_LALT,KC_LENT, KC_SPC, KC_SPC,RAISE,KC_RALT,KC_SAPP,KC_RGUI,KC_RCTL
),
[_LOWER] = LAYOUT_planck_grid(
KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______,
_______,KC_LPRN,KC_RPRN,KC_LBRC,KC_RBRC,XXXXXXX,KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT,XXXXXXX,KC_MINS,
_______,KC_BSLS,KC_TILD,KC_PIPE,KC_EQL ,KC_UNDS,KC_HOME,KC_PGDN,KC_PGUP,KC_END ,KC_BSLS,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
[_LEANDOWN] = LAYOUT_planck_grid(
KC_GRV ,KC_EXLM, KC_AT ,KC_HASH, KC_DLR,KC_PERC,KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,_______,
_______,KC_LPRN,KC_RPRN,KC_LBRC,KC_RBRC,KC_LCBR,KC_LCBR,KC_DLR ,KC_PERC,KC_CIRC,_______,_______,
_______,KC_BSLS,KC_TILD,KC_PIPE,KC_EQL ,KC_UNDS,KC_HOME,KC_EXLM, KC_AT ,KC_HASH,KC_BSLS,_______,
_______,_______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP ,KC_RGHT
),
[_RAISE] = LAYOUT_planck_grid(
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,_______,
_______,KC_LPRN,KC_RPRN,KC_LCBR,KC_RCBR,XXXXXXX,XXXXXXX, KC_4 , KC_5 , KC_6 ,KC_PPLS,KC_MINS,
_______,KC_BSLS,KC_TILD,KC_PIPE,KC_EQL ,KC_UNDS,XXXXXXX, KC_1 , KC_2 , KC_3 ,KC_PAST,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
[_WOBBLE] = LAYOUT_planck_grid(
KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_NO ,KC_MUTE,KC_VOLD,KC_VOLU, KC_NO , KC_NO , KC_DEL,
_______, KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_NO ,KC_MPRV,KC_MPLY,KC_MSTP,KC_MNXT, KC_NO ,KC_BSLS,
_______, KC_F9 , KC_F10, KC_F11, KC_F12, KC_NO , KC_NO , KC_NO , KC_NO , KC_INS,KC_PSCR,_______,
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* |Colemk| | Debug|RGB Tg|RGB Md|RGB H+|RGB H-|RGB S+|RGB S-|RGB V+|RGB V-|Qwerty|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk| |AS On | AS + |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | |AS Rep|AS Off| AS - |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | Reset|
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_planck_grid(
COLEMAK, _______, DB_TOGG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, QWERTY ,
_______, _______, MU_NEXT, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, _______, AS_ON, AS_UP,
_______, AU_PREV, AU_NEXT, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, AS_RPT, AS_OFF, AS_DOWN,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
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
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
break;
}
return true;
}

View file

@ -1,28 +0,0 @@
# Corvec's Planck Layout
This layout is a development-focused layout with an emphasis on ergonomics. It is intended to be used in Colemak mode,
but has a full-QWERTY mode for gaming compatibility.
It utilizes redundancy for common keys so that they are more easily accessible in every task. For example, the common
layers, Raise and Lower, both can be activated with two different keys, each pressed with either hand. Certain symbols
( \~|+_ ) are on both layers, since the keys they take up are a bit out of the way. The minus symbol is available on the
quote key in a variety of ways - both layers, as well as via tap dance.
The right-hand Lower activation key activates a slightly different layer. The keys accessed by the opposite hand are the
same as the Lower layer, but the keys on the right hand differ. For this reason, we refer to this instead as the
Leandown layer.
Auto-shift is enabled, but there are also three shift keys, since typing with auto-shift is by necessity slow.
Movement is done Vim-style, on the hjkl / hnei keys, on the Lower layer so that it is easiest to activate it.
The arrow keys are mimicked by Home/PgDn/PgUp/End on the next row.
The arrow keys and broad navigation keys are replaced by a symbol-pad on the Leandown layer. However, in order to allow
single-hand navigation, the bottom right corner cluster becomes arrow keys.
Media keys are in the same location as the arrow keys, but are on the Wobble layer instead.
Toggle layers are minimized so that the state of the keyboard is more predictable. Shift Toggle is in the works, but
will not be included until it can be set to deactivate automatically.
Delete is accessible from the third Shift key.

Some files were not shown because too many files have changed in this diff Show more