Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new keymap for keebio iris layout beakl 15 #14762

Merged
merged 2 commits into from
Oct 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions keyboards/keebio/iris/keymaps/sq5rix/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
Copyright 2017 Danny Nguyen <[email protected]>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once
#define EE_HANDS
#define TAPPING_TERM 164
#define IGNORE_MOD_TAP_INTERRUPT
#define PERMISSIVE_HOLD
#define RGBLIGHT_LAYERS
#define ENCODER_RESOLUTION 4
#define ENCODER_DEFAULT_POS 0x3
185 changes: 185 additions & 0 deletions keyboards/keebio/iris/keymaps/sq5rix/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
// Copyright 2021 Tomasz Wawer (@sq5rix)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H
drashna marked this conversation as resolved.
Show resolved Hide resolved

enum layers {
_BEAKL15,
_LOWER,
_RAISE,
_MOUSE
};

enum custom_keycodes {
LT_DAT = SAFE_RANGE,
LT_COM,
LT_QUOT
};

#define LOWER LT(_LOWER, KC_ENT)
#define LOWER2 LT(_LOWER, KC_T)
#define RAISE LT(_RAISE, KC_SPC)
#define RAISE2 LT(_RAISE, KC_BSPC)
#define MOUSE LT(_MOUSE, KC_A)

#define SH_ESC MT(MOD_LSFT, KC_ESC)
#define SH_CWD MT(MOD_LALT, KC_BSPC)
#define SH_LTAB MT(MOD_LALT, KC_TAB)
#define SH_UND MT(MOD_LCTL, KC_UNDS)
#define SH_Z MT(MOD_LCTL, KC_Z)

#define SH_LGS MT(MOD_LGUI, KC_B)
#define AL_I ALGR_T(KC_I)
#define AL_N ALGR_T(KC_N)

// Tap Dance definitions
enum {
TD_S
};
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_S] = ACTION_TAP_DANCE_DOUBLE(KC_S, KC_Z),
};

bool sh_key(keyrecord_t *record, uint8_t sk, uint8_t nk);
bool sh_key8(keyrecord_t *record, uint8_t sk, uint8_t nk);

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_BEAKL15] = LAYOUT(
TG(_RAISE), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
SH_LTAB, KC_Q, KC_H, KC_O, KC_U, KC_X, KC_G, KC_C, KC_R, KC_F, KC_Z, KC_LGUI,
SH_UND, KC_Y, AL_I, KC_E, MOUSE, LT_DAT, KC_D, TD(TD_S),LOWER2, AL_N, KC_B, KC_SCLN,
KC_LSFT, KC_J, KC_SLSH, LT_COM, KC_K, LT_QUOT, RGB_TOG, BL_TOGG, KC_W, KC_M, KC_L, KC_P, KC_V, KC_RSFT,
SH_Z, LOWER, RAISE, SH_ESC, RAISE2, SH_LTAB
),

[_LOWER] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_LT, KC_DLR, KC_GT, KC_EXLM, _______, KC_LBRC, KC_UNDS, KC_RBRC, KC_EXLM, _______,
_______, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, _______,
_______, KC_SCLN, KC_SLSH, KC_ASTR, KC_PLUS, _______, _______, _______, _______, KC_AMPR, KC_CIRC, KC_TILD, KC_SCLN, _______,
_______, _______, _______, _______, _______, _______

),

[_RAISE] = LAYOUT(
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_BRIGHTNESS_DOWN, KC_BRIGHTNESS_UP, KC_PSCREEN, _______, _______, _______, _______, RESET,
_______, KC_SLSH, KC_6, KC_5, KC_4, KC_EQL, KC_CIRC, KC_PGUP, KC_UP, KC_PGDN, _______, RGB_VAI,
_______, KC_3, KC_2, KC_1, KC_0, KC_DOT, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, KC_ASTR, KC_9, KC_8, KC_7, KC_PLUS, _______, _______, KC_PLUS, KC_HOME, KC_COLN, KC_END, _______, RGB_MOD,
_______, _______, _______, _______, _______, _______
),

[_MOUSE] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, _______, _______,
_______, _______, _______, KC_BTN1, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BTN3, _______, _______, _______,
_______, _______, _______, _______, _______, _______
)
};

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case LT_DAT:
return sh_key8(record, KC_2, KC_DOT);
case LT_COM:
return sh_key8(record, KC_1, KC_COMM);
case LT_QUOT:
return sh_key(record, KC_GRV, KC_QUOT);
default:
return true;
}
}

bool sh_key(keyrecord_t *record, uint8_t sk, uint8_t nk){
if (record->event.pressed) {
if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
unregister_code(KC_LSFT);
unregister_code(KC_RSFT);
register_code(sk);
} else {
register_code(nk);
}
}
else {
unregister_code16(sk);
unregister_code(nk);
}
return false;
}

bool sh_key8(keyrecord_t *record, uint8_t sk, uint8_t nk){
if (record->event.pressed) {
if (get_mods() & MOD_BIT(KC_LSHIFT) || get_mods() & MOD_BIT(KC_RSHIFT)){
register_code(sk);
} else {
register_code(nk);
}
}
else {
unregister_code(sk);
unregister_code(nk);
}
return false;
}

bool encoder_update_user(uint8_t index, bool clockwise) {
if (index == 0) {
if (clockwise) {
tap_code16(C(G(KC_LEFT)));
} else {
tap_code16(C(G(KC_RGHT)));
}
}
// tmux screen
else if (index == 1) {
switch(biton32(layer_state)){
case 0:
if (clockwise) {
send_string(SS_LCTL("B")"p");
} else {
send_string(SS_LCTL("B")"n");
}
break;
case _RAISE:
if (clockwise) {
tap_code16(C(G(KC_PGUP)));
} else {
tap_code16(C(G(KC_PGDN)));
}
break;
}
}
return true;
}

const rgblight_segment_t PROGMEM raise_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{1, 12, HSV_RED}
);
const rgblight_segment_t PROGMEM lower_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{1, 12, HSV_BLUE}
);
const rgblight_segment_t PROGMEM mouse_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{1, 12, HSV_GREEN}
);

// Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
lower_layer,
raise_layer,
mouse_layer
);

void keyboard_post_init_user(void) {
// Enable the LED layers
rgblight_layers = my_rgb_layers;
}

layer_state_t layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, 2));
rgblight_set_layer_state(1, layer_state_cmp(state, 3));
rgblight_set_layer_state(2, layer_state_cmp(state, 4));
return state;
}

17 changes: 17 additions & 0 deletions keyboards/keebio/iris/keymaps/sq5rix/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
BEAKL-15 keymap for keebio iris
@sq5rix tom wawer
https://deskthority.net/wiki/BEAKL#BEAKL_15

Modern keyboard map easy to learn
very effective to type

esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 Del
q h o u x g c r f z
- y i e a . d s t n b ;
j / , , k w m l p v

z enter space esc bkspc tab

lots of special functions
three layers with puncs, numbers and mouse

4 changes: 4 additions & 0 deletions keyboards/keebio/iris/keymaps/sq5rix/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
RGBLIGHT_ENABLE = yes
TAP_DANCE_ENABLE = yes
LTO_ENABLE = yes
MOUSEKEY_ENABLE = yes