Skip to content

Instantly share code, notes, and snippets.

@syrm
Last active January 9, 2024 09:09
Show Gist options
  • Save syrm/78f28223bb0eae1512913d346707418e to your computer and use it in GitHub Desktop.
Save syrm/78f28223bb0eae1512913d346707418e to your computer and use it in GitHub Desktop.
Bépo preonic
/* 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/>.
*/
#include QMK_KEYBOARD_H
#include "keymap_bepo.h"
enum preonic_layers {
_BEPO,
_LOWER,
_RAISE,
_ADJUST
};
enum preonic_keycodes {
BEPO = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
BACKLIT
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Bépo
* ,-----------------------------------------------------------------------------------.
* | $ | " | « | » | ( | ) | @ | + | - | / | * | = |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | B | É | P | O | È | ^ | V | D | L | J | Z |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | W | A | U | I | E | , | C | T | S | R | N | M |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | % | À | Y | X | . | K | ’ | Q | G | H | F | C |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Raise |Lower | Alt | Ctrl |Space |Shift |Enter | Ralt | Lower| Del | Win | Esc |
* `-----------------------------------------------------------------------------------'
*/
[_BEPO] = LAYOUT_preonic_grid(
BP_DLR, BP_DQUO, BP_LDAQ, BP_RDAQ, BP_LPRN, BP_RPRN, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL,
KC_TAB, BP_B, BP_EACU, BP_P, BP_O, BP_EGRV, BP_DCIR, BP_V, BP_D, BP_L, BP_J, BP_Z,
BP_W, BP_A, BP_U, BP_I, BP_E, BP_COMM, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
BP_PERC, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, BP_QUOT, BP_Q, BP_G, BP_H, BP_F, BP_CCED,
RAISE, LOWER, KC_LALT, KC_LCTL, KC_SPC, KC_LSFT, KC_ENT, KC_RALT, LOWER, KC_BSPC, KC_LGUI, KC_ESC
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | Reset|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | F1 | F2 | F3 | F4 | F5 | Home | PgDwn| PgUp | End | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F6 | F7 | F8 | F9 | F10 | Left | Down | Up | Right| | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | F11 | F12 | Del | Ins | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_preonic_grid(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, XXXXXXX,
XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F11, KC_F12, KC_DEL, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | BEPO |COLMK | | | | | | | | | | Light|
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | | | | | , | 7 | 8 | 9 | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | . | 4 | 5 | 6 | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | 0 | 1 | 2 | 3 | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_preonic_grid(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BACKLIT,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BP_COMM, BP_7, BP_8, BP_9, BP_EQL, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BP_DOT, BP_4, BP_5, BP_6, BP_MINS, BP_ASTR,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BP_0, BP_1, BP_2, BP_3, BP_PLUS, BP_SLSH,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Reset| Debug| | | | |TermOf|TermOn| | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | |Aud cy|Aud on|AudOff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|MusOff|MidiOn|MidOff| | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_preonic_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, QK_BOOT, DB_TOGG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
XXXXXXX, XXXXXXX, XXXXXXX, AU_ON, AU_OFF, AG_NORM, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, MU_ON, MU_OFF, MI_ON, MI_OFF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BEPO:
if (record->event.pressed) {
set_single_persistent_default_layer(_BEPO);
}
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
#ifdef RGBLIGHT_ENABLE
rgblight_step();
#endif
#ifdef __AVR__
writePinLow(E6);
#endif
} else {
unregister_code(KC_RSFT);
#ifdef __AVR__
writePinHigh(E6);
#endif
}
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;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment