Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
55bae0a5b4 | |||
dab4967f1b | |||
9f46606dff | |||
f2ea65db6b | |||
0e153781f0 | |||
27b3f3141b | |||
d653e55461 | |||
05d0e8c09e | |||
19e85a503c |
1
Makefile
1
Makefile
@ -548,6 +548,7 @@ ifndef SKIP_GIT
|
||||
if [ ! -e lib/chibios ]; then git submodule sync lib/chibios && git submodule update --depth 1 --init lib/chibios; fi
|
||||
if [ ! -e lib/chibios-contrib ]; then git submodule sync lib/chibios-contrib && git submodule update --depth 1 --init lib/chibios-contrib; fi
|
||||
if [ ! -e lib/ugfx ]; then git submodule sync lib/ugfx && git submodule update --depth 1 --init lib/ugfx; fi
|
||||
if [ ! -e lib/lufa ]; then git submodule sync lib/lufa && git submodule update --depth 1 --init lib/lufa; fi
|
||||
git submodule status --recursive 2>/dev/null | \
|
||||
while IFS= read -r x; do \
|
||||
case "$$x" in \
|
||||
|
@ -358,3 +358,9 @@ ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
|
||||
OPT_DEFS += -DSPACE_CADET_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
|
||||
SRC += $(QUANTUM_DIR)/dip_switch.c
|
||||
OPT_DEFS += -DDIP_SWITCH_ENABLE
|
||||
endif
|
||||
|
@ -63,6 +63,7 @@
|
||||
* [Combos](feature_combo.md)
|
||||
* [Command](feature_command.md)
|
||||
* [Debounce API](feature_debounce_type.md)
|
||||
* [DIP Switch](feature_dip_switch.md)
|
||||
* [Dynamic Macros](feature_dynamic_macros.md)
|
||||
* [Encoders](feature_encoders.md)
|
||||
* [Grave Escape](feature_grave_esc.md)
|
||||
|
90
docs/feature_dip_switch.md
Normal file
90
docs/feature_dip_switch.md
Normal file
@ -0,0 +1,90 @@
|
||||
# DIP Switches
|
||||
|
||||
DIP switches are supported by adding this to your `rules.mk`:
|
||||
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
|
||||
and this to your `config.h`:
|
||||
|
||||
```c
|
||||
#define DIP_SWITCH_PINS { B14, A15, A10, B9 }
|
||||
```
|
||||
|
||||
## Callbacks
|
||||
|
||||
The callback functions can be inserted into your `<keyboard>.c`:
|
||||
|
||||
```c
|
||||
void dip_switch_update_kb(uint8_t index, bool active) {
|
||||
dip_switch_update_user(index, active);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
or `keymap.c`:
|
||||
|
||||
```c
|
||||
void dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if(active) { audio_on(); } else { audio_off(); }
|
||||
break;
|
||||
case 1:
|
||||
if(active) { clicky_on(); } else { clicky_off(); }
|
||||
break;
|
||||
case 2:
|
||||
if(active) { music_on(); } else { music_off(); }
|
||||
break;
|
||||
case 3:
|
||||
if (active) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_on(_PLOVER);
|
||||
} else {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Additionally, we support bit mask functions which allow for more complex handling.
|
||||
|
||||
|
||||
```c
|
||||
void dip_switch_update_mask_kb(uint32_t state) {
|
||||
dip_switch_update_mask_user(state);
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
or `keymap.c`:
|
||||
|
||||
```c
|
||||
void dip_switch_update_mask_user(uint32_t state) {
|
||||
if (state & (1UL<<0) && state & (1UL<<1)) {
|
||||
layer_on(_ADJUST); // C on esc
|
||||
} else {
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
if (state & (1UL<<0)) {
|
||||
layer_on(_TEST_A); // A on ESC
|
||||
} else {
|
||||
layer_off(_TEST_A);
|
||||
}
|
||||
if (state & (1UL<<1)) {
|
||||
layer_on(_TEST_B); // B on esc
|
||||
} else {
|
||||
layer_off(_TEST_B);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Hardware
|
||||
|
||||
One side of the DIP switch should be wired directly to the pin on the MCU, and the other side to ground. It should not matter which side is connected to which, as it should be functionally the same.
|
@ -12,6 +12,7 @@ QMK has a staggering number of features for building your keyboard. It can take
|
||||
* [Combos](feature_combo.md) - Custom actions for multiple key holds.
|
||||
* [Command](feature_command.md) - Runtime version of bootmagic (Formerly known as "Magic").
|
||||
* [Debounce API](feature_debounce_type.md) - Customization of debouncing algorithms, and the ability to add more/custom debouncing.
|
||||
* [DIP Switch](feature_dip_switch.md) - Toggle switches for customizing board function.
|
||||
* [Dynamic Macros](feature_dynamic_macros.md) - Record and playback macros from the keyboard itself.
|
||||
* [Encoders](feature_encoders.md) - Rotary encoders!
|
||||
* [Grave Escape](feature_grave_esc.md) - Lets you use a single key for Esc and Grave.
|
||||
|
@ -8,7 +8,7 @@
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta property="og:title" content="QMK Firmware Docs">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:description" content="The full documenation of the open-source firmware">
|
||||
<meta property="og:description" content="The full documentation of the open-source firmware">
|
||||
<meta property="og:image" content="https://i.imgur.com/svjvIrw.jpg">
|
||||
<meta property="og:url" content="https://docs.qmk.fm">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
|
@ -54,6 +54,7 @@
|
||||
* [热改键](feature_bootmagic.md)
|
||||
* [组合](feature_combo)
|
||||
* [命令](feature_command.md)
|
||||
* [拨动开关](feature_dip_switch.md)
|
||||
* [动态宏指令](feature_dynamic_macros.md)
|
||||
* [编码器](feature_encoders.md)
|
||||
* [重音号Esc复合键](feature_grave_esc.md)
|
||||
|
@ -25,8 +25,23 @@
|
||||
#endif
|
||||
|
||||
// This a shortcut to help you visually see your layout.
|
||||
// The first section contains all of the arguements
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
// The first section contains all of the arguments.
|
||||
// The second converts the arguments into a two-dimensional array.
|
||||
// In the PCBDOWN case we need to swap the middle two keys: k35 and k36.
|
||||
#if defined(PCBDOWN)
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
|
||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b \
|
||||
) \
|
||||
{ \
|
||||
{ k00, k01, k02, k03, k04, KC_NO, k05, k06, k07, k08, k09 }, \
|
||||
{ k10, k11, k12, k13, k14, KC_NO, k15, k16, k17, k18, k19 }, \
|
||||
{ k20, k21, k22, k23, k24, k36, k25, k26, k27, k28, k29 }, \
|
||||
{ k30, k31, k32, k33, k34, k35, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
#else
|
||||
#define LAYOUT( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
|
||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
|
||||
@ -39,3 +54,4 @@
|
||||
{ k20, k21, k22, k23, k24, k35, k25, k26, k27, k28, k29 }, \
|
||||
{ k30, k31, k32, k33, k34, k36, k37, k38, k39, k3a, k3b } \
|
||||
}
|
||||
#endif
|
||||
|
10
keyboards/gh60/satan/keymaps/gipsy-king/config.h
Normal file
10
keyboards/gh60/satan/keymaps/gipsy-king/config.h
Normal file
@ -0,0 +1,10 @@
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLED_NUM 17
|
||||
#undef RGBLIGHT_HUE_STEP
|
||||
#define RGBLIGHT_HUE_STEP 5
|
||||
#undef RGBLIGHT_SAT_STEP
|
||||
#define RGBLIGHT_SAT_STEP 5
|
||||
#undef RGBLIGHT_VAL_STEP
|
||||
#define RGBLIGHT_VAL_STEP 5
|
||||
|
||||
#undef RGBLIGHT_ANIMATIONS
|
161
keyboards/gh60/satan/keymaps/gipsy-king/keymap.c
Normal file
161
keyboards/gh60/satan/keymaps/gipsy-king/keymap.c
Normal file
@ -0,0 +1,161 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "rgblight.h"
|
||||
|
||||
enum layer_names {
|
||||
_BL,
|
||||
_FL
|
||||
};
|
||||
|
||||
/**
|
||||
* HHKB style.
|
||||
* Esc on capslock, space-hold is fn.
|
||||
* Fn layer has hjkl arrows, home on backspace, rgb stuff.
|
||||
*/
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = LAYOUT_60_ansi(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
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_ENT,
|
||||
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_LALT, LT(_FL,KC_SPC), KC_LGUI, KC_RALT, KC_RCTL, _______
|
||||
),
|
||||
|
||||
[_FL] = LAYOUT_60_ansi(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_HOME,
|
||||
RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, BL_INC, BL_TOGG,
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
/**
|
||||
* Terminal Prompt
|
||||
* Mimicks a terminal prompt. On keystrokes, the led bar is filled. Backspace
|
||||
* removes from bar. Enter clears bar. After some timeout, the bar is also cleared.
|
||||
* A blinking cursor is displayed at the right of the bar.
|
||||
* This can't be defined as an animation, because animations only are called on an
|
||||
* interval, not on keypress. In the future all animations could be enhanced to
|
||||
* react to keystrokes in QMK.
|
||||
*/
|
||||
|
||||
uint8_t cursor_pos;
|
||||
|
||||
uint16_t interval_time = 10; // maybe too short...
|
||||
uint16_t reset_time = 10000;
|
||||
uint16_t last_timer = 0;
|
||||
uint16_t timer_pos = 0;
|
||||
uint16_t reset_timer = 0;
|
||||
|
||||
void reset_chars(void);
|
||||
void add_char(bool space);
|
||||
void remove_char(void);
|
||||
void animate_cursor(uint16_t);
|
||||
|
||||
// animate, like the built-in animations, with timer_* functions
|
||||
void matrix_scan_user(void) {
|
||||
if (timer_elapsed(reset_timer) > reset_time) {
|
||||
reset_chars();
|
||||
reset_timer = timer_read();
|
||||
return;
|
||||
}
|
||||
if (timer_elapsed(last_timer) < interval_time) {
|
||||
return;
|
||||
}
|
||||
last_timer += interval_time;
|
||||
timer_pos += 4;
|
||||
if (timer_pos >= 255) {
|
||||
timer_pos = 0;
|
||||
last_timer = timer_read();
|
||||
}
|
||||
animate_cursor(timer_pos);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX)) {
|
||||
keycode = keycode & 0xFF;
|
||||
}
|
||||
switch (keycode) {
|
||||
case KC_A ... KC_Z:
|
||||
case KC_1 ... KC_0:
|
||||
case KC_LBRC:
|
||||
case KC_RBRC:
|
||||
case KC_SCLN:
|
||||
case KC_QUOT:
|
||||
case KC_COMM:
|
||||
case KC_DOT:
|
||||
case KC_SLSH:
|
||||
case KC_BSLS:
|
||||
if (record->event.pressed) {
|
||||
add_char(false);
|
||||
}
|
||||
break;
|
||||
case KC_ENTER:
|
||||
case KC_ESC:
|
||||
if (record->event.pressed) {
|
||||
reset_chars();
|
||||
}
|
||||
break;
|
||||
case KC_BSPC:
|
||||
if (record->event.pressed) {
|
||||
remove_char();
|
||||
}
|
||||
break;
|
||||
case KC_SPACE:
|
||||
if (!record->event.pressed) {
|
||||
add_char(true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
reset_timer = timer_read();
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// reset the bar and animation
|
||||
rgblight_mode(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
cursor_pos = 0;
|
||||
reset_chars();
|
||||
reset_timer = last_timer = timer_read();
|
||||
}
|
||||
|
||||
|
||||
void reset_chars(void) {
|
||||
// flush the whole thing, gets rid of previous animations
|
||||
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||
// don't flicker the cursor if bar was empty on reset_timer
|
||||
if (i == 0 && cursor_pos == 0) {
|
||||
continue;
|
||||
}
|
||||
rgblight_sethsv_at(0, 0, 0, i);
|
||||
}
|
||||
cursor_pos = 0;
|
||||
}
|
||||
|
||||
void add_char(bool space) {
|
||||
if (cursor_pos == RGBLED_NUM - 1) {
|
||||
cursor_pos = 0;
|
||||
reset_chars();
|
||||
return;
|
||||
}
|
||||
|
||||
if (space) {
|
||||
rgblight_sethsv_at(0, 0, 0, cursor_pos);
|
||||
} else {
|
||||
rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val(), cursor_pos);
|
||||
}
|
||||
cursor_pos += 1;
|
||||
}
|
||||
|
||||
void remove_char(void) {
|
||||
if (cursor_pos == 0) return;
|
||||
|
||||
rgblight_sethsv_at(0, 0, 0, cursor_pos);
|
||||
rgblight_sethsv_at(0, 0, 0, cursor_pos - 1);
|
||||
cursor_pos -= 1;
|
||||
}
|
||||
|
||||
void animate_cursor(uint16_t pos) {
|
||||
uint16_t value = pos < 196 ? fmin(255, pos * 16) : (255 - (pos * 2));
|
||||
rgblight_sethsv_at(rgblight_get_hue(), rgblight_get_sat(), value, cursor_pos);
|
||||
}
|
1
keyboards/gh60/satan/keymaps/gipsy-king/readme.md
Normal file
1
keyboards/gh60/satan/keymaps/gipsy-king/readme.md
Normal file
@ -0,0 +1 @@
|
||||
# default Satan GH60 layout
|
7
keyboards/gh60/satan/keymaps/gipsy-king/rules.mk
Normal file
7
keyboards/gh60/satan/keymaps/gipsy-king/rules.mk
Normal file
@ -0,0 +1,7 @@
|
||||
BOOTMAGIC_ENABLE = no
|
||||
EXTRAKEY_ENABLE = no
|
||||
CONSOLE_ENABLE = no
|
||||
COMMAND_ENABLE = no
|
||||
NKRO_ENABLE = no
|
||||
UNICODE_ENABLE = yes
|
||||
SLEEP_LED_ENABLE = yes
|
106
keyboards/hotdox/keymaps/ninjonas/README.md
Normal file
106
keyboards/hotdox/keymaps/ninjonas/README.md
Normal file
@ -0,0 +1,106 @@
|
||||
# ninjonas Keymap for [ErgoDox (HotDox)](https://www.alpacakeyboards.com/)
|
||||
|
||||
## Setup
|
||||
- Ensure you've cloned the [qmk](https://github.com/qmk/qmk_firmware) repo
|
||||
- Create directory `ninjonas` on `/keyboards/hotdox/keymaps/`
|
||||
- Run `copy_keymap.sh`. This copies the contents of this repo into `%qmk_firmware%/ninjonas/` directory
|
||||
- To push your keymap to your keyboard run this command `make clean hotdox:ninjonas:dfu`
|
||||
- this compiles your keymap and creates a `hotdox_ninjonas.hex` file and will atempt to flash your board
|
||||
- if you get the following message:
|
||||
```
|
||||
dfu-programmer: no device present.
|
||||
Error: Bootloader not found. Trying again in 5s.
|
||||
```
|
||||
- Press the reset button underneath your ErgoDox keyboard
|
||||
- The following messages should show up and your board has successfuly been flashed
|
||||
```
|
||||
Bootloader Version: 0x00 (0)
|
||||
Erasing flash... Success
|
||||
Checking memory from 0x0 to 0x6FFF... Empty.
|
||||
Checking memory from 0x0 to 0x5D7F... Empty.
|
||||
0% 100% Programming 0x5D80 bytes...
|
||||
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
|
||||
0% 100% Reading 0x7000 bytes...
|
||||
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] Success
|
||||
Validating... Success
|
||||
0x5D80 bytes written into 0x7000 bytes memory (83.48%).
|
||||
```
|
||||
- The alterenative is follow the steps on [Hotdox flashing guide](https://www.alpacakeyboards.com/flash/hot-dox-ergodox-76-flashing-instructions)
|
||||
|
||||
## 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](https://github.com/ninjonas/qmk-yonas/tree/master/users/ninjonas).
|
||||
|
||||
### QWERTY
|
||||
```c
|
||||
/* Keymap 0: QWERTY
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+------+--------|
|
||||
* | 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 | , | . | / | = |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Up | Down | | Left | Right|
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | Home | | PgUp | | |
|
||||
* | Space|Backsp|------| |------| Del |Enter |
|
||||
* | |ace | End | | PgDn | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### LOWER
|
||||
```c
|
||||
/* Keymap 1: LOWER
|
||||
*
|
||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||
* | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | | | Prev |VolDn | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||
* | | | | | | | | | |M_CODE | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### RAISE
|
||||
```c
|
||||
/* Keymap 2: RAISE
|
||||
*
|
||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||
* | | | | |K_CSCN| | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||
* | M_MAKE | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | M_VRSN | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | M_FLSH | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
```
|
348
keyboards/hotdox/keymaps/ninjonas/keymap.c
Normal file
348
keyboards/hotdox/keymaps/ninjonas/keymap.c
Normal file
File diff suppressed because it is too large
Load Diff
136
keyboards/lily58/keymaps/ninjonas/README.md
Normal file
136
keyboards/lily58/keymaps/ninjonas/README.md
Normal file
@ -0,0 +1,136 @@
|
||||
# ninjonas Keymap for [Lily58 Pro](https://github.com/kata0510/Lily58)
|
||||
|
||||
## 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).
|
||||
|
||||
> Make sure you update QMK's lily58 config.h TAPPING_TERM to 200ms or this won't compile
|
||||
|
||||
More information about the Lily58 pro keyboard can be found [here](https://yuchi-kbd.hatenablog.com/entry/2018/12/23/214342)
|
||||
|
||||
### QWERTY
|
||||
```c
|
||||
/* QWERTY
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | , | . | / | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### DVORAK
|
||||
```c
|
||||
/* DVORAK
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### COLEMAK
|
||||
```c
|
||||
/* COLEMAK
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | , | . | / | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### LOWER
|
||||
```c
|
||||
/* LOWER
|
||||
* ,------------------------------------------. ,------------------------------------------.
|
||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||
* |------+------+------+-------+------+------| |------+------+------+------+-------+------|
|
||||
* | | | |KC_BRIU| Play | Mute | | PgUp | Home | Up | End | | |
|
||||
* |------+------+------+-------+------+------| |------+------+------+------+-------+------|
|
||||
* | | | |KC_BRID| Next |VolUp |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
|
||||
* |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
|
||||
* | |M_SHFT| | | Prev |VolDn |-------| |-------| | | | |M_ZOOM |M_PYNV|
|
||||
* `------------------------------------------/ / \ \------------------------------------------'
|
||||
* | | | | / / \ \ | |M_CODE| |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### RAISE
|
||||
```c
|
||||
/* RAISE
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | |K_CSCN| | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
|
||||
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* | | | | | | |-------| |-------| | | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### ADJUST
|
||||
```c
|
||||
/* ADJUST
|
||||
* ,------------------------------------------. ,-----------------------------------------.
|
||||
* |EEP_RST| | | | | | | | | |COLMAK|DVORAK|QWERTY|
|
||||
* |-------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |M_MAKE | | | | | | | | | | | | |
|
||||
* |-------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* |M_VRSN | | | | | |-------. ,-------| | | | | | |
|
||||
* |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* |M_FLSH | | | | | |-------| |-------| | | | | | |
|
||||
* `------------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
<!--
|
||||
### TEMPLATE
|
||||
```c
|
||||
/* TEMPLATE
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | |-------. ,-------| | | | | | |
|
||||
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* | | | | | | |-------| |-------| | | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
```
|
||||
-->
|
31
keyboards/lily58/keymaps/ninjonas/config.h
Normal file
31
keyboards/lily58/keymaps/ninjonas/config.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
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
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define SSD1306OLED
|
||||
#define USE_SERIAL_PD2
|
||||
#define TAPPING_FORCE_HOLD
|
152
keyboards/lily58/keymaps/ninjonas/keymap.c
Normal file
152
keyboards/lily58/keymaps/ninjonas/keymap.c
Normal file
@ -0,0 +1,152 @@
|
||||
/* Copyright 2019 @ninjonas
|
||||
*
|
||||
* 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 "ninjonas.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* QWERTY
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | , | . | / | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_wrapper(
|
||||
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
|
||||
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, \
|
||||
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, \
|
||||
_____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________, \
|
||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
||||
),
|
||||
|
||||
/* DVORAK
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT_wrapper(
|
||||
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
|
||||
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, \
|
||||
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, \
|
||||
_____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________, \
|
||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
||||
),
|
||||
|
||||
/* COLEMAK
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 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 | , | . | / | = |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | Alt | | Ctrl | /Space / \Enter \ |BackSP| Del |LOWER |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_wrapper(
|
||||
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________, \
|
||||
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, \
|
||||
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, \
|
||||
_____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________, \
|
||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
||||
),
|
||||
|
||||
/* LOWER
|
||||
* ,------------------------------------------. ,------------------------------------------.
|
||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||
* |------+------+------+-------+------+------| |------+------+------+------+-------+------|
|
||||
* | | | |KC_BRIU| Play | Mute | | PgUp | Home | Up | End | | |
|
||||
* |------+------+------+-------+------+------| |------+------+------+------+-------+------|
|
||||
* | | | |KC_BRID| Next |VolUp |-------. ,-------| PgDn | Left | Down |Right |K_LOCK | |
|
||||
* |------+------+------+-------+------+------| | | |------+------+------+------+-------+------|
|
||||
* |M_SHFT| | | | Prev |VolDn |-------| |-------| | | | |M_ZOOM |M_PYNV|
|
||||
* `------------------------------------------/ / \ \------------------------------------------'
|
||||
* | | | | / / \ \ | |M_CODE| |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_wrapper( \
|
||||
_____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________, \
|
||||
_______, _______, _______, _________MEDIA_1_________, _______________NAV_1______________, _______, _______, \
|
||||
_______, _______, _______, _________MEDIA_2_________, _______________NAV_2______________, K_LOCK, _______, \
|
||||
M_SHFT, _______, _______, _________MEDIA_3_________, _______, _______, _______, _______, _______, _______, M_ZOOM, M_PYNV, \
|
||||
__________________________________, _______, _______, M_CODE, _______ \
|
||||
),
|
||||
|
||||
/* RAISE
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | |K_CSCN| | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | MS_L | MS_D | MS_R | WH_D |-------. ,-------| | | | | | |
|
||||
* |------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* | | | | | | |-------| |-------| | | | | | |
|
||||
* `-----------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_wrapper( \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
|
||||
__________________________________, __________________________________ \
|
||||
),
|
||||
|
||||
/* ADJUST
|
||||
* ,------------------------------------------. ,-----------------------------------------.
|
||||
* |EEP_RST| | | | | | | | | |COLMAK|DVORAK|QWERTY|
|
||||
* |-------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | M_MAKE| | | | | | | | | | | | |
|
||||
* |-------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | M_VRSN| | | | | |-------. ,-------| | | | | | |
|
||||
* |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
|
||||
* | M_FLSH| | | | | |-------| |-------| | | | | | |
|
||||
* `------------------------------------------/ / \ \-----------------------------------------'
|
||||
* | | | | / / \ \ | | | |
|
||||
* | | | |/ / \ \ | | | |
|
||||
* `----------------------------' '------''--------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_wrapper( \
|
||||
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY, \
|
||||
M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
M_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
|
||||
__________________________________, __________________________________ \
|
||||
),
|
||||
};
|
37
keyboards/lily58/keymaps/ninjonas/layer_state_reader.c
Normal file
37
keyboards/lily58/keymaps/ninjonas/layer_state_reader.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include <stdio.h>
|
||||
#include "lily58.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;
|
||||
}
|
5
keyboards/lily58/keymaps/ninjonas/rules.mk
Normal file
5
keyboards/lily58/keymaps/ninjonas/rules.mk
Normal file
@ -0,0 +1,5 @@
|
||||
# If you want to change the display of OLED, you need to change here
|
||||
SRC += ./lib/glcdfont.c \
|
||||
layer_state_reader.c \
|
||||
./lib/logo_reader.c \
|
||||
./lib/keylogger.c \
|
142
keyboards/pinky/3/keymaps/ninjonas/README.md
Normal file
142
keyboards/pinky/3/keymaps/ninjonas/README.md
Normal file
@ -0,0 +1,142 @@
|
||||
# ninjonas Keymap for [Pinky3](https://github.com/tamanishi/Pinky3)
|
||||
|
||||
## 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 Pinky3 keyboard can be found [here](https://github.com/tamanishi/Pinky3)
|
||||
|
||||
### QWERTY
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| Tab| Q| W| E| R| T| Play| | Mute| Y| U| I| O| P| \|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Esc/Caps| A| S| D| F| G| [| | ]| H| J| K| L| ;| '|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| N| M| ,| .| /| =|
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### DVORAK
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| Tab| '| ,| .| P| Y| Play| | Mute| F| G| C| R| L| \|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Esc/Caps| A| O| E| U| I| [| | ]| D| H| T| N| S| /|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Shift| ;| Q| J| K| X| Spc/RAI| | Ent/LOW| B| M| W| V| Z| =|
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### COLEMAK
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| Tab| Q| W| F| P| G| Play| | Mute| J| L| U| Y| ;| \|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Esc/Caps| A| R| S| T| D| [| | ]| H| N| E| I| O| '|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| Shift| Z| X| C| V| B| Spc/RAI| | Ent/LOW| K| M| ,| .| /| =|
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| ALT| | CTRL| Spc/NUM| | Ent/FUNC| BckSpace| Del| LOWER|
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### LOWER
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| | | | BriUp| Play| Mute| K_CSCN| | | PgUp| Home| Up| End| | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | BriDn| Next| VolUp| | | | PgDn| Left| Down| Right| K_LOCK| |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| M_SHFT| | | | Prev| VolDn| | | | | | | | M_ZOOM| M_PYNV|
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | M_CODE| |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### RAISE
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| | | MS_1| MS_U| MS_2| WH_U| | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | MS_L| MS_D| MS_R| WH_D| | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | | |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### ADJUST
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| M_MAKE| EEP_RST| | | | | | | | | | | COLEMAK| DVORAK| QWERTY|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| M_VRSN| | | | | | | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| M_FLSH| | | | | | | | | | | | | | |
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | | |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### NUMBERS
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| `| 1| 2| 3| 4| 5| | | | 6| 7| 8| 9| 0| -|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| ~| !| @| #| $| %| | | | ^| &| *| (| )| _|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | | |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
### FUNCTIONS
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| F11| F2| F3| F4| F4| F5| | | | F6| F7| F8| F9| F10| F12|
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | | |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
<!--
|
||||
### TEMPLATE
|
||||
```c
|
||||
/*
|
||||
,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
| | | | | | | | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
`---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------'
|
||||
| | | | | | | | | |
|
||||
`---------------------------------------' `---------------------------------------'
|
||||
*/
|
||||
```
|
||||
-->
|
31
keyboards/pinky/3/keymaps/ninjonas/config.h
Normal file
31
keyboards/pinky/3/keymaps/ninjonas/config.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* Copyright 2018 'Masayuki Sunahara'
|
||||
*
|
||||
* 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 USE_SERIAL_PD2
|
||||
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 200
|
||||
#define RETRO_TAPPPING
|
135
keyboards/pinky/3/keymaps/ninjonas/keymap.c
Normal file
135
keyboards/pinky/3/keymaps/ninjonas/keymap.c
Normal file
@ -0,0 +1,135 @@
|
||||
/* Copyright 2019 @ninjonas
|
||||
*
|
||||
* 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 "ninjonas.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] = LAYOUT_wrapper(
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_____________________QWERTY_L1______________________, KC_MPLY, KC_MUTE, _____________________QWERTY_R1______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________QWERTY_L2______________________, T_LBRC, T_RBRC, _____________________QWERTY_R2______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________QWERTY_L3______________________, LT_RAI, LT_LOW, _____________________QWERTY_R3______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_DVORAK] = LAYOUT_wrapper(
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_____________________DVORAK_L1______________________, KC_MPLY, KC_MUTE, _____________________DVORAK_R1______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________DVORAK_L2______________________, T_LBRC, T_RBRC, _____________________DVORAK_R2______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________DVORAK_L3______________________, LT_RAI, LT_LOW, _____________________DVORAK_R3______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_COLEMAK] = LAYOUT_wrapper(
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_____________________COLEMAK_L1_____________________, KC_MPLY, KC_MUTE, _____________________COLEMAK_R1_____________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________COLEMAK_L2_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R2_____________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________COLEMAK_L3_____________________, LT_RAI, LT_LOW, _____________________COLEMAK_R3_____________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
________MOD_LEFT_________, LT_NUM, LT_FUNC, ________MOD_RIGHT________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_wrapper( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, _________MEDIA_1_________, K_CSCN, XXXXXXX, _______________NAV_1______________, XXXXXXX, XXXXXXX,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, _________MEDIA_2_________, XXXXXXX, XXXXXXX, _______________NAV_2______________, K_LOCK, XXXXXXX,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
M_SHFT, XXXXXXX, XXXXXXX, _________MEDIA_3_________, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, M_ZOOM, M_PYNV,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
__________________________________, _______, _______, M_CODE, _______ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_RAISE] = LAYOUT_wrapper( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________XXXXXXX________________________, _______, _______, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
__________________________________, __________________________________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_wrapper( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
M_VRSN, _____________________XXXXXXX________________________, XXXXXXX, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
__________________________________, __________________________________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_NUMBERS] = LAYOUT_wrapper( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_____________________NUM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________NUM_RIGHT______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________SYM_LEFT_______________________, XXXXXXX, XXXXXXX, _____________________SYM_RIGHT______________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
____________________________________________________, _______, _______, ____________________________________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
__________________________________, __________________________________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
[_FUNCTIONS] = LAYOUT_wrapper( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_____________________FUNC_LEFT______________________, XXXXXXX, XXXXXXX, _____________________FUNC_RIGHT_____________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________XXXXXXX________________________, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_____________________XXXXXXX________________________, _______, _______, _____________________XXXXXXX________________________,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
__________________________________, __________________________________ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
),
|
||||
|
||||
/*
|
||||
[_TEMPLATE] = LAYOUT( \
|
||||
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
||||
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
|
||||
_______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
//`---------------------------------------' `---------------------------------------'
|
||||
)
|
||||
*/
|
||||
};
|
@ -289,7 +289,7 @@ void encoder_update(bool clockwise) {
|
||||
}
|
||||
}
|
||||
|
||||
void dip_update(uint8_t index, bool active) {
|
||||
void dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (active) {
|
||||
|
@ -37,15 +37,20 @@
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
/* Note: These are not used for arm boards. They're here purely as documentation.
|
||||
* #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 }
|
||||
* #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
|
||||
* #define UNUSED_PINS
|
||||
*/
|
||||
/* Note: These are not used for arm boards. They're here purely as documentation. */
|
||||
#undef MATRIX_ROW_PINS
|
||||
#undef MATRIX_COL_PINS
|
||||
|
||||
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2 }
|
||||
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }
|
||||
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { B12 }
|
||||
#define ENCODERS_PAD_B { B13 }
|
||||
|
||||
#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
|
||||
|
||||
#define MUSIC_MAP
|
||||
#undef AUDIO_VOICES
|
||||
#undef C6_AUDIO
|
||||
|
@ -1,176 +0,0 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include "hal.h"
|
||||
#include "timer.h"
|
||||
#include "wait.h"
|
||||
#include "printf.h"
|
||||
#include "backlight.h"
|
||||
#include "matrix.h"
|
||||
#include "action.h"
|
||||
#include "keycode.h"
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* col: { B11, B10, B2, B1, A7, B0 }
|
||||
* row: { A10, A9, A8, B15, C13, C14, C15, A2 }
|
||||
*/
|
||||
/* matrix state(1:on, 0:off) */
|
||||
static matrix_row_t matrix[MATRIX_ROWS];
|
||||
static matrix_row_t matrix_debouncing[MATRIX_COLS];
|
||||
static bool debouncing = false;
|
||||
static uint16_t debouncing_time = 0;
|
||||
|
||||
static bool dip_switch[4] = {0, 0, 0, 0};
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
printf("matrix init\n");
|
||||
//debug_matrix = true;
|
||||
|
||||
// dip switch setup
|
||||
palSetPadMode(GPIOB, 14, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOB, 9, PAL_MODE_INPUT_PULLUP);
|
||||
|
||||
// actual matrix setup
|
||||
palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
|
||||
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 9, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 8, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOB, 15, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN);
|
||||
|
||||
|
||||
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
|
||||
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
|
||||
|
||||
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void dip_update(uint8_t index, bool active) { }
|
||||
|
||||
bool last_dip_switch[4] = {0};
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
// dip switch
|
||||
dip_switch[0] = !palReadPad(GPIOB, 14);
|
||||
dip_switch[1] = !palReadPad(GPIOA, 15);
|
||||
dip_switch[2] = !palReadPad(GPIOA, 10);
|
||||
dip_switch[3] = !palReadPad(GPIOB, 9);
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
if (last_dip_switch[i] ^ dip_switch[i])
|
||||
dip_update(i, dip_switch[i]);
|
||||
}
|
||||
memcpy(last_dip_switch, dip_switch, sizeof(&dip_switch));
|
||||
|
||||
// actual matrix
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
matrix_row_t data = 0;
|
||||
|
||||
// strobe col { B11, B10, B2, B1, A7, B0 }
|
||||
switch (col) {
|
||||
case 0: palSetPad(GPIOB, 11); break;
|
||||
case 1: palSetPad(GPIOB, 10); break;
|
||||
case 2: palSetPad(GPIOB, 2); break;
|
||||
case 3: palSetPad(GPIOB, 1); break;
|
||||
case 4: palSetPad(GPIOA, 7); break;
|
||||
case 5: palSetPad(GPIOB, 0); break;
|
||||
}
|
||||
|
||||
// need wait to settle pin state
|
||||
wait_us(20);
|
||||
|
||||
// read row data { A10, A9, A8, B15, C13, C14, C15, A2 }
|
||||
data = (
|
||||
(palReadPad(GPIOA, 10) << 0 ) |
|
||||
(palReadPad(GPIOA, 9) << 1 ) |
|
||||
(palReadPad(GPIOA, 8) << 2 ) |
|
||||
(palReadPad(GPIOB, 15) << 3 ) |
|
||||
(palReadPad(GPIOC, 13) << 4 ) |
|
||||
(palReadPad(GPIOC, 14) << 5 ) |
|
||||
(palReadPad(GPIOC, 15) << 6 ) |
|
||||
(palReadPad(GPIOA, 2) << 7 )
|
||||
);
|
||||
|
||||
// unstrobe col { B11, B10, B2, B1, A7, B0 }
|
||||
switch (col) {
|
||||
case 0: palClearPad(GPIOB, 11); break;
|
||||
case 1: palClearPad(GPIOB, 10); break;
|
||||
case 2: palClearPad(GPIOB, 2); break;
|
||||
case 3: palClearPad(GPIOB, 1); break;
|
||||
case 4: palClearPad(GPIOA, 7); break;
|
||||
case 5: palClearPad(GPIOB, 0); break;
|
||||
}
|
||||
|
||||
if (matrix_debouncing[col] != data) {
|
||||
matrix_debouncing[col] = data;
|
||||
debouncing = true;
|
||||
debouncing_time = timer_read();
|
||||
}
|
||||
}
|
||||
|
||||
if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
|
||||
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||
matrix[row] = 0;
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
|
||||
}
|
||||
}
|
||||
debouncing = false;
|
||||
}
|
||||
|
||||
matrix_scan_quantum();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool matrix_is_on(uint8_t row, uint8_t col) {
|
||||
return (matrix[row] & (1<<col));
|
||||
}
|
||||
|
||||
matrix_row_t matrix_get_row(uint8_t row) {
|
||||
return matrix[row];
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
printf("\nr/c 01234567\n");
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
printf("%X0: ", row);
|
||||
matrix_row_t data = matrix_get_row(row);
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
if (data & (1<<col))
|
||||
printf("1");
|
||||
else
|
||||
printf("0");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
@ -22,3 +22,13 @@ void matrix_init_kb(void) {
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
#ifdef DIP_SWITCH_ENABLE
|
||||
__attribute__((weak))
|
||||
void dip_update(uint8_t index, bool active) {}
|
||||
|
||||
__attribute__((weak))
|
||||
void dip_switch_update_user(uint8_t index, bool active) {
|
||||
dip_update(index, active);
|
||||
}
|
||||
#endif
|
||||
|
@ -1,5 +1,4 @@
|
||||
# project specific files
|
||||
SRC = matrix.c
|
||||
LAYOUTS += ortho_4x12
|
||||
|
||||
# Cortex version
|
||||
@ -31,9 +30,9 @@ API_SYSEX_ENABLE = no
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
|
||||
CUSTOM_MATRIX = yes # Custom matrix file
|
||||
# SERIAL_LINK_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
|
||||
LAYOUTS = ortho_4x12 planck_mit
|
||||
LAYOUTS_HAS_RGB = no
|
||||
|
@ -259,7 +259,7 @@ void encoder_update_user(uint8_t index, bool clockwise) {
|
||||
}
|
||||
}
|
||||
|
||||
void dip_update(uint8_t index, bool active) {
|
||||
void dip_switch_update_user(uint8_t index, bool active) {
|
||||
switch (index) {
|
||||
case 0:
|
||||
if (active) {
|
||||
|
@ -27,25 +27,17 @@
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 6
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
/* Note: These are not used for arm boards. They're here purely as documentation.
|
||||
* #define MATRIX_ROW_PINS { PB0, PB1, PB2, PA15, PA10 }
|
||||
* #define MATRIX_COL_PINS { PA2, PA3, PA6, PB14, PB15, PA8, PA9, PA7, PB3, PB4, PC14, PC15, PC13, PB5, PB6 }
|
||||
* #define UNUSED_PINS
|
||||
*/
|
||||
#undef MATRIX_ROW_PINS
|
||||
#undef MATRIX_COL_PINS
|
||||
#define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2, A3, A6 }
|
||||
#define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { B12 }
|
||||
#define ENCODERS_PAD_B { B13 }
|
||||
|
||||
#define DIP_SWITCH_PINS { B14, A15, A0, B9 }
|
||||
|
||||
#define MUSIC_MAP
|
||||
#undef AUDIO_VOICES
|
||||
#undef C6_AUDIO
|
||||
|
@ -1,187 +0,0 @@
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
#include "hal.h"
|
||||
#include "timer.h"
|
||||
#include "wait.h"
|
||||
#include "printf.h"
|
||||
#include "backlight.h"
|
||||
#include "matrix.h"
|
||||
#include "action.h"
|
||||
#include "keycode.h"
|
||||
#include <string.h>
|
||||
|
||||
/*
|
||||
* col: { B11, B10, B2, B1, A7, B0 }
|
||||
* row: { A10, A9, A8, B15, C13, C14, C15, A2 }
|
||||
*/
|
||||
/* matrix state(1:on, 0:off) */
|
||||
static matrix_row_t matrix[MATRIX_ROWS];
|
||||
static matrix_col_t matrix_debouncing[MATRIX_COLS];
|
||||
static bool debouncing = false;
|
||||
static uint16_t debouncing_time = 0;
|
||||
|
||||
static bool dip_switch[4] = {0, 0, 0, 0};
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_user(void) {}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_user(void) {}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_scan_kb(void) {
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void matrix_init(void) {
|
||||
printf("matrix init\n");
|
||||
//debug_matrix = true;
|
||||
|
||||
// dip switch setup
|
||||
palSetPadMode(GPIOB, 14, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOA, 15, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLUP);
|
||||
palSetPadMode(GPIOB, 9, PAL_MODE_INPUT_PULLUP);
|
||||
|
||||
// actual matrix setup
|
||||
palSetPadMode(GPIOB, 11, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 10, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 2, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 1, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOA, 7, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
palSetPadMode(GPIOB, 0, PAL_MODE_OUTPUT_PUSHPULL);
|
||||
|
||||
palSetPadMode(GPIOA, 10, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 9, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 8, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOB, 15, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLDOWN);
|
||||
palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLDOWN);
|
||||
|
||||
|
||||
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
|
||||
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t));
|
||||
|
||||
|
||||
matrix_init_quantum();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void dip_update(uint8_t index, bool active) { }
|
||||
|
||||
__attribute__ ((weak))
|
||||
void encoder_update(bool clockwise) { }
|
||||
|
||||
bool last_dip_switch[4] = {0};
|
||||
|
||||
#ifndef ENCODER_RESOLUTION
|
||||
#define ENCODER_RESOLUTION 4
|
||||
#endif
|
||||
|
||||
uint8_t matrix_scan(void) {
|
||||
// dip switch
|
||||
dip_switch[0] = !palReadPad(GPIOB, 14);
|
||||
dip_switch[1] = !palReadPad(GPIOA, 15);
|
||||
dip_switch[2] = !palReadPad(GPIOA, 10);
|
||||
dip_switch[3] = !palReadPad(GPIOB, 9);
|
||||
for (uint8_t i = 0; i < 4; i++) {
|
||||
if (last_dip_switch[i] ^ dip_switch[i])
|
||||
dip_update(i, dip_switch[i]);
|
||||
}
|
||||
memcpy(last_dip_switch, dip_switch, sizeof(&dip_switch));
|
||||
|
||||
// actual matrix
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
matrix_col_t data = 0;
|
||||
|
||||
// strobe col { B11, B10, B2, B1, A7, B0 }
|
||||
switch (col) {
|
||||
case 0: palSetPad(GPIOB, 11); break;
|
||||
case 1: palSetPad(GPIOB, 10); break;
|
||||
case 2: palSetPad(GPIOB, 2); break;
|
||||
case 3: palSetPad(GPIOB, 1); break;
|
||||
case 4: palSetPad(GPIOA, 7); break;
|
||||
case 5: palSetPad(GPIOB, 0); break;
|
||||
}
|
||||
|
||||
// need wait to settle pin state
|
||||
wait_us(20);
|
||||
|
||||
// read row data { A10, A9, A8, B15, C13, C14, C15, A2 }
|
||||
data = (
|
||||
(palReadPad(GPIOA, 10) << 0 ) |
|
||||
(palReadPad(GPIOA, 9) << 1 ) |
|
||||
(palReadPad(GPIOA, 8) << 2 ) |
|
||||
(palReadPad(GPIOB, 15) << 3 ) |
|
||||
(palReadPad(GPIOC, 13) << 4 ) |
|
||||
(palReadPad(GPIOC, 14) << 5 ) |
|
||||
(palReadPad(GPIOC, 15) << 6 ) |
|
||||
(palReadPad(GPIOA, 2) << 7 ) |
|
||||
(palReadPad(GPIOA, 3) << 8 ) |
|
||||
(palReadPad(GPIOA, 6) << 9 )
|
||||
);
|
||||
|
||||
// unstrobe col { B11, B10, B2, B1, A7, B0 }
|
||||
switch (col) {
|
||||
case 0: palClearPad(GPIOB, 11); break;
|
||||
case 1: palClearPad(GPIOB, 10); break;
|
||||
case 2: palClearPad(GPIOB, 2); break;
|
||||
case 3: palClearPad(GPIOB, 1); break;
|
||||
case 4: palClearPad(GPIOA, 7); break;
|
||||
case 5: palClearPad(GPIOB, 0); break;
|
||||
}
|
||||
|
||||
if (matrix_debouncing[col] != data) {
|
||||
matrix_debouncing[col] = data;
|
||||
debouncing = true;
|
||||
debouncing_time = timer_read();
|
||||
}
|
||||
}
|
||||
|
||||
if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
|
||||
for (int row = 0; row < MATRIX_ROWS; row++) {
|
||||
matrix[row] = 0;
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
matrix[row] |= ((matrix_debouncing[col] & (1 << row) ? 1 : 0) << col);
|
||||
}
|
||||
}
|
||||
debouncing = false;
|
||||
}
|
||||
|
||||
matrix_scan_quantum();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool matrix_is_on(uint8_t row, uint8_t col) {
|
||||
return (matrix[row] & (1<<col));
|
||||
}
|
||||
|
||||
matrix_row_t matrix_get_row(uint8_t row) {
|
||||
return matrix[row];
|
||||
}
|
||||
|
||||
void matrix_print(void) {
|
||||
printf("\nr/c 01234567\n");
|
||||
for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
|
||||
printf("%X0: ", row);
|
||||
matrix_row_t data = matrix_get_row(row);
|
||||
for (int col = 0; col < MATRIX_COLS; col++) {
|
||||
if (data & (1<<col))
|
||||
printf("1");
|
||||
else
|
||||
printf("0");
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user