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

[keymap] ninjonas keymap for crkbd & ninjonas userspace updates #6797

Merged
merged 31 commits into from
Sep 26, 2019
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d0c24c6
[keymap(crkbd)] introducing crkbd keymap on ninjonas profile
Sep 15, 2019
0824844
Merge branch 'master' of https://github.com/qmk/qmk_firmware into key…
Sep 15, 2019
ed70936
[keymap(crkbd)] introducing crkbd keymap on ninjonas profile
Sep 15, 2019
2fc40c7
[refactor(crkbd)] reducing file size by selecting RGB animations
ninjonas Sep 15, 2019
f3a0ede
[refactor(crkbd)] added shiftit key
ninjonas Sep 15, 2019
a395886
[refactor(crkbd)] added shiftit key
ninjonas Sep 15, 2019
da6a51f
[chore(crkbd)] adding SLEEP_LED_ENABLE on rules.mk
ninjonas Sep 16, 2019
91e5597
[refactor(crkbd)] added keylog & removed static rainbow RGB
Sep 16, 2019
dfc69eb
[feat(crkbd)] introduced em-dash '—' keymap
Sep 16, 2019
6b605dc
[feat(crkbd)] added screenshot functionality
Sep 16, 2019
86c59ba
[refactor(lily58,pinky3)] moving media keys
ninjonas Sep 20, 2019
86bf8c6
[refactor(lily58)] Added emdash key
Sep 23, 2019
fd06b86
[chore] removing NUMBERS & FUNCTIONS layers as they're useless
Sep 23, 2019
7bc6483
[chore] removing NUMBERS & FUNCTIONS layers as they're useless
Sep 23, 2019
30cdff0
[chore(crkbd,lily48)] Updating README.md
Sep 24, 2019
6930ce0
[feat] added K_LAPP & K_RAPP to mimic command + tab
Sep 24, 2019
05a1386
[feat] added K_LAPP & K_RAPP to mimic command + tab
Sep 24, 2019
6e0c035
Merge branch 'master' of https://github.com/qmk/qmk_firmware into key…
Sep 24, 2019
e90a6ef
[fix(#6797)] resolving changes requested by @drashna
ninjonas Sep 24, 2019
a576ee4
[fix(#6797)] first cut on using QMK OLED Driver
ninjonas Sep 25, 2019
bcdf03e
[fix(#6797)] cleaning up rules.mk
ninjonas Sep 25, 2019
8106dd5
[fix(#6797)] making scrolling logo work
ninjonas Sep 25, 2019
9ce235b
[fix(#6797)] Using OLED Driver for Lily58
ninjonas Sep 25, 2019
0978a2e
[fix(#6797)] Moved OLED driver implementation to ninjonas userspace
ninjonas Sep 25, 2019
f8de504
[fix(#6797)] Bringing back crkbd & lily58 logos
ninjonas Sep 25, 2019
717f2e6
[fix(#6797)] Turning off OLED based off @drashna's workaround in #5982
ninjonas Sep 25, 2019
26e8d3b
[fix(#6797)] whoops! forgot to checkin crkbd/config.h
ninjonas Sep 25, 2019
118f20f
[fix(#6797)] fixing issue with OLED randomly turning on
ninjonas Sep 25, 2019
7b24bae
[fix(#6797)] using default glcdfont.c for lily58 & crkbd
ninjonas Sep 25, 2019
013a52f
[fix(#6797)] Using LINK_TIME_OPTIMIZATION_ENABLE rather than EXTRAFLA…
Sep 25, 2019
5767d8c
[fix(#6797)] updating M_MALL macro as per code review by @fauxpark
Sep 25, 2019
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
99 changes: 99 additions & 0 deletions keyboards/crkbd/keymaps/ninjonas/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# ninjonas Keymap for [Corne Keyboard (crkbd)](https://github.com/foostan/crkbd)

## Keymap
This keymap is designed based off my typing habits and is subject to change. Information about custom user macros and tap dances can be found [here](../../../../users/ninjonas).

More information about the crkbd keyboard can be found [here](https://thomasbaart.nl/2018/11/26/corne-keyboard-helidox-build-log/)

### QWERTY
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, Q, W, E, R, T, Y, U, I, O, P, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, S, D, F, G, H, J, K, L, ;, '
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, Z, X, C, V, B, N, M, ,, ., /, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```

### DVORAK
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, ', ,, ., P, Y, F, G, C, R, L, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, O, E, U, I, D, H, T, N, S, /
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, ;, Q, J, K, X, B, M, W, V, Z, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```

### COLEMAK
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// Tab, Q, W, F, P, G, J, L, U, Y, ;, \
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ESC, A, R, S, T, D, H, N, E, I, O, '
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// LShift, Z, X, C, V, B, K, M, ,, ., /, =
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , Ctrl, Space, Enter, BackSP, Del
//`---------------------' `---------------------'
```

### LOWER
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// , , KC_BRIU, Play, Mute, K_CSCN, PgUp, Home, Up, End, , K_MDSH
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , KC_BRID, Next, VolUp, , PgDn, Left, Down, Right, K_LOCK,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , Prev, VolDn, [, ], , , M_CODE, M_ZOOM, M_PYNV,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```

### RAISE
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// `, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// ~, !, @, #, $, %, ^, &, *, (, ), _
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// F11, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F12
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```

### ADJUST
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// M_MAKE, EEP_RST, , , , , RGB_TOG, , , COLEMAK, DVORAK, QWERTY,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// M_VRSN, M_MALL, , RGB_SAI, RGB_HUI, RGB_VAI, , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// M_FLSH, , , RGB_SAD, RGB_HUD, RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```

<!--
### TEMPLATE
```c
//,----------------------------------------------------. ,----------------------------------------------------.
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , , , , , , , ,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
// , , , , ,
//`---------------------' `---------------------'
```
-->
47 changes: 47 additions & 0 deletions keyboards/crkbd/keymaps/ninjonas/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#pragma once

//#define USE_MATRIX_I2C

/* Select hand configuration */

#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#define SSD1306OLED
ninjonas marked this conversation as resolved.
Show resolved Hide resolved

#define USE_SERIAL_PD2

#define TAPPING_FORCE_HOLD

#ifdef RGBLIGHT_ENABLE
ninjonas marked this conversation as resolved.
Show resolved Hide resolved
#undef RGBLED_NUM
#undef RGBLIGHT_ANIMATIONS // https://docs.qmk.fm/#/feature_rgblight?id=effect-and-animation-toggles
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLED_NUM 27
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
84 changes: 84 additions & 0 deletions keyboards/crkbd/keymaps/ninjonas/crkbd.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
#include QMK_KEYBOARD_H

extern keymap_config_t keymap_config;

#ifdef RGBLIGHT_ENABLE
//Following line allows macro to read current RGB settings
extern rgblight_config_t rgblight_config;
#endif

extern uint8_t is_master;

int RGB_current_mode;

void persistent_default_layer_set(uint16_t default_layer) {
ninjonas marked this conversation as resolved.
Show resolved Hide resolved
eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer);
}

// Setting ADJUST layer RGB back to default
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
layer_on(layer3);
} else {
layer_off(layer3);
}
}

void matrix_init_user(void) {
ninjonas marked this conversation as resolved.
Show resolved Hide resolved
#ifdef RGBLIGHT_ENABLE
RGB_current_mode = rgblight_config.mode;
#endif
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED
iota_gfx_init(!has_usb()); // turns on the display
#endif
}

//SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
#ifdef SSD1306OLED

// When add source files to SRC in rules.mk, you can use functions.
const char *read_layer_state(void);
const char *read_logo(void);
void set_keylog(uint16_t keycode, keyrecord_t *record);
const char *read_keylog(void);
const char *read_keylogs(void);

// const char *read_mode_icon(bool swap);
// const char *read_host_led_state(void);
// void set_timelog(void);
// const char *read_timelog(void);

void matrix_scan_user(void) {
iota_gfx_task();
}

void matrix_render_user(struct CharacterMatrix *matrix) {
if (is_master) {
// If you want to change the display of OLED, you need to change here
matrix_write_ln(matrix, read_layer_state());
matrix_write_ln(matrix, read_keylog());
matrix_write_ln(matrix, read_keylogs());
//matrix_write_ln(matrix, read_mode_icon(keymap_config.swap_lalt_lgui));
//matrix_write_ln(matrix, read_host_led_state());
//matrix_write_ln(matrix, read_timelog());
} else {
matrix_write(matrix, read_logo());
}
}

void matrix_update(struct CharacterMatrix *dest, const struct CharacterMatrix *source) {
if (memcmp(dest->display, source->display, sizeof(dest->display))) {
memcpy(dest->display, source->display, sizeof(dest->display));
dest->dirty = true;
}
}

void iota_gfx_task_user(void) {
struct CharacterMatrix matrix;
matrix_clear(&matrix);
matrix_render_user(&matrix);
matrix_update(&display, &matrix);
}
#endif//SSD1306OLED
89 changes: 89 additions & 0 deletions keyboards/crkbd/keymaps/ninjonas/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
#include QMK_KEYBOARD_H
#include "ninjonas.h"

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL
//`---------------------' `---------------------'
),

[_DVORAK] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL
//`---------------------' `---------------------'
),

[_COLEMAK] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL
//`---------------------' `---------------------'
),

[_LOWER] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------.
XXXXXXX, XXXXXXX, _________MEDIA_1_________, K_CSCN, _______________NAV_1______________, XXXXXXX, K_MDSH,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
XXXXXXX, XXXXXXX, _________MEDIA_2_________, XXXXXXX, _______________NAV_2______________, K_LOCK, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_SHFT, XXXXXXX, _________MEDIA_3_________, T_LBRC, T_RBRC, _______, XXXXXXX, M_CODE, M_ZOOM, M_PYNV,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),

[_RAISE] = LAYOUT_wrapper( \
//,----------------------------------------------------. ,----------------------------------------------------.
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),

[_ADJUST] = LAYOUT_wrapper( \
//,----------------------------------------------------. ,----------------------------------------------------.
M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_VRSN, M_MALL, XXXXXXX, RGB_SAI, RGB_HUI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_FLSH, XXXXXXX, XXXXXXX, RGB_SAD, RGB_HUD, RGB_VAD, RGB_M_P, RGB_M_B,RGB_M_SW, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
/*
[_TEMPLATE] = LAYOUT_wrapper( \
//,----------------------------------------------------. ,----------------------------------------------------.
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, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______
//`---------------------' `---------------------'
),
*/
};
37 changes: 37 additions & 0 deletions keyboards/crkbd/keymaps/ninjonas/layer_state_reader.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#include QMK_KEYBOARD_H
#include <stdio.h>
#include "crkbd.h"
#include "ninjonas.h"

char layer_state_str[24];

const char *read_layer_state(void) {
switch (biton32(layer_state))
{
case _RAISE:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
break;
case _LOWER:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
break;
case _ADJUST:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
break;
default:
switch (biton32(default_layer_state)) {
case _COLEMAK:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Colemak");
break;
case _DVORAK:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Dvorak");
break;
case _QWERTY:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Qwerty");
break;
default:
snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
}
}

return layer_state_str;
}
Loading