mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-09 08:53:37 +00:00
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
@@ -0,0 +1,348 @@
|
||||
/* 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 | 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 | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_ergodox_wrapper(
|
||||
// LEFT HAND
|
||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||
_____________________QWERTY_L1______________________, KC_NO,
|
||||
_____________________QWERTY_L2______________________,
|
||||
_____________________QWERTY_L3______________________, T_LBRC,
|
||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
||||
// LEFT THUMB
|
||||
KC_UP, KC_DOWN,
|
||||
KC_HOME,
|
||||
LT_RAI, KC_BSPC,
|
||||
KC_END,
|
||||
|
||||
//RIGHT HAND
|
||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||
KC_NO, _____________________QWERTY_R1______________________,
|
||||
_____________________QWERTY_R2______________________,
|
||||
T_RBRC, _____________________QWERTY_R3______________________,
|
||||
________MOD_RIGHT________, M_ZOOM, M_PYNV,
|
||||
// RIGHT THUMB
|
||||
KC_LEFT, KC_RGHT,
|
||||
KC_PGUP,
|
||||
KC_PGDN,
|
||||
KC_DEL, LT_LOW
|
||||
),
|
||||
|
||||
/* DVORAK
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 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 | = |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Up | Down | | Left | Right|
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | Home | | PgUp | | |
|
||||
* | Space|Backsp|------| |------| Del |Enter |
|
||||
* | |ace | End | | PgDn | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_DVORAK] = LAYOUT_ergodox_wrapper(
|
||||
// LEFT HAND
|
||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||
_____________________DVORAK_L1______________________, KC_NO,
|
||||
_____________________DVORAK_L2______________________,
|
||||
_____________________DVORAK_L3______________________, T_LBRC,
|
||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
||||
// LEFT THUMB
|
||||
KC_UP, KC_DOWN,
|
||||
KC_HOME,
|
||||
LT_RAI, KC_BSPC,
|
||||
KC_END,
|
||||
|
||||
//RIGHT HAND
|
||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||
KC_NO, _____________________DVORAK_R1______________________,
|
||||
_____________________DVORAK_R2______________________,
|
||||
T_RBRC, _____________________DVORAK_R3______________________,
|
||||
________MOD_RIGHT________, M_ZOOM, M_PYNV,
|
||||
// RIGHT THUMB
|
||||
KC_LEFT, KC_RGHT,
|
||||
KC_PGUP,
|
||||
KC_PGDN,
|
||||
KC_DEL, LT_LOW
|
||||
),
|
||||
|
||||
/* COLEMAK
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 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 | , | . | / | = |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_ZOOM|M_PYNV|
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Up | Down | | Left | Right|
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | Home | | PgUp | | |
|
||||
* | Space|Backsp|------| |------| Del |Enter |
|
||||
* | |ace | End | | PgDn | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_COLEMAK] = LAYOUT_ergodox_wrapper(
|
||||
// LEFT HAND
|
||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||
_____________________COLEMAK_L1_____________________, KC_NO,
|
||||
_____________________COLEMAK_L2_____________________,
|
||||
_____________________COLEMAK_L3_____________________, T_LBRC,
|
||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
||||
// LEFT THUMB
|
||||
KC_UP, KC_DOWN,
|
||||
KC_HOME,
|
||||
LT_RAI, KC_BSPC,
|
||||
KC_END,
|
||||
|
||||
//RIGHT HAND
|
||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||
KC_NO, _____________________COLEMAK_R1_____________________,
|
||||
_____________________COLEMAK_R2_____________________,
|
||||
T_RBRC, _____________________COLEMAK_R3_____________________,
|
||||
________MOD_RIGHT________, M_ZOOM, M_PYNV,
|
||||
// RIGHT THUMB
|
||||
KC_LEFT, KC_RGHT,
|
||||
KC_PGUP,
|
||||
KC_PGDN,
|
||||
KC_DEL, LT_LOW
|
||||
),
|
||||
|
||||
/* 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 | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT_ergodox_wrapper(
|
||||
//LEFT HAND
|
||||
_____________________FUNC_LEFT______________________, _______,
|
||||
_______, _______, _______, _________MEDIA_1_________, _______,
|
||||
_______, _______, _______, _________MEDIA_2_________,
|
||||
_______, _______, _______, _________MEDIA_3_________, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
// LEFT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
|
||||
//RIGHT HAND
|
||||
_______, _____________________FUNC_RIGHT_____________________,
|
||||
_______, _______________NAV_1______________, _______, _______,
|
||||
_______________NAV_2______________, K_LOCK, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, M_CODE, _______,
|
||||
// RIGHT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______,
|
||||
_______, _______
|
||||
),
|
||||
|
||||
/* RAISE
|
||||
*
|
||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||
* | | | | |K_CSCN| | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT_ergodox_wrapper(
|
||||
//LEFT HAND
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// LEFT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
|
||||
//RIGHT HAND
|
||||
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,
|
||||
// RIGHT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______,
|
||||
_______, _______
|
||||
),
|
||||
|
||||
/* ADJUST
|
||||
*
|
||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||
* | | | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||
* | M_MAKE | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | M_VRSN | | | | | |------| |-------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | M_FLSH | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT_ergodox_wrapper(
|
||||
//LEFT HAND
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
M_VRSN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// LEFT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
|
||||
//RIGHT HAND
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,
|
||||
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,
|
||||
// RIGHT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______,
|
||||
_______, _______
|
||||
),
|
||||
/* Keymap XX: TEMPLATE
|
||||
*
|
||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | | | | |------| |-------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `-----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
[_XXLAYER] = LAYOUT_ergodox_wrapper(
|
||||
//LEFT HAND
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
// LEFT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
|
||||
//RIGHT HAND
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______,
|
||||
// RIGHT THUMB
|
||||
_______, _______,
|
||||
_______,
|
||||
_______,
|
||||
_______, _______
|
||||
),
|
||||
|
||||
*/
|
||||
};
|
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");
|
||||
}
|
||||
}
|
@@ -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,11 +1,8 @@
|
||||
# project specific files
|
||||
SRC = matrix.c
|
||||
|
||||
# Cortex version
|
||||
MCU = STM32F303
|
||||
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
|
||||
@@ -27,8 +24,8 @@ API_SYSEX_ENABLE = no
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
#SLEEP_LED_ENABLE = yes
|
||||
|
||||
CUSTOM_MATRIX = yes # Custom matrix file
|
||||
# SERIAL_LINK_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
|
||||
LAYOUTS = ortho_5x12
|
||||
|
@@ -71,7 +71,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#define EEPROM_CUSTOM_BACKLIGHT 804
|
||||
|
||||
|
||||
#undef EEPROM_MAGIC_ADDR
|
||||
#define EEPROM_MAGIC_ADDR 34
|
||||
#undef EEPROM_VERSION_ADDR
|
||||
#define EEPROM_VERSION_ADDR 36
|
||||
#undef RGB_BACKLIGHT_CONFIG_EEPROM_ADDR
|
||||
#define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR 37
|
||||
#undef DYNAMIC_KEYMAP_EEPROM_ADDR
|
||||
#define DYNAMIC_KEYMAP_EEPROM_ADDR 68
|
||||
#undef DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR
|
||||
#define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 66
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
|
@@ -25,19 +25,19 @@ enum layer_names {
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT_default(
|
||||
KC_ESC, KC_GESC, 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_DEL, KC_BSPC,
|
||||
KC_PGUP, 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_PGDN, KC_GRV, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RALT,
|
||||
KC_LCTL, KC_LALT, KC_ENT, KC_LCMD, KC_SPC, FNM, KC_RCTL
|
||||
KC_ESC, KC_GESC, 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_DEL, KC_BSPC,
|
||||
KC_PGUP, 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_PGDN, KC_GRV, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FNM,
|
||||
KC_LCTL, KC_LCMD, KC_ENT, FNM, KC_SPC, KC_RCMD, KC_RCTL
|
||||
),
|
||||
|
||||
[_FNM] = LAYOUT_default(
|
||||
RGB_TOG, _______, 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_DEL,
|
||||
RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_SAD, RGB_HUD, RGB_VAD, _______, RESET,
|
||||
VLK_TOG, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
|
||||
_______, BL_INC, BL_DEC, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
RGB_TOG, _______, 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_DEL,
|
||||
RGB_MOD, _______, _______, _______, _______, _______, _______, RGB_SAI, RGB_HUI, RGB_VAI, RGB_SAD, RGB_HUD, RGB_VAD, _______, RESET,
|
||||
VLK_TOG, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, EEP_RST,
|
||||
_______, BL_INC, BL_DEC, BL_TOGG, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
|
@@ -40,7 +40,7 @@ VPATH += keyboards/cannonkeys/stm32f072
|
||||
SRC = keyboard.c \
|
||||
led.c
|
||||
|
||||
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
|
@@ -54,14 +54,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define BACKLIGHT_BREATHING
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
|
||||
// #define RGB_DI_PIN E2
|
||||
// #ifdef RGB_DI_PIN
|
||||
// #define RGBLIGHT_ANIMATIONS
|
||||
// #define RGBLED_NUM 16
|
||||
// #define RGBLIGHT_HUE_STEP 8
|
||||
// #define RGBLIGHT_SAT_STEP 8
|
||||
// #define RGBLIGHT_VAL_STEP 8
|
||||
// #endif
|
||||
#define RGB_DI_PIN B7
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 14
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
19
keyboards/xd87/keymaps/default_underglow/config.h
Executable file
19
keyboards/xd87/keymaps/default_underglow/config.h
Executable file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 Louwii
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
74
keyboards/xd87/keymaps/default_underglow/keymap.c
Executable file
74
keyboards/xd87/keymaps/default_underglow/keymap.c
Executable file
@@ -0,0 +1,74 @@
|
||||
/* Copyright 2019 Louwii
|
||||
*
|
||||
* 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
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, 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_PSCR, KC_SLCK, KC_PAUS,
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
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_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, 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_UP,
|
||||
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_VAI, RGB_MOD, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, RGB_VAD, RGB_RMOD,RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS )
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QMKBEST:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKBEST is pressed
|
||||
SEND_STRING("QMK is the best thing ever!");
|
||||
} else {
|
||||
// when keycode QMKBEST is released
|
||||
}
|
||||
break;
|
||||
case QMKURL:
|
||||
if (record->event.pressed) {
|
||||
// when keycode QMKURL is pressed
|
||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
} else {
|
||||
// when keycode QMKURL is released
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
13
keyboards/xd87/keymaps/default_underglow/readme.md
Executable file
13
keyboards/xd87/keymaps/default_underglow/readme.md
Executable file
@@ -0,0 +1,13 @@
|
||||
# The default RGB underglow layout for xd87
|
||||
|
||||
The RGB Underglow feature is disabled by default. This specific keymap enables RGB Underglow but disables the Command feature in order to save space.
|
||||
|
||||
## Keymap
|
||||
|
||||
### Layer 0
|
||||
|
||||

|
||||
|
||||
### Layer 1
|
||||
|
||||

|
3
keyboards/xd87/keymaps/default_underglow/rules.mk
Executable file
3
keyboards/xd87/keymaps/default_underglow/rules.mk
Executable file
@@ -0,0 +1,3 @@
|
||||
BOOTMAGIC_ENABLE = lite
|
||||
COMMAND_ENABLE = no
|
||||
RGBLIGHT_ENABLE = yes
|
@@ -77,7 +77,7 @@ UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||
|
||||
# Supported layouts
|
||||
LAYOUTS = tkl_ansi tkl_iso
|
||||
|
71
quantum/dip_switch.c
Normal file
71
quantum/dip_switch.c
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
|
||||
* Copyright 2019 Drashna Jaelre (Christopher Courtney) <drashna@live.com>
|
||||
*
|
||||
* 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 "dip_switch.h"
|
||||
|
||||
// for memcpy
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#if !defined(DIP_SWITCH_PINS)
|
||||
# error "No DIP switch pads defined by DIP_SWITCH_PINS"
|
||||
#endif
|
||||
|
||||
#define NUMBER_OF_DIP_SWITCHES (sizeof(dip_switch_pad)/sizeof(pin_t))
|
||||
static pin_t dip_switch_pad[] = DIP_SWITCH_PINS;
|
||||
static bool dip_switch_state[NUMBER_OF_DIP_SWITCHES] = { 0 };
|
||||
static bool last_dip_switch_state[NUMBER_OF_DIP_SWITCHES] = { 0 };
|
||||
|
||||
|
||||
__attribute__((weak))
|
||||
void dip_switch_update_user(uint8_t index, bool active) {}
|
||||
|
||||
__attribute__((weak))
|
||||
void dip_switch_update_kb(uint8_t index, bool active) { dip_switch_update_user(index, active); }
|
||||
|
||||
__attribute__((weak))
|
||||
void dip_switch_update_mask_user(uint32_t state) {}
|
||||
|
||||
__attribute__((weak))
|
||||
void dip_switch_update_mask_kb(uint32_t state) { dip_switch_update_mask_user(state); }
|
||||
|
||||
void dip_switch_init(void) {
|
||||
for (uint8_t i = 0; i < NUMBER_OF_DIP_SWITCHES; i++) {
|
||||
setPinInputHigh(dip_switch_pad[i]);
|
||||
}
|
||||
dip_switch_read(true);
|
||||
}
|
||||
|
||||
|
||||
void dip_switch_read(bool forced) {
|
||||
bool has_dip_state_changed = false;
|
||||
uint32_t dip_switch_mask = 0;
|
||||
|
||||
for (uint8_t i = 0; i < NUMBER_OF_DIP_SWITCHES; i++) {
|
||||
dip_switch_state[i] = !readPin(dip_switch_pad[i]);
|
||||
dip_switch_mask |= dip_switch_state[i] << i;
|
||||
if (last_dip_switch_state[i] ^ dip_switch_state[i] || forced) {
|
||||
has_dip_state_changed = true;
|
||||
dip_switch_update_kb(i, dip_switch_state[i]);
|
||||
}
|
||||
}
|
||||
if (has_dip_state_changed) {
|
||||
dip_switch_update_mask_kb(dip_switch_mask);
|
||||
}
|
||||
memcpy(last_dip_switch_state, dip_switch_state, sizeof(&dip_switch_state));
|
||||
}
|
29
quantum/dip_switch.h
Normal file
29
quantum/dip_switch.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2018 Jack Humbert <jack.humb@gmail.com>
|
||||
* Copyright 2018 Drashna Jaelre (Christopher Courtney) <drashna@live.com>
|
||||
*
|
||||
* 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
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
void dip_switch_update_kb(uint8_t index, bool active);
|
||||
void dip_switch_update_user(uint8_t index, bool active);
|
||||
void dip_switch_update_mask_user(uint32_t state);
|
||||
void dip_switch_update_mask_kb(uint32_t state);
|
||||
|
||||
void dip_switch_init(void);
|
||||
void dip_switch_read(bool forced);
|
@@ -967,6 +967,10 @@ void matrix_init_quantum() {
|
||||
#ifdef OUTPUT_AUTO_ENABLE
|
||||
set_output(OUTPUT_AUTO);
|
||||
#endif
|
||||
#ifdef DIP_SWITCH_ENABLE
|
||||
dip_switch_init();
|
||||
#endif
|
||||
|
||||
matrix_init_kb();
|
||||
}
|
||||
|
||||
@@ -1003,6 +1007,10 @@ void matrix_scan_quantum() {
|
||||
haptic_task();
|
||||
#endif
|
||||
|
||||
#ifdef DIP_SWITCH_ENABLE
|
||||
dip_switch_read(false);
|
||||
#endif
|
||||
|
||||
matrix_scan_kb();
|
||||
}
|
||||
#if defined(BACKLIGHT_ENABLE) && (defined(BACKLIGHT_PIN) || defined(BACKLIGHT_PINS))
|
||||
|
@@ -145,6 +145,11 @@ extern layer_state_t layer_state;
|
||||
# include "oled_driver.h"
|
||||
#endif
|
||||
|
||||
#ifdef DIP_SWITCH_ENABLE
|
||||
#include "dip_switch.h"
|
||||
#endif
|
||||
|
||||
|
||||
// Function substitutions to ease GPIO manipulation
|
||||
#if defined(__AVR__)
|
||||
typedef uint8_t pin_t;
|
||||
|
@@ -31,7 +31,8 @@ HARDWARE_OPTION_NAMES = \
|
||||
LED_BREATHING_TABLE \
|
||||
LED_TABLES \
|
||||
POINTING_DEVICE_ENABLE \
|
||||
VISUALIZER_ENABLE
|
||||
VISUALIZER_ENABLE \
|
||||
DIP_SWITCH_ENABLE
|
||||
|
||||
OTHER_OPTION_NAMES = \
|
||||
UNICODE_ENABLE \
|
||||
|
1
users/ninjonas/.gitignore
vendored
Normal file
1
users/ninjonas/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
secrets.c
|
85
users/ninjonas/README.md
Normal file
85
users/ninjonas/README.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# QMK User Configuration for [ninjonas](https://github.com/ninjonas/qmk-yonas)
|
||||
Tired of copying and pasting the same macros and tap dances for all my keymaps. Utilizing user keymaps functionality.
|
||||
See: https://docs.qmk.fm/#/feature_userspace
|
||||
|
||||
## [ninjonas.c](ninjonas.c)
|
||||
- ninjonas [QMK user configuration](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_userspace.md)
|
||||
- On `keymap.c` include `ninjonas.h`
|
||||
```c
|
||||
#include "ninjonas.h"
|
||||
```
|
||||
|
||||
## Features
|
||||
### [Keys](ninjonas.h#L44)
|
||||
|Code | Description |
|
||||
|---|---|
|
||||
|K_LOCK | MacOS shortcut to execute lock command + ctrl + Q |
|
||||
|K_CSCN | MacOS shortcut to copy a portion of the screen to the clipboard |
|
||||
|
||||
### [Layers](ninjonas.h#L48)
|
||||
|Code | Description |
|
||||
|---|---|
|
||||
|LT_LOW | Tap for ENTER, hold for RAISE |
|
||||
|LT_FUNC | Tap for ENTER, hold for FUNCTIONS |
|
||||
|LT_RAI | Tap for SPACE, hold for LOWER |
|
||||
|LT_NUM | Tap for SPACE, hold for NUMBERS |
|
||||
|LT_LOW + LT_RAI | Hold for ADJUST |
|
||||
|L_LOWER | Dedicated key to momentarily toggle to use LOWER layer |
|
||||
|
||||
### [Layout Blocks](ninjonas.h#L57)
|
||||
Predefined keyboard layout templates to speed up configuring split keyboards
|
||||
|
||||
|Code | Description |
|
||||
|---|---|
|
||||
|QWERTY | Qwerty Layout |
|
||||
|DVORAK | Dvorak Layout |
|
||||
|COLEMAK | Colemak Layout |
|
||||
|NUM | Number Rows |
|
||||
|FUNC | Function Rows |
|
||||
|SYM | Symbol Rows \(When holding shift on numbers\) |
|
||||
|NAV | Navigation Cluster |
|
||||
|MOUSE | Mouse Cluster |
|
||||
|MEDIA | Media Cluster |
|
||||
|MOD | Modifier Cluster |
|
||||
|
||||
### [Macros](process_records.c)
|
||||
|Code | Description |
|
||||
|---|---|
|
||||
|M_PYNV | macro to activate pyenv with the name `jira` |
|
||||
|M_MAKE | macro to send QMK make command to compile keyboard |
|
||||
|M_FLSH | macro to send QMK make command to compile keyboard with the correct bootloader |
|
||||
|M_VRSN | macro to send QMK version |
|
||||
|M_SHFT | Sends + alt + shift to a keycode to activate [ShiftIt](https://github.com/fikovnik/ShiftIt) |
|
||||
|M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory |
|
||||
|
||||
### [Tap-Dance](tap_dances.h)
|
||||
|Code | Description |
|
||||
|---|---|
|
||||
|T_ESC | Tap once for ESC, double tap for CAPS_LOCK |
|
||||
|T_LBRC | Tap once for [, double for back browser |
|
||||
|T_RBRC | Tap once for ], double for forward browser |
|
||||
|T_TAB | Tap once for TAB, double for CTRL + TAB |
|
||||
|T_GRV | Tap once for GRV, double for + GRV |
|
||||
|T_GUI | Tap once for , double to open spotlight |
|
||||
|T_W | Tap for W, double tap for + W |
|
||||
|T_Q | Tap for Q, double tap for + Q |
|
||||
|
||||
### Secrets
|
||||
There's times where you have macros you don't want to share like emails, passwords 😱, & and private strings. Based off [drashna's secret macros](https://github.com/qmk/qmk_firmware/blob/master/users/drashna/readme_secrets.md), it's now possible to do this. All you need to do is create a `secrets.c` file. Below is an example of how this is used.
|
||||
|
||||
```c
|
||||
// secrets.c
|
||||
#include "ninjonas.h"
|
||||
|
||||
bool process_record_secrets(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// Sends zoom URL
|
||||
case M_ZOOM:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("SECRET_STRING_HERE" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
```
|
14
users/ninjonas/config.h
Normal file
14
users/ninjonas/config.h
Normal file
@@ -0,0 +1,14 @@
|
||||
#ifdef TAPPING_TERM
|
||||
#undef TAPPING_TERM
|
||||
#define TAPPING_TERM 200
|
||||
#endif
|
||||
|
||||
// Mouse Settings: Smoothing out mouse movement on keypress
|
||||
#ifndef MOUSEKEY_INTERVAL
|
||||
#undef MOUSEKEY_INTERVAL
|
||||
#define MOUSEKEY_INTERVAL 16
|
||||
#endif
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_TIME_TO_MAX 60
|
||||
#define MOUSEKEY_MAX_SPEED 7
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
68
users/ninjonas/ninjonas.c
Normal file
68
users/ninjonas/ninjonas.c
Normal file
@@ -0,0 +1,68 @@
|
||||
/* 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 "ninjonas.h"
|
||||
|
||||
layer_state_t layer_state_set_user (layer_state_t state) {
|
||||
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
|
||||
// BEGIN: SSD1306OLED
|
||||
// SSD1306 OLED update loop, make sure to add #define SSD1306OLED in config.h
|
||||
#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
|
||||
extern uint8_t is_master;
|
||||
|
||||
void matrix_init_user(void) {
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
iota_gfx_init(!has_usb()); // turns on the display
|
||||
}
|
||||
|
||||
// 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); // Moved to process_records.h
|
||||
const char *read_keylog(void);
|
||||
const char *read_keylogs(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());
|
||||
} 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
|
||||
// END: SSD1306OLED
|
112
users/ninjonas/ninjonas.h
Normal file
112
users/ninjonas/ninjonas.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/* 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/>.
|
||||
*/
|
||||
#pragma once
|
||||
#include "quantum.h"
|
||||
#include "version.h"
|
||||
#include "eeprom.h"
|
||||
#include "process_records.h"
|
||||
|
||||
#ifdef TAP_DANCE_ENABLE
|
||||
#include "tap_dances.h"
|
||||
#endif
|
||||
#if defined(KEYBOARD_lily58_rev1) & defined(PROTOCOL_LUFA)
|
||||
#include "lufa.h"
|
||||
#include "split_util.h"
|
||||
#endif
|
||||
#ifdef SSD1306OLED
|
||||
#include "ssd1306.h"
|
||||
#endif
|
||||
|
||||
#define _QWERTY 0
|
||||
#define _DVORAK 1
|
||||
#define _COLEMAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _ADJUST 5
|
||||
#ifdef KEYBOARD_pinky_3
|
||||
#define _NUMBERS 6
|
||||
#define _FUNCTIONS 7
|
||||
#endif
|
||||
|
||||
// Shortcut Keys
|
||||
#define K_LOCK LGUI(LCTL(KC_Q)) // Locks screen on MacOS
|
||||
#define K_CSCN LGUI(LCTL(LSFT(KC_4))) // Copy a portion of the screen to the clipboard
|
||||
|
||||
// Layer Keys
|
||||
#define L_LOWER MO(_LOWER)
|
||||
#define LT_LOW LT(_LOWER, KC_ENT)
|
||||
#define LT_RAI LT(_RAISE, KC_SPC)
|
||||
#ifdef KEYBOARD_pinky_3
|
||||
#define LT_NUM LT(_NUMBERS, KC_SPC)
|
||||
#define LT_FUNC LT(_FUNCTIONS, KC_ENT)
|
||||
#endif
|
||||
|
||||
// Layout blocks
|
||||
#define _____________________QWERTY_L1______________________ T_TAB, T_Q, T_W, KC_E, KC_R, KC_T
|
||||
#define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G
|
||||
#define _____________________QWERTY_L3______________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define _____________________QWERTY_R1______________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
|
||||
#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
|
||||
#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL
|
||||
|
||||
#define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
|
||||
#define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I
|
||||
#define _____________________DVORAK_L3______________________ KC_LSFT, KC_SCLN, T_Q, KC_J, KC_K, KC_X
|
||||
|
||||
#define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS
|
||||
#define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
|
||||
#define _____________________DVORAK_R3______________________ KC_B, KC_M, T_W, KC_V, KC_Z, KC_EQL
|
||||
|
||||
#define _____________________COLEMAK_L1_____________________ T_TAB, T_Q, T_W, KC_F, KC_P, KC_G
|
||||
#define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D
|
||||
#define _____________________COLEMAK_L3_____________________ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B
|
||||
|
||||
#define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS
|
||||
#define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
|
||||
#define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL
|
||||
|
||||
#define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
|
||||
#define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
|
||||
|
||||
#define _____________________FUNC_LEFT______________________ KC_F11, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5
|
||||
#define _____________________FUNC_RIGHT_____________________ KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F12
|
||||
|
||||
#define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
|
||||
#define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS
|
||||
|
||||
#define ____________________________________________________ _______, _______, _______, _______, _______, _______
|
||||
#define _____________________XXXXXXX________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
|
||||
#define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END
|
||||
#define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
|
||||
#define _____________MOUSE_1______________ KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_D
|
||||
#define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U
|
||||
|
||||
#define __________________________________ _______, _______, _______, _______
|
||||
#define _____________XXXXXXX______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
|
||||
#define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE
|
||||
#define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC__VOLUP
|
||||
#define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC__VOLDOWN
|
||||
|
||||
#define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL
|
||||
#define ________MOD_RIGHT________ KC_BSPC, KC_DEL, L_LOWER
|
||||
|
||||
// Layout wrappers
|
||||
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
|
||||
#define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)
|
98
users/ninjonas/process_records.c
Normal file
98
users/ninjonas/process_records.c
Normal file
@@ -0,0 +1,98 @@
|
||||
#include "ninjonas.h"
|
||||
|
||||
__attribute__((weak))
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }
|
||||
|
||||
__attribute__((weak))
|
||||
bool process_record_secrets(uint16_t keycode, keyrecord_t *record) { return true; }
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SSD1306OLED
|
||||
set_keylog(keycode, record);
|
||||
#endif
|
||||
}
|
||||
|
||||
switch (keycode) {
|
||||
|
||||
// Sends pyenv to activate 'jira' environment
|
||||
case M_PYNV:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("pyenv activate jira" SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
|
||||
// Sends + alt + shift to a keycode to activate shiftit. See: https://github.com/fikovnik/ShiftIt
|
||||
case M_SHFT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LGUI);
|
||||
register_code(KC_LALT);
|
||||
register_code(KC_LCTL);
|
||||
} else {
|
||||
unregister_code(KC_LGUI);
|
||||
unregister_code(KC_LALT);
|
||||
unregister_code(KC_LCTL);
|
||||
}
|
||||
break;
|
||||
|
||||
// Sends QMK make command to compile keyboard
|
||||
case M_MAKE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
|
||||
// Sends QMK make command with the correct bootloader
|
||||
case M_FLSH:
|
||||
if (!record->event.pressed) {
|
||||
SEND_STRING("rm -f *.hex && rm -rf .build/ && make " QMK_KEYBOARD ":" QMK_KEYMAP
|
||||
#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
|
||||
":dfu "
|
||||
#elif defined(BOOTLOADER_CATERINA)
|
||||
":avrdude "
|
||||
#endif
|
||||
SS_TAP(X_ENTER)
|
||||
);
|
||||
|
||||
// Send reset_keyboard command instead of pressing reset button
|
||||
#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
|
||||
reset_keyboard();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
// Sends QMK version
|
||||
case M_VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION ", Built on: " QMK_BUILDDATE);
|
||||
}
|
||||
break;
|
||||
|
||||
// Opens Visual Studio Code on current directory
|
||||
case M_CODE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("code ." SS_TAP(X_ENTER));
|
||||
}
|
||||
break;
|
||||
|
||||
// BEGIN: Layer macros
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
break;
|
||||
// END: Layer macros
|
||||
}
|
||||
|
||||
return process_record_keymap(keycode, record) && process_record_secrets(keycode, record);
|
||||
}
|
24
users/ninjonas/process_records.h
Normal file
24
users/ninjonas/process_records.h
Normal file
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
#include "ninjonas.h"
|
||||
|
||||
enum custom_keycodes {
|
||||
// Layer Macros
|
||||
QWERTY = SAFE_RANGE,
|
||||
DVORAK,
|
||||
COLEMAK,
|
||||
// Custom Macros
|
||||
M_ZOOM,
|
||||
M_PYNV,
|
||||
M_SHFT,
|
||||
M_MAKE,
|
||||
M_FLSH,
|
||||
M_VRSN,
|
||||
M_CODE,
|
||||
};
|
||||
|
||||
#ifdef SSD1306OLED
|
||||
void set_keylog(uint16_t keycode, keyrecord_t *record);
|
||||
#endif
|
||||
|
||||
bool process_record_secrets(uint16_t keycode, keyrecord_t *record);
|
||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
|
18
users/ninjonas/rules.mk
Normal file
18
users/ninjonas/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
BOOTMAGIC_ENABLE = no # Disable Boot Magic (https://beta.docs.qmk.fm/features/feature_bootmagic)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
TAP_DANCE_ENABLE = yes # Enable Tap Dance.
|
||||
|
||||
Link_Time_Optimization = no # if firmware size over limit, try this option
|
||||
|
||||
ifeq ($(strip $(Link_Time_Optimization)),yes)
|
||||
EXTRAFLAGS += -flto -DUSE_Link_Time_Optimization
|
||||
endif
|
||||
|
||||
SRC += ninjonas.c \
|
||||
process_records.c \
|
||||
tap_dances.c
|
||||
|
||||
ifneq ("$(wildcard $(USER_PATH)/secrets.c)","")
|
||||
SRC += secrets.c
|
||||
endif
|
12
users/ninjonas/tap_dances.c
Normal file
12
users/ninjonas/tap_dances.c
Normal file
@@ -0,0 +1,12 @@
|
||||
#include "ninjonas.h"
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_CAPS] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_CAPS),
|
||||
[TD_LBRC_BACK] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, LGUI(KC_LBRC)),
|
||||
[TD_RBRC_FWD] = ACTION_TAP_DANCE_DOUBLE(KC_RBRC, LGUI(KC_RBRC)),
|
||||
[TD_TAB_CTRLTAB] = ACTION_TAP_DANCE_DOUBLE(KC_TAB, LCTL(KC_TAB)),
|
||||
[TD_GRV_CTRLGRV] = ACTION_TAP_DANCE_DOUBLE(KC_GRV, LGUI(KC_GRV)),
|
||||
[TD_GUI_GUISPC] = ACTION_TAP_DANCE_DOUBLE(KC_LGUI, LGUI(KC_SPC)),
|
||||
[TD_W_CTRLW] = ACTION_TAP_DANCE_DOUBLE(KC_W, LGUI(KC_W)),
|
||||
[TD_Q_GUIQ] = ACTION_TAP_DANCE_DOUBLE(KC_Q, LGUI(KC_Q)),
|
||||
};
|
22
users/ninjonas/tap_dances.h
Normal file
22
users/ninjonas/tap_dances.h
Normal file
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#include "ninjonas.h"
|
||||
|
||||
enum custom_tapdances{
|
||||
TD_ESC_CAPS = 0,
|
||||
TD_LBRC_BACK,
|
||||
TD_RBRC_FWD,
|
||||
TD_TAB_CTRLTAB,
|
||||
TD_GRV_CTRLGRV,
|
||||
TD_GUI_GUISPC,
|
||||
TD_W_CTRLW,
|
||||
TD_Q_GUIQ,
|
||||
};
|
||||
|
||||
#define T_ESC TD(TD_ESC_CAPS) // Tap for ESC, double tap for CAPSLOCK
|
||||
#define T_LBRC TD(TD_LBRC_BACK) // Tap for [, double tap for back browser
|
||||
#define T_RBRC TD(TD_RBRC_FWD) // Tap for ], double tap for forward browser
|
||||
#define T_TAB TD(TD_TAB_CTRLTAB) // Tap for TAB, double tap for CTRL + TAB
|
||||
#define T_GRV TD(TD_GRV_CTRLGRV) // Tap for GRV, double tap for + GRV
|
||||
#define T_GUI TD(TD_GUI_GUISPC) // Tap for , double tap for + Space
|
||||
#define T_W TD(TD_W_CTRLW) // Tap for W, double tap for + W
|
||||
#define T_Q TD(TD_Q_GUIQ) // Tap for Q, double tap for + Q
|
@@ -61,7 +61,7 @@ elif grep ID /etc/os-release | grep -qE 'debian|ubuntu'; then
|
||||
|
||||
elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
|
||||
sudo pacman -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz
|
||||
sudo pacman -S \
|
||||
sudo pacman -S --needed \
|
||||
arm-none-eabi-binutils \
|
||||
arm-none-eabi-gcc \
|
||||
arm-none-eabi-newlib \
|
||||
@@ -71,6 +71,7 @@ elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
|
||||
avr-gcc \
|
||||
base-devel \
|
||||
clang \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
diffutils \
|
||||
gcc \
|
||||
@@ -79,10 +80,6 @@ elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
|
||||
unzip \
|
||||
wget \
|
||||
zip
|
||||
git clone https://aur.archlinux.org/dfu-programmer.git /tmp/dfu-programmer
|
||||
cd /tmp/dfu-programmer || exit 1
|
||||
makepkg -sic
|
||||
rm -rf /tmp/dfu-programmer/
|
||||
|
||||
elif grep ID /etc/os-release | grep -q gentoo; then
|
||||
echo "$GENTOO_WARNING" | fmt
|
||||
|
Reference in New Issue
Block a user