Compare commits
18 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3d3c093173 | ||
|
a7fca47686 | ||
|
9ab786d1d8 | ||
|
ec9058f227 | ||
|
5aada76f12 | ||
|
e9d32b60b7 | ||
|
e2fb3079c7 | ||
|
13cdfb465d | ||
|
1b711453ca | ||
|
5d36118eaa | ||
|
b7d095fdc3 | ||
|
ed62c6e146 | ||
|
32fd5e4f61 | ||
|
fe8b9d0d0f | ||
|
412af0f4e7 | ||
|
d55ee204db | ||
|
cdb967f22b | ||
|
28307be72f |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -43,6 +43,7 @@ doxygen/
|
||||
.project
|
||||
.settings/
|
||||
.idea
|
||||
*.iml
|
||||
.browse.VC.db*
|
||||
*.stackdump
|
||||
util/Win_Check_Output.txt
|
||||
|
@@ -6,7 +6,7 @@ Bootmagic is a system for configuring your keyboard while it initializes. To tri
|
||||
|
||||
Bootmagic Keycodes allow you to access the Bootmagic functionality after your keyboard has initialized. To use Bootmagic Keycodes you assign keycodes starting with `MAGIC_`, much in the same way you define any other key.
|
||||
|
||||
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the (Command)[feature_command.md) documentation page.
|
||||
Command is a feature that allows you to control different aspects of your keyboard. Command used to be called Magic. Command is typically accessed by holding Left and Right Shift at the same time, although that can be customized. While it shares some functionality with Bootmagic it also allows you to access functionality that Bootmagic does not. For more information see the [Command](feature_command.md) documentation page.
|
||||
|
||||
## Enabling Bootmagic
|
||||
|
||||
|
@@ -20,7 +20,7 @@ Compatible flashers:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (recommended GUI)
|
||||
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` in QMK (recommended command line)
|
||||
* [Atmel's Flip](http://www.atmel.com/tools/flip.aspx) (not recommended)
|
||||
* [Atmel's Flip](http://www.microchip.com/developmenttools/productdetails.aspx?partno=flip) (not recommended)
|
||||
|
||||
Flashing sequence:
|
||||
|
||||
|
43
keyboards/amj40/keymaps/jetpacktuxedo/keymap.c
Executable file
43
keyboards/amj40/keymaps/jetpacktuxedo/keymap.c
Executable file
@@ -0,0 +1,43 @@
|
||||
#include "amj40.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Default Layer
|
||||
[0] = KEYMAP( \
|
||||
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,\
|
||||
LT(2, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(2, KC_ENT),\
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MT(MOD_RSFT, KC_SLSH),\
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(1, KC_SPC), LT(1, KC_SPC), KC_RALT, MO(3), KC_RCTL \
|
||||
),
|
||||
|
||||
// Number Layer
|
||||
[1] = KEYMAP( \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, \
|
||||
KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, MT(MOD_RSFT, KC_BSLS), \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
|
||||
),
|
||||
|
||||
// Shifted Layer
|
||||
[2] = KEYMAP( \
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,\
|
||||
KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LCBR, KC_RCBR, KC_PIPE, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
|
||||
),
|
||||
|
||||
// Fkey Layer
|
||||
[3] = KEYMAP( \
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, RESET,\
|
||||
KC_TRNS, KC_F11, KC_F12, 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, TG(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
|
||||
),
|
||||
|
||||
// Gaming Layer
|
||||
[4] = KEYMAP( \
|
||||
KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS,\
|
||||
KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, 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_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS\
|
||||
),
|
||||
};
|
55
keyboards/amj40/keymaps/jetpacktuxedo/readme.md
Executable file
55
keyboards/amj40/keymaps/jetpacktuxedo/readme.md
Executable file
@@ -0,0 +1,55 @@
|
||||
Jetpacktuxedo's AMJ40 layout
|
||||
=====================
|
||||
|
||||
This is based heavily on my minivan layout, with most difference stemming from the different widths between the minivan and the AMJ40. 
|
||||
|
||||
## Base Layer (0)
|
||||
|
||||
The base layer is pretty simple, straight qwerty layout where available. Both spacebars go to layer 1 when held. `tab` is `tab` when pressed and `fn2` when held, `enter` is the same. `GESC` is `esc` when used alone, but `~` when shifted. `/` is `/` when tapped but `rshift` when held.
|
||||
```
|
||||
|GESC| Q | W | E | R | T | Y | U | I | O | P |BSPC|
|
||||
| TAB | A | S | D | F | G | H | J | K | L | ENTER |
|
||||
|LSHIFT | Z | X | C | V | B | N | M | , | . | / |
|
||||
|LCTRL|LWIN|LALT | SPACE | SPACE |RALT |FN 3|RCTRL |
|
||||
```
|
||||
|
||||
## Number Layer (1)
|
||||
|
||||
Numbers are set up just like on my minivan layout, but symbols are a bit different because the AMJ40 is one key narrower than the minivan and also lacks dedicated arrows. Decided to go with `hjkl` arrows, which takes some getting used to. `;` is on a layer now because of the narrowness I mentioned before, and it (along with `-`, `=`, and `'`) moves to the right hand to leave room for the `hjkl` arrows. `delete` on `backspace`, `[` and `]` on `<` and `>`, and `\` on `/` are all stolen straight from my minivan layout.
|
||||
```
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |DEL |
|
||||
| | - | = | ; | ' | | ← | ↓ | ↑ | → | |
|
||||
| | | | | | | | | [ | ] | \ |
|
||||
| | | | | | | | |
|
||||
```
|
||||
|
||||
## Shifted Layer (2)
|
||||
|
||||
I don't want to be using two key combos constantly, so I also added this symbol layer that is basically shift+numeric layer. Also has nav keys on top of where arrows sit on the previous layer
|
||||
```
|
||||
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) |DEL |
|
||||
| | _ | + | : | " | |HOME|PGDN|PGUP|END | |
|
||||
| | | | | | | | | { | } | | |
|
||||
| | | | | | | | |
|
||||
```
|
||||
|
||||
## Fkey Layer (3)
|
||||
|
||||
Honestly, I use this more for jumping to my gaming layer and for reset than I use it for Fkeys. Lol. Hitting the left windows key while in this layer locks the gaming layer listed below
|
||||
```
|
||||
| | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 |F10 |RSET|
|
||||
| |F11 |F12 | | | | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| |FN 4| | | | | | |
|
||||
```
|
||||
|
||||
## "Gaming" Layer (4)
|
||||
|
||||
Based on the "gaming" layer on my minivan that I mostly just use for mouse keys. To toggle this back off you hit the right windows key (to go to layer 3) and then the left windows key again.
|
||||
```
|
||||
|ESC | | | | | |MWUP|MLCK|M UP|MRCK| | |
|
||||
| TAB | | | | | |MWDN|M L |M DN|M R | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | SPACE | | | | |
|
||||
```
|
||||
|
27
keyboards/amj40/keymaps/jetpacktuxedo/rules.mk
Normal file
27
keyboards/amj40/keymaps/jetpacktuxedo/rules.mk
Normal file
@@ -0,0 +1,27 @@
|
||||
# Build Options
|
||||
# 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 = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
|
||||
# Do not enable SLEEP_LED_ENABLE. It uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
#define ws2812_PORTREG PORTD
|
||||
#define ws2812_DDRREG DDRD
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
@@ -11,36 +11,60 @@
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum custom_keycodes {
|
||||
CTRLZ = SAFE_RANGE,
|
||||
CTRLX,
|
||||
CTRLC,
|
||||
CTRLV
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_MA] = KEYMAP_ANSI(
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
|
||||
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, \
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_LGUI, KC_LALT, MO(_LO), KC_SPC, KC_SPC, MO(_RA), KC_RALT, KC_APP, KC_RCTRL), \
|
||||
|
||||
[_LO] = KEYMAP_ANSI(
|
||||
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
|
||||
_______, CTRLZ, CTRLX, CTRLC, CTRLV, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
|
||||
|
||||
[_RA] = KEYMAP_ANSI(
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, \
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______), \
|
||||
|
||||
[_LO] = KEYMAP_ANSI(
|
||||
KC_GRV, 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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, \
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, RESET), \
|
||||
|
||||
};
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
// Turn capslock on
|
||||
PORTE &= ~(1 << 6);
|
||||
|
||||
|
||||
PORTE &= ~(1 << 6);
|
||||
} else {
|
||||
// Turn capslock off
|
||||
PORTE |= (1 << 6);
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case CTRLZ:
|
||||
SEND_STRING(SS_LCTRL("z"));
|
||||
return false;
|
||||
case CTRLX:
|
||||
SEND_STRING(SS_LCTRL("x"));
|
||||
return false;
|
||||
case CTRLC:
|
||||
SEND_STRING(SS_LCTRL("c"));
|
||||
return false;
|
||||
case CTRLV:
|
||||
SEND_STRING(SS_LCTRL("v"));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -146,7 +146,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
10
keyboards/dilly/keymaps/delmo/config.h
Normal file
10
keyboards/dilly/keymaps/delmo/config.h
Normal file
@@ -0,0 +1,10 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define RETRO_TAPPING
|
||||
#define PERMISSIVE_HOLD
|
||||
|
||||
#endif
|
107
keyboards/dilly/keymaps/delmo/keymap.c
Normal file
107
keyboards/dilly/keymaps/delmo/keymap.c
Normal file
@@ -0,0 +1,107 @@
|
||||
#include "dilly.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define _BASE 0
|
||||
#define _FN1 1
|
||||
#define _FN2 2
|
||||
#define _FN3 3
|
||||
#define _FN4 4
|
||||
#define _FN5 5
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
#define _______ KC_TRNS
|
||||
|
||||
// Tap-Hold keys
|
||||
//#define KC_ASFT MT(MOD_LSFT, KC_A)
|
||||
#define KC_F_L3 LT(_FN3, KC_F)
|
||||
#define KC_ZCTL MT(MOD_LCTL, KC_Z)
|
||||
#define KC_XALT MT(MOD_LALT, KC_X)
|
||||
//#define KC_CGUI MT(MOD_LGUI, KC_C)
|
||||
#define KC_V_L4 LT(_FN4, KC_V)
|
||||
#define KC_SPL2 LT(_FN2, KC_SPC)
|
||||
#define KC_B_L1 LT(_FN1, KC_B)
|
||||
#define KC_N_L5 LT(_FN5, KC_N)
|
||||
//#define KC_MALT MT(MOD_RALT, KC_M)
|
||||
//#define KC_BSCT MT(MOD_RCTL, KC_BSPC)
|
||||
#define KC_ENTS MT(MOD_RSFT, KC_ENT)
|
||||
#define KC_BSCS MT(MOD_RSFT, KC_BSPC)
|
||||
|
||||
#define KC_GUIC LGUI(KC_C)
|
||||
|
||||
#define KC_RST RESET
|
||||
#define KC_BL_S BL_STEP
|
||||
#define KC_DBUG DEBUG
|
||||
#define KC_RTOG RGB_TOG
|
||||
#define KC_RMOD RGB_MOD
|
||||
#define KC_RHUI RGB_HUI
|
||||
#define KC_RHUD RGB_HUD
|
||||
#define KC_RSAI RGB_SAI
|
||||
#define KC_RSAD RGB_SAD
|
||||
#define KC_RVAI RGB_VAI
|
||||
#define KC_RVAD RGB_VAD
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
Q , W , E , R , T , Y , U , I , O , P ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
A , S , D ,F_L3, G , H , J , K , L ,BSCS,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
ZCTL,XALT,C ,V_L4,B_L1,SPL2,N_L5,M ,DOT ,ENTS
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN1] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
, , , , ,BSPC, , , ,CAPS
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN2] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
F11 ,F12 , , , , , , , ,GRV ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
, , , ,DEL , , , , ,
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN3] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
ESC , , , , ,MINS,EQL ,LBRC,RBRC,BSLS,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
TAB , , , , ,COMM,DOT ,SLSH,SCLN,QUOT,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
, , , ,BSPC, ,LEFT,DOWN, UP ,RGHT
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN4] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
, , , , ,UNDS,PLUS,LCBR,RCBR,PIPE,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
TAB , , , , , LT , GT ,QUES,COLN,DQUO,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
, ,GUIC, ,BSPC, ,HOME,PGDN,PGUP,END
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN5] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----+----+----+----+----.
|
||||
RTOG,RMOD, ,RST ,RHUI,RSAI,RVAI, , , ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
, ,DBUG, ,RHUD,RSAD,RVAD, , , ,
|
||||
//|----+----+----+----+----+----+----+----+----+----|
|
||||
BL_S, ,GUIC, , , , , , ,
|
||||
//`----+----+----+----+----+----+----+----+----+----'
|
||||
)
|
||||
|
||||
};
|
1
keyboards/dilly/keymaps/delmo/rules.mk
Normal file
1
keyboards/dilly/keymaps/delmo/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
RGBLIGHT_ENABLE = yes
|
@@ -24,7 +24,7 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
|
||||
|
||||
|
||||
/* Do60 Keymap Definition Macro */
|
||||
#define LAYOUT( \
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
|
||||
@@ -38,4 +38,18 @@ inline void do60_bl_led_off(void) { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }
|
||||
{ K40, K41, K42, KC_NO,KC_NO,K45, K46, K47, KC_NO,KC_NO,K4A, K4B, K4C, K4D, K4E } \
|
||||
}
|
||||
|
||||
#define LAYOUT_chiwi60_default( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2E, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K40, K41, K42, K45, K47, K4A, K4B, K4C, K4D, K4E \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, KC_NO, K2E }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E } \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
16
keyboards/do60/info.json
Normal file
16
keyboards/do60/info.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"keyboard_name": "do60",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"x":12, "y":3}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":2.75}, {"x":6.5, "y":4}, {"label":"3u(Space)", "x":7.5, "y":4, "w":2.25}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
|
||||
},
|
||||
|
||||
"LAYOUT_chiwi60_default": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"\u2190", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3, "w":1.75}, {"label":"\u2191", "x":13, "y":3}, {"label":"Del", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"3u(Space)", "x":3.75, "y":4, "w":3}, {"label":"3u(Space)", "x":6.75, "y":4, "w":3}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"win", "x":11, "y":4}, {"label":"\u2190", "x":12, "y":4}, {"label":"\u2193", "x":13, "y":4}, {"label":"\u2192", "x":14, "y":4}]
|
||||
}
|
||||
}
|
||||
}
|
@@ -4,7 +4,7 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, 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_GRV, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_BSPC, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_all(
|
||||
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_NO, KC_NO, \
|
||||
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
|
@@ -4,7 +4,7 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, 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_NO, 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC,KC_SPC, KC_DEL, KC_RGUI, F(0), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_all(
|
||||
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_NO, KC_NO, \
|
||||
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SMOD, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
|
113
keyboards/dz60/keymaps/256k_HHKB/README.md
Normal file
113
keyboards/dz60/keymaps/256k_HHKB/README.md
Normal file
@@ -0,0 +1,113 @@
|
||||
256k HHKB Layout:
|
||||
===
|
||||
|
||||
this is my personal layer that i use on my Tina-C HHKB layout board with a DZ60 PCB.
|
||||
---
|
||||
|
||||
there is 1 base layer and 4 modifyer layers:
|
||||
|
||||
BASE:
|
||||
---
|
||||
|
||||
```
|
||||
/* BASE LAYER
|
||||
*
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Win | Alt | Space | Alt | LIGHTS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
LAYER 1 (ALTFN):
|
||||
---
|
||||
|
||||
this layer is my main function layer, i changed the default HHKB function layer to suit my need and also changed the placement of the modifyer key to the left alt since i want to control the layer activation with one hand and have the other hand control the keys on that layer freely. perhaps this is due to me being left handed but it feels more natural to me this way.
|
||||
|
||||
```
|
||||
/* ALTFN LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `---------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
|
||||
MOUSE LAYER (MOUSEFN):
|
||||
---
|
||||
|
||||
*To access this layer you need to enter the ALTFN layer first then hit ESC button which will switch to the MOUSEFN layer*
|
||||
|
||||
this is the second *hidden* layer that controls the mouse scroll wheel directions. i find it's useful to have these controls on the keyboard for certain applications that require scrolling in all 4 directions (Simple example: expanding an image preview to full size that overflows outside of the default monitor size and using the scroll wheel to mouve the image around.)
|
||||
|
||||
also another benefit is that a lot of mice do not have horizontal control buttons for the scrolling
|
||||
|
||||
(This layer is still experimental so i might change it later or modify it but so far i enjoy it)
|
||||
|
||||
```
|
||||
/* MOUSEFN LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------
|
||||
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `---------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
|
||||
STANDARD HHKB FN LAYER (FN):
|
||||
---
|
||||
|
||||
this is the default HHKB function layer (mostly)... I have left it there on the same button and everything for 2 reasons: 1. for backup incase i forget where something was or if it contains a button that i did not include in my ALTFN layer. 2. as a reference for anyone else.
|
||||
|
||||
*this layer will probably get removed once i get comfortable with my ALTFN layer.*
|
||||
|
||||
|
||||
|
||||
LIGHTS LAYER:
|
||||
---
|
||||
|
||||
this is the basic lights layer used to control the RBG backlight on the DZ60... i have removed the 3 backlight controls since i do not use any key LED Backlight.
|
||||
|
||||
|
||||
```
|
||||
/* LIGHTS LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------+
|
||||
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `----------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
|
250
keyboards/dz60/keymaps/256k_HHKB/keymap.c
Normal file
250
keyboards/dz60/keymaps/256k_HHKB/keymap.c
Normal file
@@ -0,0 +1,250 @@
|
||||
#include "dz60.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
// My layout is practically the default HHKB layout.
|
||||
#define _DEFAULT 0
|
||||
#define _ALTFN 1
|
||||
#define _MOUSEFN 2
|
||||
#define _FN 3
|
||||
#define _LIGHTS 4
|
||||
|
||||
|
||||
#define ______ KC_TRNS
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
/* BASE LAYER
|
||||
*
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | \| | ~ ` |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | CTRL | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / | RShift | FN |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Win | Alt | Space | Alt | LIGHTS |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
|
||||
[_DEFAULT] = LAYOUT_hhkb(
|
||||
KC_ESC, 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_BSLS, KC_GRV,
|
||||
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_BSPC,
|
||||
KC_LCTL, 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_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
||||
KC_LGUI, MO(_ALTFN), KC_SPC, KC_RALT, MO(_LIGHTS)),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ALTFN LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | INSERT | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | UP | MUTE | V_DEC | V_INC | DEL |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | _ | _ | _ | _ | _ | _ | HOME | LEFT | DOWN | RIGHT | END | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | PREV | NEXT | PLAY | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `---------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_ALTFN] = LAYOUT_hhkb(
|
||||
|
||||
MO(_MOUSEFN), 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_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, KC_UP, KC_MUTE, KC_VOLD, KC_VOLU, KC_DEL,
|
||||
______, ______, ______, ______, ______, ______, ______, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MNXT, KC_MPLY, ______, ______,
|
||||
______, ______, ______, ______, ______),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* MOUSEFN LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------
|
||||
* | | ACC_1 | ACC_2 | ACC_3 | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CAPS | _ | _ | _ | _ | _ | _ | _ | _ | WHEEL_UP | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | _ | _ | _ | _ | _ | _ | _ | WH_LEFT | WH_DOWN | WH_RIGHT | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |---------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `---------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
|
||||
[_MOUSEFN] = LAYOUT_hhkb(
|
||||
|
||||
______, KC_ACL0, KC_ACL1, KC_ACL2, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, KC_WH_U, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, KC_WH_L, KC_WH_D, KC_WH_R, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* FN LAYER
|
||||
*
|
||||
* ,------------------------------------------------------------------------------------------------------
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |INSERT | _ |
|
||||
* |------------------------------------------------------------------------------------------------------+
|
||||
* | CAPS | _ | _ | _ | _ | _ | _ | _ | PRSC | SLOCK | PAUSE | UP | _ | DEL |
|
||||
* |------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | _ | VOLDOWN | VOLUP | VOLMUTE | _ | _ | _ | HOME | PGUP | LEFT | IGHT | _ |
|
||||
* |------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | END | PGDN | DOWN | _ | _ |
|
||||
* |------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
|
||||
|
||||
[_FN] = LAYOUT_hhkb(
|
||||
______, 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_INS, ______,
|
||||
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, ______, KC_DEL,
|
||||
______, KC_VOLD, KC_VOLU, KC_MUTE, ______, ______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, ______,
|
||||
______, ______, KC_MPRV, KC_MPLY, KC_MNXT, ______, ______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, ______, ______,
|
||||
______, ______, ______, ______, ______),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* LIGHTS LAYER
|
||||
*
|
||||
* ,---------------------------------------------------------------------------------------------------------------------+
|
||||
* | RGB_TOGGLE | STATIC | BREATHE | RAINBOW | SWIRL | SNAKE | KNIGHTRIDER | XMAS | STATIC_GRAD | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | RBG_MOD | HUE_INC | SATURATION_INC | BRIGHT_INC | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | CTRL | HUE_DEC | SATURATION_DEC | BRIGHT_DEC | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | Shift | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ | _ |
|
||||
* |----------------------------------------------------------------------------------------------------------------------+
|
||||
* | _ | _ | _ | _ | _ |
|
||||
* `----------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
|
||||
|
||||
[_LIGHTS] = LAYOUT_hhkb(
|
||||
RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, ______, ______, ______, ______, ______, ______,
|
||||
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, RGB_HUD, RGB_SAD, RGB_VAD, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______),
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
|
||||
RGB controls
|
||||
|
||||
Key -> Description
|
||||
=========================
|
||||
|
||||
RGB_TOG -> Toggle RGB lighting on or off
|
||||
|
||||
RGB_MOD -> Cycle through modes, reverse direction when Shift is held
|
||||
|
||||
RGB_RMOD -> Cycle through modes in reverse, forward direction when Shift is held
|
||||
|
||||
RGB_HUI -> Increase hue
|
||||
|
||||
RGB_HUD -> Decrease hue
|
||||
|
||||
RGB_SAI -> Increase saturation
|
||||
|
||||
RGB_SAD -> Decrease saturation
|
||||
|
||||
RGB_VAI -> Increase value (brightness)
|
||||
|
||||
RGB_VAD -> Decrease value (brightness)
|
||||
|
||||
RGB_M_P -> Static (no animation) mode
|
||||
|
||||
RGB_M_B -> Breathing animation mode
|
||||
|
||||
RGB_M_R -> Rainbow animation mode
|
||||
|
||||
RGB_M_SW -> Swirl animation mode
|
||||
|
||||
RGB_M_SN -> Snake animation mode
|
||||
|
||||
RGB_M_K -> "Knight Rider" animation mode
|
||||
|
||||
RGB_M_X -> Christmas animation mode
|
||||
|
||||
RGB_M_G -> Static gradient animation mode
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
Mouse controls:
|
||||
|
||||
Key -> Aliases -> Description
|
||||
==================================================
|
||||
|
||||
KC_MS_UP -> KC_MS_U -> Mouse Cursor Up
|
||||
|
||||
KC_MS_DOWN -> KC_MS_D -> Mouse Cursor Down
|
||||
|
||||
KC_MS_LEFT -> KC_MS_L -> Mouse Cursor Left
|
||||
|
||||
KC_MS_RIGHT -> KC_MS_R -> Mouse Cursor Right
|
||||
|
||||
KC_MS_BTN1 -> KC_BTN1 -> Mouse Button 1
|
||||
|
||||
KC_MS_BTN2 -> KC_BTN2 -> Mouse Button 2
|
||||
|
||||
KC_MS_BTN3 -> KC_BTN3 -> Mouse Button 3
|
||||
|
||||
KC_MS_BTN4 -> KC_BTN4 -> Mouse Button 4
|
||||
|
||||
KC_MS_BTN5 -> KC_BTN5 -> Mouse Button 5
|
||||
|
||||
KC_MS_WH_UP -> KC_WH_U -> Mouse Wheel Up
|
||||
|
||||
KC_MS_WH_DOWN -> KC_WH_D -> Mouse Wheel Down
|
||||
|
||||
KC_MS_WH_LEFT -> KC_WH_L -> Mouse Wheel Left
|
||||
|
||||
KC_MS_WH_RIGHT -> KC_WH_R -> Mouse Wheel Right
|
||||
|
||||
KC_MS_ACCEL0 -> KC_ACL0 -> Set mouse acceleration to 0
|
||||
|
||||
KC_MS_ACCEL1 -> KC_ACL1 -> Set mouse acceleration to 1
|
||||
|
||||
KC_MS_ACCEL2 -> KC_ACL2 -> Set mouse acceleration to 2
|
||||
|
||||
*/
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
|
||||
|
||||
switch (id) {
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
}
|
61
keyboards/dz60/keymaps/weeheavy/README.md
Normal file
61
keyboards/dz60/keymaps/weeheavy/README.md
Normal file
@@ -0,0 +1,61 @@
|
||||

|
||||
|
||||
# weeheavy's DZ60 split spacebar layout
|
||||
|
||||
* 2u left shift
|
||||
* arrow cluster
|
||||
* split spacebar with a center key
|
||||
|
||||
## Layouts
|
||||
|
||||
The base layout is ANSI QWERTY.
|
||||
|
||||
Key sizes (ASCII keyboards below match this scale):
|
||||
|
||||
1u = 4 chars = | |
|
||||
1.25u = 5 chars = | |
|
||||
1.5u = 6 chars = | |
|
||||
1.75u = 7 chars = | |
|
||||
2u = 8 chars = | |
|
||||
2.25u = 9 chars = | |
|
||||
2.75u = 11 chars = | |
|
||||
6.25u = 25 chars = | |
|
||||
|
||||
### Layer 0: Base layout
|
||||
|
||||
Specialities:
|
||||
|
||||
* Arrow cluster
|
||||
* FN1: access to layer 1
|
||||
* F2: access to layer 2
|
||||
|
||||
```
|
||||
,----------------------------------------------------------.
|
||||
|Es||1 ||2 ||3 ||4 ||5 ||6 ||7 ||8 ||9 ||0 ||- ||= || Bksp |
|
||||
|----------------------------------------------------------+
|
||||
|Tab ||Q ||W ||E ||R ||T ||Y ||U ||I ||O ||P ||[ ||] || \ |
|
||||
|----------------------------------------------------------+
|
||||
|Caps ||A ||S ||D ||F ||G ||H ||J ||K ||L ||; ||' || Enter |
|
||||
|----------------------------------------------------------+
|
||||
|Shift ||Z ||X ||C ||V ||B ||N ||M ||, ||. ||/ ||Sf||↑ ||Dl|
|
||||
|----------------------------------------------------------+
|
||||
|Ctl||Win||Alt|| Space ||FN1|| Space ||Al||F2||← ||↓ ||→ |
|
||||
`----------------------------------------------------------'
|
||||
```
|
||||
|
||||
### Layer 1: Utility
|
||||
|
||||
Specialities:
|
||||
|
||||
* F1-F12 keys when holding FN1
|
||||
* Movement cluster on the right hand side
|
||||
* Multimedia cluster on the bottom right
|
||||
* RGB config on the left hand side
|
||||
|
||||
### Layer 2: Config and setup
|
||||
|
||||
Specialities:
|
||||
|
||||
* Reset key on ESC and backslash location
|
||||
* Additional "B" key (a learning from my mistakes)
|
||||
|
39
keyboards/dz60/keymaps/weeheavy/keymap.c
Normal file
39
keyboards/dz60/keymaps/weeheavy/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
#include "dz60.h"
|
||||
|
||||
// Make special keycodes more visible
|
||||
#define ____ KC_TRNS
|
||||
#define XXXX KC_NO
|
||||
|
||||
// Layer definition
|
||||
#define L0 0
|
||||
#define L1 1
|
||||
#define L2 2
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// Base layer - ANSI QWERTY
|
||||
[L0] = LAYOUT_2_shifts(
|
||||
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, XXXX, 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_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, XXXX, 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_DEL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(L1), KC_SPC, KC_RALT, MO(L2), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// Utility layer - RGB and multimedia control
|
||||
[L1] = LAYOUT_2_shifts(
|
||||
____, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ____, ____,
|
||||
____, RGB_TOG, RGB_MOD, RGB_M_K, RGB_M_R, ____, ____, KC_PSCR, ____, KC_PAUS, ____, ____, ____, ____,
|
||||
____, RGB_HUI, RGB_HUD, ____, ____, ____, ____, KC_INS, KC_HOME, KC_PGUP, ____, ____, ____,
|
||||
____, ____, RGB_SAI, RGB_SAD, ____, ____, ____, ____, ____, KC_END, KC_PGDN, ____, KC_MPLY, KC_VOLU, KC_MUTE,
|
||||
____, RGB_VAI, RGB_VAD, ____, ____, ____, ____, ____, KC_MPRV, KC_VOLD, KC_MNXT),
|
||||
|
||||
// Setup layer - Reset an additional "b" button
|
||||
[L2] = LAYOUT_2_shifts(
|
||||
RESET, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
|
||||
KC_B, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, RESET,
|
||||
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
|
||||
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____,
|
||||
____, ____, ____, ____, ____, ____, ____, ____, ____, ____, ____),
|
||||
|
||||
};
|
||||
|
37
keyboards/ergo42/keymaps/default-illustrator/config.h
Normal file
37
keyboards/ergo42/keymaps/default-illustrator/config.h
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#endif
|
119
keyboards/ergo42/keymaps/default-illustrator/keymap.c
Normal file
119
keyboards/ergo42/keymaps/default-illustrator/keymap.c
Normal file
@@ -0,0 +1,119 @@
|
||||
#include "ergo42.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define BASE 0
|
||||
#define META 1
|
||||
#define SYMB 2
|
||||
#define GAME 3
|
||||
#define ILLUST 4
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* BASE
|
||||
* ,------------------------------------------------. ,------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ |
|
||||
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
|
||||
* | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : |
|
||||
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
|
||||
* | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | App |=>ILST|ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ |
|
||||
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
|
||||
* `------------------------------------------------' `------------------------------------------------'
|
||||
*/
|
||||
|
||||
[BASE] = KEYMAP( \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \
|
||||
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \
|
||||
KC_LCTRL, KC_LGUI, KC_APP, TG(ILLUST), LT(SYMB, KC_ESC), RCTL_T(KC_SPC), SFT_T(KC_TAB), KC_BSPC, LT(META, KC_ENT), KC_DELT, KC_PSCR, TG(GAME), TG(ILLUST), KC_JYEN \
|
||||
),
|
||||
|
||||
/* META
|
||||
* ,------------------------------------------------. ,------------------------------------------------.
|
||||
* | 1 | 2 | 3 | 4 | 5 | 6 | [ | | ] | 7 | 8 | 9 | 0 | - | ^ |
|
||||
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
|
||||
* | Alt | F1 | |Muhen | Henk | | ( | | ) | Left | Down | Up |Right | | |
|
||||
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
|
||||
* | Sft | F2 | F3 | F4 | F5 | F6 | { | | } | F7 | F8 | F9 | F10 | F11 |\/Sft |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |Reset | | | \ |
|
||||
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
|
||||
* `------------------------------------------------' `------------------------------------------------'
|
||||
*/
|
||||
|
||||
[META] = KEYMAP( \
|
||||
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_F1, XXXXXXX, KC_MHEN, KC_HENK, XXXXXXX, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \
|
||||
_______, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, SFT_T(KC_RO), \
|
||||
_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, RESET, XXXXXXX, XXXXXXX, _______ \
|
||||
),
|
||||
|
||||
/* SYMB
|
||||
* ,------------------------------------------------. ,------------------------------------------------.
|
||||
* | ! | " | # | $ | % | & | [ | | ] | ' | ( | ) | ~ | = | ~ |
|
||||
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
|
||||
* | Alt | | | | | | ( | | ) | | | | | + | * |
|
||||
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
|
||||
* | Sft | | | | | | { | | } | | | < | > | ? | \ |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | App | |ESC/ |Space/|Tab/ | |Back |Enter/| Del |PrtSc | | | \ |
|
||||
* | | | | |~SYMB |RCtrl |Shift | |Space |~META | | | | | |
|
||||
* `------------------------------------------------' `------------------------------------------------'
|
||||
*/
|
||||
|
||||
[SYMB] = KEYMAP( \
|
||||
S(KC_1), S(KC_2), S(KC_3), S(KC_4), S(KC_5), S(KC_6), _______, _______, S(KC_7), S(KC_8), S(KC_9), S(KC_0), S(KC_MINS), S(KC_EQL), \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, S(KC_SCLN), S(KC_QUOT), \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, S(KC_COMM), S(KC_DOT), S(KC_SLSH), S(KC_RO), \
|
||||
_______, _______, _______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, _______ \
|
||||
),
|
||||
|
||||
/* GAME
|
||||
* ,------------------------------------------------. ,------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | @ |
|
||||
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
|
||||
* | Alt | A | S | D | F | G | ( | | ) | H | J | K | L | ; | : |
|
||||
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
|
||||
* | Sft | Z | X | C | V | B | { | | } | N | M | , | . | / |\/Sft |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | App | | ESC |Space |Tab | |Back |Enter | Del |PrtSc |=>GAME| | \ |
|
||||
* | | | | | | | | |Space | | | | | | |
|
||||
* `------------------------------------------------' `------------------------------------------------'
|
||||
*/
|
||||
[GAME] = KEYMAP( \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_RBRC, KC_BSLS, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, \
|
||||
KC_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, S(KC_8), S(KC_9), KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, S(KC_RBRC), S(KC_BSLS), KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_T(KC_RO), \
|
||||
KC_LCTRL, KC_LGUI, KC_APP, XXXXXXX, KC_ESC, KC_SPC, KC_TAB, KC_BSPC, KC_ENT, KC_DELT, KC_PSCR, _______, XXXXXXX, KC_JYEN \
|
||||
),
|
||||
|
||||
/* ILLUST
|
||||
* ,------------------------------------------------. ,------------------------------------------------.
|
||||
* | Tab | H | G | I | P | C+J | C+] | | ] | Y | U | I | O | P | @ |
|
||||
* |------+------+------+------+------+------+------| |-------------+------+------+------+------+------|
|
||||
* | Alt | R | S | A | V |Sft+W | C+[ | | ) | H | J | K | L | ; | : |
|
||||
* |------+------+------+------+------+------+------| |------|------+------+------+------+------+------|
|
||||
* | Sft | Z | X | C | V | B | F | | } | N | M | , | . | / |\/Sft |
|
||||
* |------+------+------+------+------+------+------| |------+------+------+------+------+------+------|
|
||||
* | Ctrl | GUI | App |=>ILST| ESC | Ctrl | Del | |Back |Enter/| Del |PrtSc |=>GAME|=>ILST| \ |
|
||||
* | | | | | | | | |Space |~META | | | | | |
|
||||
* `------------------------------------------------' `------------------------------------------------'
|
||||
*/
|
||||
|
||||
[ILLUST] = KEYMAP( \
|
||||
KC_TAB, KC_H, KC_G, KC_I, KC_P, LCTL(KC_J), LCTL(KC_BSLS), _______, _______, _______, _______, _______, _______, _______, \
|
||||
KC_LALT, KC_R, KC_S, KC_A, KC_V, S(KC_W), LCTL(KC_RBRC), _______, _______, _______, _______, _______, _______, _______, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_F, _______, _______, _______, _______, _______, _______, _______, \
|
||||
KC_LCTRL, KC_LGUI, KC_APP, _______, KC_ESC, KC_RCTL, KC_DELT, _______, _______, _______, _______, XXXXXXX, _______, _______ \
|
||||
)
|
||||
|
||||
};
|
||||
|
3
keyboards/ergo42/keymaps/default-illustrator/rules.mk
Normal file
3
keyboards/ergo42/keymaps/default-illustrator/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
31
keyboards/fourier/keymaps/valgrahf/config.h
Normal file
31
keyboards/fourier/keymaps/valgrahf/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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
#endif
|
73
keyboards/fourier/keymaps/valgrahf/keymap.c
Normal file
73
keyboards/fourier/keymaps/valgrahf/keymap.c
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "fourier.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// 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.
|
||||
#define _BASE 0
|
||||
#define _FN1 1
|
||||
#define _FN2 2
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
};
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
#define KC_FN1 LT(_FN1, KC_NO)
|
||||
#define KC_FN2 LT(_FN2, KC_NO)
|
||||
#define KC_SPFN LT(_FN1, KC_SPACE)
|
||||
#define KC_RST RESET
|
||||
#define KC_DBUG DEBUG
|
||||
#define KC_RTOG RGB_TOG
|
||||
#define KC_RMOD RGB_MOD
|
||||
#define KC_RHUI RGB_HUI
|
||||
#define KC_RHUD RGB_HUD
|
||||
#define KC_RSAI RGB_SAI
|
||||
#define KC_RSAD RGB_SAD
|
||||
#define KC_RVAI RGB_VAI
|
||||
#define KC_RVAD RGB_VAD
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
|
||||
TAB , Q , W , E , R , T , Y , U , I , O , P , DEL,BSPC,
|
||||
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
|
||||
ESC , A , S , D , F , G , H , J , K , L ,QUOT, SCLN ,
|
||||
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
|
||||
LSFT , Z , X , C , V , B , N , M ,COMM,DOT ,SLSH, PGUP ,
|
||||
//|-------`----`----`----`----`----|----`----`----`----`----`------|
|
||||
LCTL ,LALT, FN1, ,ENTER , SPACE , FN2 , HOME, END , PGDN
|
||||
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
|
||||
),
|
||||
|
||||
[_FN1] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
|
||||
GRV , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , , ,
|
||||
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
|
||||
DEL , F1 ,F2 , F3 , F4 , F5 , F6 ,MINS, EQL,LBRC,RBRC, BSLS ,
|
||||
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
|
||||
, F7 , F8 , F9 , F10, F11, F12, , , , UP , ,
|
||||
//|-------`----`----`----`----`----|----`----`----`----`----`------|
|
||||
, , , , , ,RGUI,LEFT ,DOWN ,RIGHT
|
||||
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
|
||||
),
|
||||
|
||||
[_FN2] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----|----+----+----+----+----+----+----.
|
||||
TILD,EXLM, AT ,HASH,DLR ,PERC,CIRC,AMPR,ASTR,LPRN,RPRN, , ,
|
||||
//|----`----`----`----`----`----|----`----`----`----`----`----`----|
|
||||
DEL ,RHUI,RSAI,RVAI, , , ,UNDS,PLUS,LCBR,RCBR, PIPE ,
|
||||
//|-----`----`----`----`----`----|----`----`----`----`----`--------|
|
||||
,RHUD,RSAD,RVAD, , ,VOLU,VOLD, , , UP , ,
|
||||
//|-------`----`----`----`----`----|----`----`----`----`----`------|
|
||||
,RTOG,RMOD , , , , , LEFT, DOWN, RIGHT
|
||||
//`-----+----+-----+-------------|--------+-----+-----+-----+------'
|
||||
)
|
||||
|
||||
};
|
3
keyboards/fourier/keymaps/valgrahf/rules.mk
Normal file
3
keyboards/fourier/keymaps/valgrahf/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
47
keyboards/gh60/keymaps/maartenwut/keymap.c
Executable file
47
keyboards/gh60/keymaps/maartenwut/keymap.c
Executable file
@@ -0,0 +1,47 @@
|
||||
#include "gh60.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
#define _MA 0
|
||||
#define _GA 1
|
||||
#define _FL 2
|
||||
#define _AR 3
|
||||
|
||||
#define TRNS KC_TRNS
|
||||
#define trigger_time 400
|
||||
|
||||
#define LSHIFT OSM(MOD_LSFT)
|
||||
#define SPACE LT(_AR, KC_SPC)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Main Layer
|
||||
[_MA] = KEYMAP_HHKB(
|
||||
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_BSPC, KC_NO,
|
||||
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_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,
|
||||
LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_NO, KC_RALT, MO(_FL), KC_RCTRL),
|
||||
|
||||
//Function Layer
|
||||
[_FL] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_NO,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PSCR,
|
||||
TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_MPLY,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
||||
|
||||
//Arrow keys layer (space bar)
|
||||
[_AR] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, TRNS, KC_NO,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_PGUP, KC_UP, KC_PGDN, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_RGHT, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
||||
//Game layer (fn + g)
|
||||
[_GA] = KEYMAP_HHKB(
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_NO,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS),
|
||||
|
||||
};
|
@@ -4,15 +4,17 @@ This keymap is only for 5 rows Helix keyboard.
|
||||
|
||||
## Layout
|
||||
|
||||

|
||||

|
||||
|
||||
## Layer
|
||||
|
||||
|Priority|Number|Name|Discription|
|
||||
| ---- | ---- | --- | --- |
|
||||
|high|16|Adjust| keyboard local functions|
|
||||
||4|Extra char| some charactors |
|
||||
||3|Function| function keys |
|
||||
|high|9|Adjust| keyboard local functions (violet)|
|
||||
||8|KFunction| TenkeyPad function keys (bule)|
|
||||
||7|Extra char| some charactors (red)|
|
||||
||6|Function| function keys (blue)|
|
||||
||2|Keypad|TenkeyPad|
|
||||
||2|Dvorak|Dvorak|
|
||||
||1|Colemak|Colemak|
|
||||
|low|0|Qwerty|QWERTY (base)|
|
||||
@@ -23,7 +25,9 @@ Adjust Layer has keyboard local function keys.
|
||||
|
||||
* LED control.
|
||||
* Mac/Win mode change.
|
||||
* Qwerty/Colemak/Dvorak change.
|
||||
* Qwerty/Colemak/Dvorak/TenkeyPad change.
|
||||
|
||||

|
||||
|
||||
### Mac mode and Win mode
|
||||
|
||||
@@ -32,42 +36,49 @@ Mac mode swap Alt/Win(GUI) key.
|
||||
|mode|key|code|
|
||||
| ---- | ---- | --- |
|
||||
|Mac mode|Adjust + g(Qwerty)|AG_NORM|
|
||||
|Win mode|Adjust + h(Qwerty)|AG_SWAP|
|
||||
| |Adjust + t(Qwerty)| |
|
||||
| |Adjust + h(Qwerty)| |
|
||||
|Win mode|Adjust + t(Qwerty)|AG_SWAP|
|
||||
| |Adjust + y(Qwerty)| |
|
||||
|
||||
### LED control
|
||||
|
||||
|command|key|code|
|
||||
| ---- | ---- | --- |
|
||||
|on/off|Adjust + ,(Qwerty)|RGB_TOG|
|
||||
| |Adjust + v(Qwerty)| |
|
||||
|change mode|Adjust + Right option |RGB_SMOD|
|
||||
| |Adjust + c(Qwerty)| |
|
||||
|HUE +|Adjust + .(Qwerty) |RGB_HUI|
|
||||
| |Adjust + Left Control| |
|
||||
|HUE -|Adjust + menu |RGB_HUD|
|
||||
| |Adjust + Left Shift | |
|
||||
|SAT +|Adjust + /(Qwerty) |RGB_SAI|
|
||||
|on/off|Adjust + e(Qwerty)|RGB_TOG|
|
||||
| |Adjust + i(Qwerty)| |
|
||||
|change mode|Adjust + d(Qwerty) |RGB_SMOD|
|
||||
| |Adjust + k(Qwerty)| |
|
||||
|HUE +|Adjust + Left Control|RGB_HUI|
|
||||
| |Adjust + Right Control| |
|
||||
|HUE -|Adjust + Left Shift |RGB_HUD|
|
||||
| |Adjust + Right Shift | |
|
||||
|SAT +|Adjust + ;(Qwerty) |RGB_SAI|
|
||||
| |Adjust + a(Qwerty) | |
|
||||
|SAT -|Adjust + right hand left side Fn|RGB_SAD|
|
||||
| |Adjust + z(Qwerty) | |
|
||||
|Bright +|Adjust + Right Shift |RGB_VAI|
|
||||
| |Adjust + s(Qwerty)| |
|
||||
|Bright -|Adjust + right hand right side Fn|RGB_VAD|
|
||||
| |Adjust + x(Qwerty) | |
|
||||
|reset|Adjust + w(Qwerty)|RGBRST|
|
||||
|SAT -|Adjust + z(Qwerty) |RGB_SAD|
|
||||
| |Adjust + /(Qwerty) | |
|
||||
|Bright +|Adjust + s(Qwerty) |RGB_VAI|
|
||||
| |Adjust + l(Qwerty) | |
|
||||
|Bright -|Adjust + x(Qwerty) |RGB_VAD|
|
||||
| |Adjust + >(Qwerty) | |
|
||||
|reset|Adjust + w|RGBRST|
|
||||
|
||||
### Qwerty, Colemak, Dvorak selection
|
||||
### Qwerty, Colemak, Dvorak, TenkeyPad selection
|
||||
|
||||
|char layout|key|
|
||||
| ---- | ---- |
|
||||
|Qwerty | Adjust + j(Qwerty) |
|
||||
| | Adjust + 5|
|
||||
|Calemak| Adjust + k(Qwerty) |
|
||||
| | Adjust + 4|
|
||||
|Dvorak | Adjust + l(Qwerty) |
|
||||
| | Adjust + 3|
|
||||
|Qwerty | Adjust + 5 |
|
||||
| | Adjust + 6 |
|
||||
|Calemak| Adjust + 4 |
|
||||
| | Adjust + 7 |
|
||||
|Dvorak | Adjust + 3 |
|
||||
| | Adjust + 8 |
|
||||
|Keypad | Adjust + 2 |
|
||||
| | Adjust + 9 |
|
||||
|
||||
## TenkeyPad layout
|
||||
|
||||

|
||||
|
||||
## Note
|
||||
|
||||

|
||||

|
||||
|
@@ -7,33 +7,38 @@
|
||||
## キー配置
|
||||
以下に、Qwerty配列時の、文字配列の図を示します。
|
||||
|
||||

|
||||

|
||||
|
||||
## レイヤー
|
||||
|
||||
|優先順位|番号|名称|内容|
|
||||
| ---- | ---- | --- | --- |
|
||||
|高い|16|Adjust|機能キー(紫)|
|
||||
||4|Extra char|記号類(赤)|
|
||||
||3|Function|ファンクションキー類(青)|
|
||||
|高い|9|Adjust|機能キー(紫)|
|
||||
||8|KFunction|テンキーパッド用ファンクションキー類(青)|
|
||||
||7|Extra char|記号類(赤)|
|
||||
||6|Function|ファンクションキー類(青)|
|
||||
||3|Keypad|テンキーパッド配列|
|
||||
||2|Dvorak|Dvorak配列|
|
||||
||1|Colemak|Colemak配列|
|
||||
|低い|0|Qwerty|QWERTY配列(ベース)|
|
||||
|
||||
Qwerty/Colemak/Dvorak の各レイヤーは、後述する、Ajuest キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
|
||||
Qwerty/Colemak/Dvorak/Keypad の各レイヤーは、後述する、Ajuestレイヤーの キーによる選択で、いずれか一つだけが有効になり、標準のキーマップとなります。
|
||||
|
||||
Adjust レイヤーは、Adjust キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
|
||||
Function レイヤーは、下段両端の4つのFnキーのどれかひとつを押している間だけ有効になり、矢印キー等のナビゲーションキーや F1, F2, ...F12キーなどが配置されています。
|
||||
上の図の青色の刻印のキーのあるレイヤーです。
|
||||
|
||||
Function レイヤーは、Fn キーを押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
|
||||
Extra レイヤーは、下段中央部の Enter キーか BS キーを一定時間(0.2秒)以上押していると押している間だけ有効になり、'+=-_[]{}' の 8つの記号と「英数」キー、「かな」キーが配置されています。
|
||||
このため、Enter/BS キーで Enter/BS を入力するには、Enter/BSキーを押して短時間ですぐ離してください。
|
||||
上の図の赤色の刻印のキーのあるレイヤーです。
|
||||
|
||||
Extra レイヤーは、Enter キーを一定時間(0.1秒)以上押していると押している間だけ有効になり、標準のキーマップの上にかぶさるように一部のキーが置き換わります。
|
||||
このため、Enterキーで Enter を入力するには、Enterキーを押して短時間ですぐ離してください。
|
||||
Adjust レイヤーは、Adjust キーを押している間有効になります。
|
||||
Adjust キーは Function レイヤーに有り、下段両端の4つのFnキーのどれか一つを押しながら、下段中央部の Enter キーか BS キーを押すことで Adjust レイヤーが有効になります。
|
||||
Adjust キー (Enter/BS)を押した後は、Fnキーは離して構いません。
|
||||
|
||||
### Adjust レイヤー
|
||||
Ajust レイヤーは、Helix の標準キーマップ "default" から F1,F2..F12 を除き、右側にあった機能キーを
|
||||
左側にも追加したものとなっています。
|
||||
Ajust レイヤーは、LEDのコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列, TenkeyPad配列の切り替えが行えます。
|
||||
|
||||
LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak配列, Dvorak配列の切り替えが行えます。
|
||||

|
||||
|
||||
### MacモードとWinモード
|
||||
キーボードには、Mac モードと、Win モードの二つのモードがあります。
|
||||
@@ -44,12 +49,13 @@ LEDコントロール、Mac/Win モードの切り替え、Qwerty配列, Colemak
|
||||
|コマンド|指定キー|コード|
|
||||
| ---- | ---- | --- |
|
||||
|Macモード|Adjust + g(Qwerty)|AG_NORM|
|
||||
|Winモード|Adjust + h(Qwerty)|AG_SWAP|
|
||||
| |Adjust + t(Qwerty)| |
|
||||
| |Adjust + h(Qwerty)| |
|
||||
|Winモード|Adjust + t(Qwerty)|AG_SWAP|
|
||||
| |Adjust + y(Qwerty)| |
|
||||
|
||||
Mac モードと Win モードでは、AltキーとWin(GUI)キーが入れ替わります。
|
||||
|
||||
Mac モードでは、上の配列図の「英数キー」と「かなキー」で英語モードと日本語モードの切り替えができます。。
|
||||
Mac モードでは、Extra レイヤー の「英数」キーと「かな」キーで英語モードと日本語モードの切り替えができます。
|
||||
|
||||
Winモードでは、該当のキーはどちらも共に Alt + `(日本語IMEの切り替え)として入力されます。
|
||||
|
||||
@@ -60,35 +66,48 @@ Winモードでは、該当のキーはどちらも共に Alt + `(日本語IME
|
||||
|
||||
|コマンド|指定キー|コード|
|
||||
| ---- | ---- | --- |
|
||||
|オン/オフ|Adjust + ,(Qwerty)|RGB_TOG|
|
||||
| |Adjust + v(Qwerty)| |
|
||||
|モード切り替え|Adjust + Right option |RGB_SMOD|
|
||||
| |Adjust + c(Qwerty)| |
|
||||
|色相 +|Adjust + .(Qwerty)|RGB_HUI|
|
||||
| |Adjust + Left Control| |
|
||||
|色相 -|Adjust + menu|RGB_HUD|
|
||||
| |Adjust + Left Shift | |
|
||||
|彩度 +|Adjust + /(Qwerty) |RGB_SAI|
|
||||
|オン/オフ|Adjust + e(Qwerty)|RGB_TOG|
|
||||
| |Adjust + i(Qwerty)| |
|
||||
|モード切り替え|Adjust + d(Qwerty) |RGB_SMOD|
|
||||
| |Adjust + k(Qwerty)| |
|
||||
|色相 +|Adjust + Left Control|RGB_HUI|
|
||||
| |Adjust + Right Control| |
|
||||
|色相 -|Adjust + Left Shift |RGB_HUD|
|
||||
| |Adjust + Right Shift | |
|
||||
|彩度 +|Adjust + ;(Qwerty) |RGB_SAI|
|
||||
| |Adjust + a(Qwerty) | |
|
||||
|彩度 -|Adjust + 右手Fnの左側|RGB_SAD|
|
||||
| |Adjust + z(Qwerty) | |
|
||||
|明度 +|Adjust + Right Shift|RGB_VAI|
|
||||
| |Adjust + s(Qwerty) | |
|
||||
|明度 -|Adjust + 右手Fnの右側|RGB_VAD|
|
||||
| |Adjust + x(Qwerty) | |
|
||||
|彩度 -|Adjust + z(Qwerty) |RGB_SAD|
|
||||
| |Adjust + /(Qwerty) | |
|
||||
|明度 +|Adjust + s(Qwerty) |RGB_VAI|
|
||||
| |Adjust + l(Qwerty) | |
|
||||
|明度 -|Adjust + x(Qwerty) |RGB_VAD|
|
||||
| |Adjust + >(Qwerty) | |
|
||||
|リセット|Adjust + w|RGBRST|
|
||||
|
||||
### 文字配列選択
|
||||
Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキーを使います。
|
||||
Qwerty, Colemak, Dvorak, Keypad それぞれの文字配列の選択は以下のキーを使います。
|
||||
|
||||
|選択配列|指定キー|
|
||||
| ---- | ---- |
|
||||
|Qwerty | Adjust + j(Qwerty) |
|
||||
| | Adjust + 5|
|
||||
|Calemak| Adjust + k(Qwerty) |
|
||||
| | Adjust + 4|
|
||||
|Dvorak | Adjust + l(Qwerty) |
|
||||
| | Adjust + 3|
|
||||
|Qwerty | Adjust + 5 |
|
||||
| | Adjust + 6 |
|
||||
|Calemak| Adjust + 4 |
|
||||
| | Adjust + 7 |
|
||||
|Dvorak | Adjust + 3 |
|
||||
| | Adjust + 8 |
|
||||
|Keypad | Adjust + 2 |
|
||||
| | Adjust + 9 |
|
||||
|
||||
## テンキーパッドのキー配置
|
||||
以下に、テンキーパッド配列時の、文字配列の図を示します。
|
||||
|
||||

|
||||
|
||||
図でわかるように、テンキーと F1,F2..F12 のキー入力ができる配列です。
|
||||
F12キーは一定時間(0.2秒)以上押していると KFunc キーとして働き、押している間は、青色の刻印のキー入力を行えます。
|
||||
F12 そのものを入力するときは押して短時間ですぐ離してください。
|
||||
F12キーを押しているときは、F11キー は Adjust キーとなり、Adjust レイヤーが有効になります。
|
||||
これによって、Qwerty 配列などに戻すことが可能になります。
|
||||
|
||||
## 備考
|
||||
本キーマップは、通常のキーボードの主要部分のホームポジション周辺をなるべくそのまま踏襲する方針で作成しました。
|
||||
@@ -99,4 +118,4 @@ Qwerty, Colemak, Dvorak それぞれの文字配列の選択は以下のキー
|
||||
* Control キーを左右共にホームポジションの行に移動。
|
||||
* 左手親指に BackSpace キーを割り当てる。
|
||||
|
||||

|
||||

|
||||
|
@@ -78,30 +78,45 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLED_NUM 6
|
||||
#endif
|
||||
|
||||
#if RGBLED_NUM <= 6
|
||||
#define RGBLIGHT_LIMIT_VAL 255
|
||||
#else
|
||||
#if HELIX_ROWS == 5
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#ifndef IOS_DEVICE_ENABLE
|
||||
#if RGBLED_NUM <= 6
|
||||
#define RGBLIGHT_LIMIT_VAL 255
|
||||
#else
|
||||
#define RGBLIGHT_LIMIT_VAL 130
|
||||
#if HELIX_ROWS == 5
|
||||
#define RGBLIGHT_LIMIT_VAL 120
|
||||
#else
|
||||
#define RGBLIGHT_LIMIT_VAL 130
|
||||
#endif
|
||||
#endif
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#else
|
||||
#if RGBLED_NUM <= 6
|
||||
#define RGBLIGHT_LIMIT_VAL 90
|
||||
#else
|
||||
#if HELIX_ROWS == 5
|
||||
#define RGBLIGHT_LIMIT_VAL 35
|
||||
#else
|
||||
#define RGBLIGHT_LIMIT_VAL 45
|
||||
#endif
|
||||
#endif
|
||||
#define RGBLIGHT_VAL_STEP 4
|
||||
#endif
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
|
||||
#if defined(RGBLIGHT_ENABLE) && !defined(IOS_DEVICE_ENABLE)
|
||||
// USB_MAX_POWER_CONSUMPTION value for Helix keyboard
|
||||
// 120 RGBoff, OLEDoff
|
||||
// 120 OLED
|
||||
// 330 RGB 6
|
||||
// 300 RGB 32
|
||||
// 310 OLED & RGB 32
|
||||
#define USB_MAX_POWER_CONSUMPTION 330
|
||||
#define USB_MAX_POWER_CONSUMPTION 400
|
||||
#else
|
||||
// fix iPhone and iPad power adapter issue
|
||||
// iOS device need lessthan 100
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_USER_H */
|
||||
|
@@ -27,23 +27,27 @@ extern uint8_t is_master;
|
||||
// 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.
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _ADJUST 16
|
||||
enum layer_number {
|
||||
_QWERTY = 0,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_KEYPAD,
|
||||
_AUX,
|
||||
_KAUX,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_PADFUNC,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
LOWER,
|
||||
RAISE,
|
||||
ADJUST,
|
||||
BACKLIT,
|
||||
KEYPAD,
|
||||
EISU,
|
||||
KANA,
|
||||
ZERO2,
|
||||
RGBRST
|
||||
};
|
||||
|
||||
@@ -63,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | BS |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
@@ -71,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | ` | ' | N | M | , | . | / | Shift|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP( \
|
||||
@@ -79,8 +83,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, \
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RCTL, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_BSPC, LT(_RAISE,KC_ENT), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
|
||||
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
@@ -93,7 +97,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | ` | ' | K | M | , | . | / | Shift|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = KEYMAP( \
|
||||
@@ -101,8 +105,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, \
|
||||
KC_LCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_RCTL, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_QUOT, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
|
||||
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
|
||||
),
|
||||
|
||||
/* Dvorak
|
||||
@@ -115,7 +119,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | ` | / | B | M | W | V | Z | Shift|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Adjust| Lower| Caps | GUI | Alt | Del | Enter| Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* |Lower | Lower| Caps | GUI | Alt | Space| BS | Enter| Space| Alt | GUI | Menu |Lower |Lower |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = KEYMAP( \
|
||||
@@ -123,10 +127,75 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS, \
|
||||
KC_LCTL, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_RCTL, \
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_GRV, KC_SLSH, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, \
|
||||
ADJUST, LOWER, KC_CAPS, KC_LALT, KC_LGUI, KC_DEL, LT(_RAISE,KC_ENT), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP, LOWER, LOWER \
|
||||
MO(_LOWER),MO(_LOWER), KC_CAPS, KC_LALT, KC_LGUI, KC_SPC, LT(_RAISE,KC_BSPC), \
|
||||
LT(_RAISE,KC_ENT), KC_SPC, KC_RGUI, KC_RALT, KC_APP,MO(_LOWER),MO(_LOWER) \
|
||||
),
|
||||
|
||||
/* Keypad
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | Tab | / | * | Del | F1 | F6 | | F1 | F6 | Del | Tab | / | * |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 7 | 8 | 9 | BS | F2 | F7 | | F2 | F7 | BS | 7 | 8 | 9 |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | 4 | 5 | 6 | - | F3 | F8 | | F3 | F8 | - | 4 | 5 | 6 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | 1 | 2 | 3 | + | F4 | F9 | F11 | F11 | F4 | F9 | + | 1 | 2 | 3 |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | 0 | , | . | Enter| F5 | F10 | F12 | F12 | F5 | F10 | Enter| 0 | , | . |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_KEYPAD] = KEYMAP( \
|
||||
KC_TAB, KC_PSLS, KC_PAST, KC_DEL, KC_F1, KC_F6, KC_F1, KC_F6, KC_DEL, KC_TAB, KC_PSLS, KC_PAST, \
|
||||
KC_KP_7, KC_KP_8, KC_KP_9, KC_BSPC, KC_F2, KC_F7, KC_F2, KC_F7, KC_BSPC, KC_KP_7, KC_KP_8, KC_KP_9, \
|
||||
KC_KP_4, KC_KP_5, KC_KP_6, KC_PMNS, KC_F3, KC_F8, KC_F3, KC_F8, KC_PMNS, KC_KP_4, KC_KP_5, KC_KP_6, \
|
||||
KC_KP_1, KC_KP_2, KC_KP_3, KC_PPLS, KC_F4, KC_F9, KC_F11, KC_F11, KC_F4, KC_F9, KC_PPLS, KC_KP_1, KC_KP_2, KC_KP_3, \
|
||||
KC_KP_0, KC_COMM, KC_PDOT, KC_PENT, KC_F5, KC_F10, LT(_PADFUNC,KC_F12),
|
||||
LT(_PADFUNC,KC_F12),KC_F5, KC_F10, KC_PENT, KC_KP_0, KC_COMM, KC_PDOT \
|
||||
),
|
||||
|
||||
/* AUX modifier key layer
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | 00 | | | | | | | | | | | 00 | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_KAUX] = KEYMAP( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, ZERO2, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, ZERO2, _______ \
|
||||
),
|
||||
|
||||
/* Keypad function layer
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | Pause| ScrLk| PtrSc| | PtrSc| ScrLk| Pause| | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | Home | Up | PgUp | | PgUp | Up | Home | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | |Delete|Insert| Left | Down | Right| | Left | Down | Right|Insert|Delete| |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | End | | PgDn |Adjust|Adjust| PgDn | | End | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_PADFUNC] = KEYMAP( \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_PSCR, KC_PSCR, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_PGUP, KC_PGUP, KC_UP, KC_HOME, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, KC_DEL, KC_INS, KC_LEFT, KC_DOWN, KC_RGHT, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_DEL, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, KC_END, XXXXXXX, KC_PGDN,MO(_ADJUST),
|
||||
MO(_ADJUST), KC_PGDN, XXXXXXX, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
@@ -135,7 +204,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | PgUp | | Up |Delete| Home | | Home |Delete| Up | | PgUp | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | PgDn | Left | Down | Right| End | | | End | Left | Down | Right| PgDn | |
|
||||
* | | PgDn | Left | Down | Right| End |Adjust|Adjust| End | Left | Down | Right| PgDn | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | PrtSc| | | | | | | | | PrtSc| | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
@@ -143,9 +212,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_LOWER] = KEYMAP( \
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, \
|
||||
XXXXXXX, XXXXXXX, KC_PAUS, KC_SLCK, KC_INS, XXXXXXX, XXXXXXX, KC_INS, KC_SLCK, KC_PAUS, XXXXXXX, KC_F12, \
|
||||
_______, KC_PGUP, XXXXXXX, KC_UP, KC_DEL, KC_HOME, KC_HOME, KC_DEL, KC_UP, XXXXXXX, KC_PGUP, _______, \
|
||||
_______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, \
|
||||
XXXXXXX, _______, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______ \
|
||||
_______, KC_HOME, XXXXXXX, KC_UP, KC_DEL, KC_PGUP, KC_PGUP, KC_DEL, KC_UP, XXXXXXX, KC_HOME, _______, \
|
||||
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX,KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, \
|
||||
_______, _______, KC_PSCR, _______, _______, _______, MO(_ADJUST),
|
||||
MO(_ADJUST), _______, _______, _______, KC_PSCR, _______, _______ \
|
||||
),
|
||||
|
||||
/* Raise
|
||||
@@ -166,28 +236,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_MINS), KC_MINS, KC_EQL, LSFT(KC_EQL), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), KC_LBRC, KC_RBRC, LSFT(KC_RBRC), XXXXXXX, XXXXXXX, XXXXXXX, _______, \
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, EISU, EISU, KANA, KANA, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, \
|
||||
_______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______, XXXXXXX, _______, _______ \
|
||||
MO(_ADJUST),MO(_ADJUST),XXXXXXX, _______, _______, XXXXXXX, _______,
|
||||
_______, XXXXXXX, _______, _______, XXXXXXX,MO(_ADJUST),MO(_ADJUST) \
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | |Dvorak|Colemk|Qwerty| | | | | | | |
|
||||
* | | |Keypad|Dvorak|Colemk|Qwerty| |Qwerty|Colemk|Dvorak|Keypad| | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | Reset|RGBRST| | | Win | | | | | | | |
|
||||
* | | Reset|RGBRST|RGB ON|Aud on| Win | | Win |Aud on|RGB ON|RGBRST| | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | HUE+ | SAT+ | VAL+ |Aud on|Audoff| Mac | | Win |Qwerty|Colemk|Dvorak| | |
|
||||
* | HUE+ | SAT+ | VAL+ |RGB md|Audoff| Mac | | Mac |Audoff|RGB md| VAL+ | SAT+ | HUE+ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | HUE- | SAT- | VAL- |RGB md|RGB ON| | | | | |RGB ON| HUE+ | SAT+ | VAL+ |
|
||||
* | HUE- | SAT- | VAL- | | | | | | | | | VAL- | SAT- | HUE- |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | MODE | HUE- | SAT- | VAL- |
|
||||
* | | | | | | | | | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP( \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, DVORAK, COLEMAK, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, RESET, RGBRST, XXXXXXX, XXXXXXX, AG_SWAP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
RGB_HUI, RGB_SAI, RGB_VAI, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, XXXXXXX, XXXXXXX, \
|
||||
RGB_HUD, RGB_SAD, RGB_VAD,RGB_SMOD, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, \
|
||||
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, RGB_SMOD,RGB_HUD, RGB_SAD, RGB_VAD \
|
||||
XXXXXXX, XXXXXXX, KEYPAD, DVORAK, COLEMAK, QWERTY, QWERTY, COLEMAK, DVORAK, KEYPAD, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, RESET, RGBRST, RGB_TOG, AU_ON, AG_SWAP, AG_SWAP, AU_ON, RGB_TOG, RGBRST, XXXXXXX, XXXXXXX, \
|
||||
RGB_HUI, RGB_SAI, RGB_VAI,RGB_SMOD, AU_OFF, AG_NORM, AG_NORM, AU_OFF,RGB_SMOD, RGB_VAI, RGB_SAI, RGB_HUI, \
|
||||
RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, RGB_VAD, RGB_SAD, RGB_HUD, \
|
||||
_______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______ \
|
||||
),
|
||||
|
||||
/* AUX modifier key layer
|
||||
* ,-----------------------------------------. ,-----------------------------------------.
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------| |------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | BS | Enter| | | | | | | |
|
||||
* `-------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_AUX] = KEYMAP( \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, KC_BSPC, LT(_RAISE,KC_ENT), \
|
||||
_______, _______, _______, _______, _______, _______, _______ \
|
||||
)
|
||||
};
|
||||
|
||||
@@ -206,31 +299,32 @@ float tone_plover_gb[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
#endif
|
||||
|
||||
// define variables for reactive RGB
|
||||
bool TOG_STATUS = false;
|
||||
int RGB_current_mode;
|
||||
static uint32_t current_default_layer_state;
|
||||
static int current_default_layer;
|
||||
|
||||
uint32_t default_layer_state_set_kb(uint32_t state) {
|
||||
current_default_layer_state = state;
|
||||
// 1<<_QWERTY - 1 == 1 - 1 == _QWERTY (=0)
|
||||
// 1<<_COLEMAK - 1 == 2 - 1 == _COLEMAK (=1)
|
||||
current_default_layer = state - 1;
|
||||
// 1<<_DVORAK - 2 == 4 - 2 == _DVORAK (=2)
|
||||
if ( current_default_layer == 3 ) current_default_layer -= 1;
|
||||
// 1<<_KEYPAD - 5 == 8 - 5 == _KEYPAD (=3)
|
||||
if ( current_default_layer == 7 ) current_default_layer -= 4;
|
||||
return state;
|
||||
}
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
// Setting ADJUST layer RGB back to default
|
||||
void update_tri_layer_RGB(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
|
||||
if (IS_LAYER_ON(layer1) && IS_LAYER_ON(layer2)) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//rgblight_mode(RGB_current_mode);
|
||||
#endif
|
||||
layer_on(layer3);
|
||||
} else {
|
||||
layer_off(layer3);
|
||||
}
|
||||
void update_base_layer(int base)
|
||||
{
|
||||
if( current_default_layer != base ) {
|
||||
eeconfig_update_default_layer(1UL<<base);
|
||||
default_layer_set(1UL<<base);
|
||||
layer_off(_AUX);
|
||||
layer_off(_KAUX);
|
||||
} else {
|
||||
if( base < _KEYPAD )
|
||||
layer_invert(_AUX);
|
||||
else
|
||||
layer_invert(_KAUX);
|
||||
}
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
@@ -240,7 +334,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
update_base_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
@@ -249,7 +343,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_colemak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_COLEMAK);
|
||||
update_base_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
@@ -258,75 +352,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_DVORAK);
|
||||
update_base_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
case KEYPAD:
|
||||
if (record->event.pressed) {
|
||||
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
||||
//uses another variable that would be set to true after the first time a reactive key is pressed.
|
||||
if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
||||
} else {
|
||||
TOG_STATUS = !TOG_STATUS;
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//rgblight_mode(16);
|
||||
#endif
|
||||
}
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_dvorak);
|
||||
#endif
|
||||
TOG_STATUS = false;
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
|
||||
update_base_layer(_KEYPAD);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
case ZERO2:
|
||||
if (record->event.pressed) {
|
||||
//not sure how to have keyboard check mode and set it to a variable, so my work around
|
||||
//uses another variable that would be set to true after the first time a reactive key is pressed.
|
||||
if (TOG_STATUS) { //TOG_STATUS checks is another reactive key currently pressed, only changes RGB mode if returns false
|
||||
} else {
|
||||
TOG_STATUS = !TOG_STATUS;
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//rgblight_mode(15);
|
||||
#endif
|
||||
}
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//rgblight_mode(RGB_current_mode); // revert RGB to initial mode prior to RGB mode change
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
TOG_STATUS = false;
|
||||
update_tri_layer_RGB(_LOWER, _RAISE, _ADJUST);
|
||||
SEND_STRING("00");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ADJUST:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
//led operations - RGB mode change now updates the RGB_current_mode to allow the right RGB mode to be set after reactive keys are released
|
||||
case RGB_MOD:
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
if (record->event.pressed) {
|
||||
rgblight_mode(RGB_current_mode);
|
||||
rgblight_step();
|
||||
RGB_current_mode = rgblight_config.mode;
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
break;
|
||||
case EISU:
|
||||
if (record->event.pressed) {
|
||||
if(keymap_config.swap_lalt_lgui==false){
|
||||
@@ -356,7 +400,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
eeconfig_update_rgblight_default();
|
||||
rgblight_enable();
|
||||
RGB_current_mode = rgblight_config.mode;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@@ -368,9 +411,6 @@ void matrix_init_user(void) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
startup_user();
|
||||
#endif
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
RGB_current_mode = rgblight_config.mode;
|
||||
#endif
|
||||
//SSD1306 OLED init, make sure to add #define SSD1306OLED in config.h
|
||||
#ifdef SSD1306OLED
|
||||
TWI_Init(TWI_BIT_PRESCALE_1, TWI_BITLENGTH_FROM_FREQ(1, 800000));
|
||||
@@ -428,36 +468,45 @@ static void render_logo(struct CharacterMatrix *matrix) {
|
||||
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
|
||||
0};
|
||||
matrix_write(matrix, logo);
|
||||
#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_ANIMATIONS)
|
||||
char buf[30];
|
||||
if(rgblight_config.enable) {
|
||||
snprintf(buf, sizeof(buf), " LED %2d: %d,%d,%d ",
|
||||
rgblight_config.mode,
|
||||
rgblight_config.hue/RGBLIGHT_HUE_STEP,
|
||||
rgblight_config.sat/RGBLIGHT_SAT_STEP,
|
||||
rgblight_config.val/RGBLIGHT_VAL_STEP);
|
||||
matrix_write(matrix, buf);
|
||||
}
|
||||
#endif
|
||||
//matrix_write_P(&matrix, PSTR(" Split keyboard kit"));
|
||||
}
|
||||
|
||||
// #define DEBUG_OLED_LAYER_DISPLAY
|
||||
|
||||
static const char Qwerty_name[] PROGMEM = " Qwerty";
|
||||
static const char Colemak_name[] PROGMEM = " Colemak";
|
||||
static const char Dvorak_name[] PROGMEM = " Dvorak";
|
||||
static const char Keypad_name[] PROGMEM = " Keypad";
|
||||
|
||||
static const char Raise_name[] PROGMEM = ":Extra";
|
||||
static const char AUX_name[] PROGMEM = ":AUX";
|
||||
static const char KAUX_name[] PROGMEM = ":00";
|
||||
static const char Padfunc_name[] PROGMEM = ":PadFunc";
|
||||
static const char Lower_name[] PROGMEM = ":Func";
|
||||
static const char Raise_name[] PROGMEM = ":Extra";
|
||||
static const char Adjust_name[] PROGMEM = ":Adjust";
|
||||
|
||||
static const char *layer_names[] = {
|
||||
[_QWERTY] = Qwerty_name,
|
||||
[_COLEMAK] = Colemak_name,
|
||||
[_DVORAK] = Dvorak_name,
|
||||
[_RAISE] = Raise_name,
|
||||
[_LOWER] = Lower_name,
|
||||
[_KEYPAD] = Keypad_name,
|
||||
[_AUX] = AUX_name,
|
||||
[_KAUX] = KAUX_name,
|
||||
[_LOWER] = Lower_name,
|
||||
[_RAISE] = Raise_name,
|
||||
[_PADFUNC]= Padfunc_name,
|
||||
[_ADJUST] = Adjust_name
|
||||
};
|
||||
|
||||
static int search_bit_form_lsb(uint32_t data)
|
||||
{
|
||||
int i;
|
||||
for( i = 0; i < 32 && (data & 1)==0 ; data >>= 1, i++ )
|
||||
{}
|
||||
return i;
|
||||
}
|
||||
|
||||
void render_status(struct CharacterMatrix *matrix) {
|
||||
|
||||
// Render to mode icon
|
||||
@@ -473,21 +522,9 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||
}
|
||||
|
||||
// Define layers here, Have not worked out how to have text displayed for each layer. Copy down the number you see and add a case for it below
|
||||
#ifdef DEBUG_OLED_LAYER_DISPLAY
|
||||
char buf[40];
|
||||
#endif
|
||||
int name_num;
|
||||
uint32_t lstate;
|
||||
|
||||
name_num = search_bit_form_lsb(current_default_layer_state);
|
||||
if( name_num < sizeof(layer_names)/sizeof(char *) ) {
|
||||
matrix_write_P(matrix, layer_names[name_num]);
|
||||
#ifdef DEBUG_OLED_LAYER_DISPLAY
|
||||
} else {
|
||||
snprintf(buf, sizeof(buf), "base=%d? ", name_num);
|
||||
matrix_write(matrix, buf);
|
||||
#endif
|
||||
}
|
||||
matrix_write_P(matrix, layer_names[current_default_layer]);
|
||||
matrix_write_P(matrix, PSTR("\n"));
|
||||
for( lstate = layer_state, name_num = 0;
|
||||
lstate && name_num < sizeof(layer_names)/sizeof(char *);
|
||||
@@ -495,11 +532,6 @@ void render_status(struct CharacterMatrix *matrix) {
|
||||
if( (lstate & 1) != 0 ) {
|
||||
if( layer_names[name_num] ) {
|
||||
matrix_write_P(matrix, layer_names[name_num]);
|
||||
#ifdef DEBUG_OLED_LAYER_DISPLAY
|
||||
} else {
|
||||
snprintf(buf, sizeof(buf), ":L=%d?", name_num);
|
||||
matrix_write(matrix, buf);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -23,19 +23,50 @@ define HELIX_CUSTOMISE_MSG
|
||||
$(info - LED_BACK_ENABLE=$(LED_BACK_ENABLE))
|
||||
$(info - LED_UNDERGLOW_ENABLE=$(LED_UNDERGLOW_ENABLE))
|
||||
$(info - LED_ANIMATION=$(LED_ANIMATIONS))
|
||||
$(info - IOS_DEVICE_ENABLE=$(IOS_DEVICE_ENABLE))
|
||||
endef
|
||||
|
||||
# Helix keyboard customize
|
||||
# you can edit follows 4 Variables
|
||||
# jp: 以下の4つの変数を必要に応じて編集します。
|
||||
# you can edit follows 5 Variables
|
||||
# jp: 以下の5つの変数を必要に応じて編集します。
|
||||
OLED_ENABLE = no # OLED_ENABLE
|
||||
LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
|
||||
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
|
||||
LED_ANIMATIONS = yes # LED animations
|
||||
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
|
||||
|
||||
#### LED_BACK_ENABLE and LED_UNDERGLOW_ENABLE.
|
||||
#### Do not enable these with audio at the same time.
|
||||
|
||||
### Helix keyboard 'five_rows' keymap: convenient command line option
|
||||
## make HELIX=<options> helix:five_rows
|
||||
## option= oled | back | under | na | ios
|
||||
## ex.
|
||||
## make HELIX=oled helix:five_rows
|
||||
## make HELIX=oled,back helix:five_rows
|
||||
## make HELIX=oled,under helix:five_rows
|
||||
## make HELIX=oled,back,na helix:five_rows
|
||||
## make HELIX=oled,back,ios helix:five_rows
|
||||
##
|
||||
ifneq ($(strip $(HELIX)),)
|
||||
ifeq ($(findstring oled,$(HELIX)), oled)
|
||||
OLED_ENABLE = yes
|
||||
endif
|
||||
ifeq ($(findstring back,$(HELIX)), back)
|
||||
LED_BACK_ENABLE = yes
|
||||
else ifeq ($(findstring under,$(HELIX)), under)
|
||||
LED_UNDERGLOW_ENABLE = yes
|
||||
endif
|
||||
ifeq ($(findstring na,$(HELIX)), na)
|
||||
LED_ANIMATIONS = no
|
||||
endif
|
||||
ifeq ($(findstring ios,$(HELIX)), ios)
|
||||
IOS_DEVICE_ENABLE = yes
|
||||
endif
|
||||
$(eval $(call HELIX_CUSTOMISE_MSG))
|
||||
$(info )
|
||||
endif
|
||||
|
||||
# Uncomment these for checking
|
||||
# jp: コンパイル時にカスタマイズの状態を表示したい時はコメントをはずします。
|
||||
# $(eval $(call HELIX_CUSTOMISE_MSG))
|
||||
@@ -54,6 +85,10 @@ else
|
||||
RGBLIGHT_ENABLE = no
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(IOS_DEVICE_ENABLE)), yes)
|
||||
OPT_DEFS += -DIOS_DEVICE_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_ANIMATIONS)), yes)
|
||||
OPT_DEFS += -DRGBLIGHT_ANIMATIONS
|
||||
endif
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
45
keyboards/iris/keymaps/davidrambo/config.h
Normal file
45
keyboards/iris/keymaps/davidrambo/config.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2017 Danny Nguyen <danny@keeb.io>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
/*
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
*/
|
||||
#define TAPPING_TERM 200
|
||||
#include "../../config.h"
|
||||
|
||||
#endif
|
158
keyboards/iris/keymaps/davidrambo/keymap.c
Normal file
158
keyboards/iris/keymaps/davidrambo/keymap.c
Normal file
@@ -0,0 +1,158 @@
|
||||
#include "iris.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
//keycode shorthands
|
||||
#define KC____ KC_TRNS
|
||||
#define KC_SYM MO(3)
|
||||
#define KC_MAC TO(0)
|
||||
#define KC_PC TO(1)
|
||||
#define KC_GM TO(2)
|
||||
#define KC_NAV LT(4, KC_TAB)
|
||||
#define KC_NAVPC LT(5, KC_TAB)
|
||||
|
||||
//text editor shortcuts for NAV and NAVPC
|
||||
#define KC_AL LALT(KC_LEFT)
|
||||
#define KC_AR LALT(KC_RGHT)
|
||||
#define KC_CL LCTL(KC_LEFT)
|
||||
#define KC_CR LCTL(KC_RGHT)
|
||||
#define KC_A_BS LALT(KC_BSPC)
|
||||
#define KC_C_BS LALT(KC_BSPC)
|
||||
|
||||
//internet browser tab shortcuts and window swapping for Mac and Windows
|
||||
#define KC_GSL LGUI(S(KC_LEFT))
|
||||
#define KC_GSR LGUI(S(KC_RGHT))
|
||||
#define KC_CPGD LCTL(KC_PGDN)
|
||||
#define KC_CPGU LCTL(KC_PGUP)
|
||||
|
||||
#define KC_CMBS GUI_T(KC_BSPC)
|
||||
#define KC_CTBS CTL_T(KC_BSPC)
|
||||
#define KC_C_TAB LCTL(KC_TAB)
|
||||
#define KC_G_TAB LGUI(KC_TAB)
|
||||
#define KC_A_TAB LALT(KC_TAB)
|
||||
|
||||
//layer shorthands
|
||||
#define _COLEMAK 0
|
||||
#define _PC 1
|
||||
#define _GAME 2
|
||||
#define _SYMBOL 3
|
||||
#define _NAV 4
|
||||
#define _NAVPC 5
|
||||
|
||||
enum {
|
||||
// SFT_LCK //tapdance declarations
|
||||
COLEMAK = 0,
|
||||
PC,
|
||||
GAME,
|
||||
SYMBOL,
|
||||
NAV, //Navigation layer for Mac Colemak
|
||||
NAVPC, //Navigation layer for PC Colemak
|
||||
SFT_LCK //tapdance declaration
|
||||
};
|
||||
|
||||
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_COLEMAK] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
|
||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
||||
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
|
||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
||||
LCTL,LGUI,CMBS, SPC, SYM, LALT
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_PC] = KC_KEYMAP(
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LGUI , LCTL , CTBS , ___ , ___ , ___
|
||||
),
|
||||
|
||||
[_GAME] = KC_KEYMAP(
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LALT , LALT , SPC, BSPC, MAC, ___
|
||||
),
|
||||
|
||||
[_SYMBOL] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
|
||||
|
||||
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
|
||||
|
||||
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , A_BS, ___, ___ , ___
|
||||
),
|
||||
|
||||
[_NAV] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___
|
||||
),
|
||||
|
||||
[_NAVPC] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
// Shift vs. capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
|
||||
};
|
3
keyboards/iris/keymaps/davidrambo/readme.md
Normal file
3
keyboards/iris/keymaps/davidrambo/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
|
||||
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
|
||||
# Two Navigation layers, for Mac and Windows Colemak layers respectively.
|
7
keyboards/iris/keymaps/davidrambo/rules.mk
Normal file
7
keyboards/iris/keymaps/davidrambo/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
RGBLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = no
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
45
keyboards/iris/keymaps/dnrambo/config.h
Normal file
45
keyboards/iris/keymaps/dnrambo/config.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
Copyright 2017 Danny Nguyen <danny@keeb.io>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
/*
|
||||
#undef RGBLED_NUM
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
*/
|
||||
#define TAPPING_TERM 200
|
||||
#include "../../config.h"
|
||||
|
||||
#endif
|
158
keyboards/iris/keymaps/dnrambo/keymap.c
Normal file
158
keyboards/iris/keymaps/dnrambo/keymap.c
Normal file
@@ -0,0 +1,158 @@
|
||||
#include "iris.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
//keycode shorthands
|
||||
#define KC____ KC_TRNS
|
||||
#define KC_SYM MO(3)
|
||||
#define KC_MAC TO(0)
|
||||
#define KC_PC TO(1)
|
||||
#define KC_GM TO(2)
|
||||
#define KC_NAV LT(4, KC_TAB)
|
||||
#define KC_NAVPC LT(5, KC_TAB)
|
||||
|
||||
//text editor shortcuts for NAV and NAVPC
|
||||
#define KC_AL LALT(KC_LEFT)
|
||||
#define KC_AR LALT(KC_RGHT)
|
||||
#define KC_CL LCTL(KC_LEFT)
|
||||
#define KC_CR LCTL(KC_RGHT)
|
||||
#define KC_A_BS LALT(KC_BSPC)
|
||||
#define KC_C_BS LALT(KC_BSPC)
|
||||
|
||||
//internet browser tab shortcuts and window swapping for Mac and Windows
|
||||
#define KC_GSL LGUI(S(KC_LEFT))
|
||||
#define KC_GSR LGUI(S(KC_RGHT))
|
||||
#define KC_CPGD LCTL(KC_PGDN)
|
||||
#define KC_CPGU LCTL(KC_PGUP)
|
||||
|
||||
#define KC_CMBS GUI_T(KC_BSPC)
|
||||
#define KC_CTBS CTL_T(KC_BSPC)
|
||||
#define KC_C_TAB LCTL(KC_TAB)
|
||||
#define KC_G_TAB LGUI(KC_TAB)
|
||||
#define KC_A_TAB LALT(KC_TAB)
|
||||
|
||||
//layer shorthands
|
||||
#define _COLEMAK 0
|
||||
#define _PC 1
|
||||
#define _GAME 2
|
||||
#define _SYMBOL 3
|
||||
#define _NAV 4
|
||||
#define _NAVPC 5
|
||||
|
||||
enum {
|
||||
// SFT_LCK //tapdance declarations
|
||||
COLEMAK = 0,
|
||||
PC,
|
||||
GAME,
|
||||
SYMBOL,
|
||||
NAV, //Navigation layer for Mac Colemak
|
||||
NAVPC, //Navigation layer for PC Colemak
|
||||
SFT_LCK //tapdance declaration
|
||||
};
|
||||
|
||||
#define KC_SFLK TD(SFT_LCK) // alias for tapdance
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_COLEMAK] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,MINS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
GRV , Q , W , F , P , G , J , L , U , Y ,SCLN,BSPC,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
NAV , A , R , S , T , D , H , N , E , I , O ,QUOT,
|
||||
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
|
||||
SFLK, Z , X , C , V , B , PC , ENT , K , M ,COMM, DOT,SLSH,RSFT,
|
||||
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
|
||||
LCTL,LGUI,CMBS, SPC, SYM, LALT
|
||||
// `----+----+----' `----+----+----'
|
||||
),
|
||||
|
||||
[_PC] = KC_KEYMAP(
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
NAVPC,___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , GM, ___, ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LGUI , LCTL , CTBS , ___ , ___ , ___
|
||||
),
|
||||
|
||||
[_GAME] = KC_KEYMAP(
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , T , Q , W , E , R , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
TAB , LSFT, A , S , D , F , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
I , LCTL, Z , X , C , V , M, P , ___, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LALT , LALT , SPC, BSPC, MAC, ___
|
||||
),
|
||||
|
||||
[_SYMBOL] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
LBRC, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , RBRC,
|
||||
|
||||
BSLS, EXLM, AT , HASH, DLR , PERC, CIRC, AMPR, ASTR, LPRN, RPRN, EQL ,
|
||||
|
||||
___ , HOME, END , VOLD, VOLU, MPLY,___, ___,___, MINS, ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , A_BS, ___, ___ , ___
|
||||
),
|
||||
|
||||
[_NAV] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, AL , UP , AR , DEL , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , GSL , LEFT, DOWN, RGHT, GSR , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,G_TAB, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___
|
||||
),
|
||||
|
||||
[_NAVPC] = KC_KEYMAP(
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , C_TAB, CL , UP , CR , DEL , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ , CPGU, LEFT, DOWN, RGHT, CPGD, ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___ ,___, ___,A_TAB, ___ , ___ , ___ , ___ , ___ ,
|
||||
|
||||
___ , ___ , ___ , ___ , ___ , ___
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
// Shift vs. capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end)
|
||||
};
|
3
keyboards/iris/keymaps/dnrambo/readme.md
Normal file
3
keyboards/iris/keymaps/dnrambo/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# Colemak layout for Iris rev2.1 with Mac and Windows layers and a Gaming Layer.
|
||||
# Symbol layer is based on my Planck layout, so it provides numbers, symbols, and volume controls.
|
||||
# Two Navigation layers, for Mac and Windows Colemak layers respectively.
|
7
keyboards/iris/keymaps/dnrambo/rules.mk
Normal file
7
keyboards/iris/keymaps/dnrambo/rules.mk
Normal file
@@ -0,0 +1,7 @@
|
||||
RGBLIGHT_ENABLE = no
|
||||
BACKLIGHT_ENABLE = no
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
119
keyboards/iris/keymaps/impstyle/keymap.c
Normal file
119
keyboards/iris/keymaps/impstyle/keymap.c
Normal file
@@ -0,0 +1,119 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define _QWERTY 0
|
||||
#define _LOWER 1
|
||||
#define _RAISE 2
|
||||
#define _ADJUST 16
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
LOWER,
|
||||
RAISE,
|
||||
ADJUST,
|
||||
};
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
#define _______ KC_TRNS
|
||||
|
||||
#define KC_LOWR LOWER
|
||||
#define KC_RASE RAISE
|
||||
#define KC_RST RESET
|
||||
#define KC_BL_S BL_STEP
|
||||
#define KC_TGLW TG(_LOWER)
|
||||
#define KC_TGRS TG(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,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_MINS ,
|
||||
KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L ,KC_SCLN,KC_QUOT,
|
||||
KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_B ,KC_TGRS, KC_TGLW , KC_N , KC_M ,KC_COMM,KC_DOT ,KC_SLSH,KC_BSLASH,
|
||||
KC_LGUI,KC_RASE,KC_SPC , KC_ENT ,KC_LOWR,KC_LALT
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_BSPC,
|
||||
_______,_______,KC_PGUP,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,KC_PLUS,_______,
|
||||
_______ ,KC_HOME,KC_PGDN,KC_END,_______,KC_LPRN, KC_RPRN, KC_P4 , KC_P5 , KC_P6 ,KC_MINS,KC_PIPE,
|
||||
_______,_______,_______,_______,_______,_______,_______, _______ ,_______, KC_P1 , KC_P2 , KC_P3 ,KC_EQL ,KC_UNDS ,
|
||||
_______ ,_______,KC_DEL , KC_BSPC ,_______, KC_P0
|
||||
|
||||
),
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 ,KC_F10 ,KC_F11 ,
|
||||
_______ ,_______, KC_UP ,_______,_______,KC_LBRC, KC_RBRC,_______,KC_NLCK,KC_INS ,KC_SLCK,KC_MUTE,
|
||||
_______ ,KC_LEFT,KC_DOWN,KC_RGHT,_______,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU,
|
||||
_______,_______,_______,_______,_______,_______,_______, KC_PLUS,_______,_______,_______,_______,_______,KC_VOLD,
|
||||
_______ ,_______,_______, KC_EQL,_______,_______
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT(
|
||||
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
RESET , DEBUG , RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______,
|
||||
//|--------+--------+--------+--------+--------+--------+--------. ,--------|--------+--------+--------+--------+--------+--------|
|
||||
BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
//`--------+--------+--------+----+---+--------+--------+--------/ \--------+--------+--------+---+----+--------+--------+--------'
|
||||
_______, _______, _______, _______, _______, _______
|
||||
// `--------+--------+--------' `--------+--------+--------'
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
#endif
|
||||
|
||||
void persistent_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(tone_qwerty);
|
||||
#endif
|
||||
persistent_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ADJUST:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
@@ -15,7 +15,7 @@ enum jj40_layers {
|
||||
_FUNC,
|
||||
_MFNC,
|
||||
_ADJUST,
|
||||
_DYN
|
||||
_MOUSE
|
||||
};
|
||||
|
||||
enum jj40_keycodes {
|
||||
@@ -27,6 +27,7 @@ enum jj40_keycodes {
|
||||
MLWR,
|
||||
RAISE,
|
||||
MRSE,
|
||||
MOUSE,
|
||||
DYNAMIC_MACRO_RANGE
|
||||
};
|
||||
|
||||
@@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = KEYMAP(\
|
||||
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
|
||||
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
|
||||
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* Lower
|
||||
@@ -100,51 +101,50 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | Alt | Enter|Raise | | | | |
|
||||
* | Mouse| | | | | Alt | Enter|Raise | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = KEYMAP(\
|
||||
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
|
||||
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
|
||||
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
|
||||
_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
|
||||
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
|
||||
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
|
||||
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
|
||||
MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
|
||||
),
|
||||
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
* | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | DYN | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP(\
|
||||
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
||||
TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* DYN: Macro Recording and Playback
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | REC1 | REC2 | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | PLAY1| PLAY2| | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | STOP | STOP | | | | | |
|
||||
* | | | | | | STOP | STOP | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DYN]= KEYMAP(\
|
||||
_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
||||
[_ADJUST] = KEYMAP(\
|
||||
M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL ,\
|
||||
KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
||||
TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* Mouse
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ESC | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_MOUSE] = KEYMAP(\
|
||||
KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
|
||||
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______,\
|
||||
KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
||||
),
|
||||
|
||||
[_MAC]= KEYMAP(\
|
||||
@@ -247,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case 0: // Some custom string here
|
||||
SEND_STRING("");
|
||||
return false;
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
// SENSITIVE
|
||||
END
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 1: // Word Select
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
|
||||
END
|
||||
);
|
||||
}
|
||||
case 2: // Word Select - MAC
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
|
||||
END
|
||||
);
|
||||
}
|
||||
case 1: // Word Select
|
||||
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
|
||||
return false;
|
||||
|
||||
case 2: // Word Select Mac
|
||||
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
@@ -27,7 +27,7 @@ Activated when `fn` held in the above `qwerty` layer.
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
|
||||
##### Lower Layer
|
||||
Activated when `Lower` is held in the above `qwerty` layer.
|
||||
@@ -56,38 +56,37 @@ Activated when `Lower` is held in the above `qwerty` layer.
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| | | | | | Alt | Enter |Raise | | | | |
|
||||
| Mouse | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
|
||||
Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
|
||||
* Reset: Enter bootloader for flashing firmware to the keyboard.
|
||||
* CAPS: Toggle caps lock.
|
||||
* DYN: Enter `DYN` layer.
|
||||
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
|
||||
MRSE with RAISE and MFNC with FUNC respectively.
|
||||
* REC1, REC2: Start recording macro.
|
||||
* PLAY1, PLAY2: Playback macro.
|
||||
* STOP1, STOP2: Stop recording macro.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| MAC | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### DYN
|
||||
Activated when `DYN` held along with `Lower` and `Raise`
|
||||
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
|
||||
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
|
||||
| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | |
|
||||
| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
##### Mouse
|
||||
Activated when `fn` and `Raise` are held together.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| | | | | | | | | | | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
####Manual Flashing of hex file
|
||||
`bootloadHID -r .build/jj40_ajp10304.hex`
|
||||
|
@@ -2,4 +2,5 @@ ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
AUDIO_ENABLE = no
|
||||
AUDIO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
25
keyboards/levinson/keymaps/valgrahf/config.h
Normal file
25
keyboards/levinson/keymaps/valgrahf/config.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
|
||||
#define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
#define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
#define RGB_DI_PIN D3
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_SLEEP
|
||||
|
||||
#endif
|
67
keyboards/levinson/keymaps/valgrahf/keymap.c
Normal file
67
keyboards/levinson/keymaps/valgrahf/keymap.c
Normal file
@@ -0,0 +1,67 @@
|
||||
#include "levinson.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
#define _BASE 0
|
||||
#define _FN1 1
|
||||
#define _FN2 2
|
||||
|
||||
#define KC_ KC_TRNS
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
#define KC_FN1 LT(_FN1, KC_NO)
|
||||
#define KC_FN2 LT(_FN2, KC_NO)
|
||||
#define KC_SPFN LT(_FN1, KC_SPACE)
|
||||
#define KC_RST RESET
|
||||
#define KC_DBUG DEBUG
|
||||
#define KC_RTOG RGB_TOG
|
||||
#define KC_RMOD RGB_MOD
|
||||
#define KC_RHUI RGB_HUI
|
||||
#define KC_RHUD RGB_HUD
|
||||
#define KC_RSAI RGB_SAI
|
||||
#define KC_RSAD RGB_SAD
|
||||
#define KC_RVAI RGB_VAI
|
||||
#define KC_RVAD RGB_VAD
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TAB, Q , W , E , R , T , Y , U , I , O , P ,BSPC,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
ESC, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
LSFT, Z , X , C , V , B , N , M ,COMM, DOT,SLSH,PGUP,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
LCTL,LGUI,LALT, FN1, ENT, ENT, SPC, SPC, FN2,HOME, END,PGDN
|
||||
//`----+----+----+----+----+----' `----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN1] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
GRV, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
DEL, F1, F2, F3, F4, F5, F6,MINS, EQL,LBRC,RBRC,BSLS,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, F7, F8, F9, F10, F11, F12, , , , UP, ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
, , , , , , , , ,LEFT,DOWN,RIGHT
|
||||
//`----+----+----+----+----+----' `----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
[_FN2] = KC_KEYMAP(
|
||||
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
|
||||
TILD,EXLM, AT ,HASH,DLR ,PERC, CIRC,AMPR,ASTR,LPRN,RPRN, ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
DEL,RHUI,RSAI,RVAI, , , ,UNDS,PLUS,LCBR,RCBR,PIPE,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
,RHUD,RSAD,RVAD, , , , , , , , ,
|
||||
//|----+----+----+----+----+----| |----+----+----+----+----+----|
|
||||
,RTOG,RMOD, , , , , , , , ,
|
||||
//`----+----+----+----+----+----' `----+----+----+----+----+----'
|
||||
),
|
||||
|
||||
};
|
8
keyboards/levinson/keymaps/valgrahf/rules.mk
Normal file
8
keyboards/levinson/keymaps/valgrahf/rules.mk
Normal file
@@ -0,0 +1,8 @@
|
||||
RGBLIGHT_ENABLE = yes
|
||||
BACKLIGHT_ENABLE = yes
|
||||
AUDIO_ENABLE = no
|
||||
USE_I2C = no
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
@@ -4,7 +4,7 @@
|
||||
#define _FN1 1
|
||||
#define _FN2 2
|
||||
#define KC_ KC_TRNS
|
||||
#define KC_X0 LT(_FN2, KC_GRV)
|
||||
#define KC_X0 LT(_FN2, KC_CAPS)
|
||||
#define KC_X1 MO(_FN1)
|
||||
#define KC_X2 BL_STEP
|
||||
#define KC_X3 BL_BRTG
|
||||
@@ -35,11 +35,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*|esc-`-1--`-2--`-3--`-4--`-5--`-6--`-7--`-8--`-9--`-0--`mnus`plus`--bksp--| |ins-`pgup| */
|
||||
, , UP , , , , , , ,PSCR,SLCK,PAUS, X2 , , ,END,
|
||||
/*|tab---`-q--`-w--`-e--`-r--`-t--`-y--`-u--`-i--`-o--`-p--`-{--`-}--`--|---| `del-`pgdn' */
|
||||
CAPS ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , ,
|
||||
X0 ,LEFT,DOWN,RGHT, , X6 , X5 , X4 , X3 , X2 ,HOME, , ,
|
||||
/*|caps---`-a--`-s--`-d--`-f--`-g--`-h--`-j--`-k--`-l--`-;--`-'--`----enter-| ,----. */
|
||||
, ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , ,
|
||||
, ,MPLY,MSTP,MPRV,MNXT,VOLD,VOLU,MUTE, ,END , , X5 ,
|
||||
/*|shift----`-z--`-x--`-c--`-v--`-b--`-n--`-m--`-,--`-.--`-/--`-------shift-.--|-up-|----. */
|
||||
, , , , , , , , ,
|
||||
, , , , , , , X3 , X6 , X4
|
||||
/*`ctrl-+-gui-+-alt-+----------space---------------+-fn---+-alt-+ctrl-' `left+down+rght' */
|
||||
),
|
||||
|
||||
|
@@ -15,7 +15,7 @@ enum planck_layers {
|
||||
_FUNC,
|
||||
_MFNC,
|
||||
_ADJUST,
|
||||
_DYN
|
||||
_MOUSE
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
@@ -27,6 +27,7 @@ enum planck_keycodes {
|
||||
MLWR,
|
||||
RAISE,
|
||||
MRSE,
|
||||
MOUSE,
|
||||
DYNAMIC_MACRO_RANGE
|
||||
};
|
||||
|
||||
@@ -64,14 +65,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = {
|
||||
{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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT },
|
||||
{KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) },
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||
{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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT },
|
||||
{KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) },
|
||||
{_______, _______, _______, _______, _______, _______, _______, MO(_MOUSE), _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
/* Lower
|
||||
@@ -100,53 +101,51 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | Alt | Enter|Raise | | | | |
|
||||
* | Mouse| | | | | Alt | Enter|Raise | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN },
|
||||
{KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) },
|
||||
{_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) },
|
||||
{_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ }
|
||||
{KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN },
|
||||
{KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) },
|
||||
{_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) },
|
||||
{MO(_MOUSE), _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ }
|
||||
},
|
||||
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
* | ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
* | CAPS | | | | | PLAY1| PLAY2| Mute | Vol+ | Play | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | DYN | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
|
||||
{KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ },
|
||||
{TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ },
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ }
|
||||
},
|
||||
|
||||
/* DYN: Macro Recording and Playback
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | REC1 | REC2 | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | PLAY1| PLAY2| | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | STOP | STOP | | | | | |
|
||||
* | | | | | | STOP | STOP | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DYN]= {
|
||||
{_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
[_ADJUST] = {
|
||||
{M(0), RESET, QWERTY, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, KC_DEL },
|
||||
{KC_CAPS, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ },
|
||||
{TG(_MAC), _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ },
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
/* Mouse
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ESC | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_MOUSE] = {
|
||||
{KC_ESC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, _______, _______ },
|
||||
{KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, _______, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, _______, _______ },
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
|
||||
},
|
||||
|
||||
[_MAC]= {
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
@@ -248,32 +247,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t keycode, uint8_t opt) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case 0: // Some custom string here
|
||||
SEND_STRING("");
|
||||
return false;
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
// SENSITIVE
|
||||
END
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 1: // Word Select
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
|
||||
END
|
||||
);
|
||||
}
|
||||
case 2: // Word Select - MAC
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LALT), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LALT),
|
||||
END
|
||||
);
|
||||
}
|
||||
case 1: // Word Select
|
||||
SEND_STRING(SS_DOWN(X_LCTRL) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LCTRL));
|
||||
return false;
|
||||
|
||||
case 2: // Word Select Mac
|
||||
SEND_STRING(SS_DOWN(X_LALT) SS_TAP(X_RIGHT) SS_DOWN(X_LSHIFT) SS_TAP(X_LEFT) SS_UP(X_LSHIFT) SS_UP(X_LALT));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
@@ -1,11 +1,12 @@
|
||||
# AJP10304 Custom Planck Layout
|
||||
# Also available for the JJ40
|
||||
|
||||
**Note:** In the tables below where there are two characters on a key,
|
||||
**Note:** In the tables below where there are two characters on a key,
|
||||
the second is the output when shift is applied.
|
||||
|
||||
|
||||
**Note:** The below tables assume a UK layout.
|
||||
|
||||
##### Main Qwerty Layer
|
||||
##### Main Qwerty Layer
|
||||
|
||||
* Tab: when held, operates as shift.
|
||||
* Enter: when held, operates as shift.
|
||||
@@ -26,13 +27,13 @@ Activated when `fn` held in the above `qwerty` layer.
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Mouse | MENU | Alt | Ctrl | Fn |
|
||||
|
||||
##### Lower Layer
|
||||
Activated when `Lower` is held in the above `qwerty` layer.
|
||||
|
||||
* Numbers are along the top row, their shifted counterparts are on row 2.
|
||||
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
|
||||
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
|
||||
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
@@ -41,48 +42,48 @@ Activated when `Lower` is held in the above `qwerty` layer.
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
|
||||
|
||||
##### Raise Layer
|
||||
Activated when `Raise` is held in the above `qwerty` layer.
|
||||
|
||||
|
||||
* Preferred layer for typing brackets.
|
||||
* Allows for cursor navigation to be used solely with the right hand.
|
||||
* WRDSEL: Select the word where the cursor is.
|
||||
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
|
||||
| Mouse | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together in the above `qwerty` layer.
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
|
||||
* Reset: Enter bootloader for flashing firmware to the keyboard.
|
||||
* CAPS: Toggle caps lock.
|
||||
* DYN: Enter `DYN` layer.
|
||||
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
|
||||
* MAC: Toggle MAC OS extensions to layers. This allows MLWR to be enabled with LOWER,
|
||||
MRSE with RAISE and MFNC with FUNC respectively.
|
||||
* REC1, REC2: Start recording macro.
|
||||
* PLAY1, PLAY2: Playback macro.
|
||||
* STOP1, STOP2: Stop recording macro.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| MAC | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### DYN
|
||||
Activated when `DYN` held along with `Lower` and `Raise`
|
||||
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
|
||||
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | REC1 | REC2 | | | | | Del |
|
||||
| CAPS | | | | | PLAY1| PLAY | Mute | Vol+ | Play | | |
|
||||
| MAC | | | | | STOP | STOP | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
##### Mouse
|
||||
Activated when `fn` and `Raise` are held together.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| | | | | | | | | | | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | BTN1 | UP | BTN2 | | |
|
||||
| ACC0 | ACC1 | ACC2 | | | | | LEFT | DOWN |RIGHT | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
@@ -2,4 +2,5 @@ ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
AUDIO_ENABLE = no
|
||||
AUDIO_ENABLE = no
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
9
keyboards/planck/keymaps/davidrambo/config.h
Normal file
9
keyboards/planck/keymaps/davidrambo/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
|
||||
#define CONFIG_USER_H
|
||||
#define TAPPING_TERM 200
|
||||
#include "../../config.h"
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
98
keyboards/planck/keymaps/davidrambo/keymap.c
Normal file
98
keyboards/planck/keymaps/davidrambo/keymap.c
Normal file
@@ -0,0 +1,98 @@
|
||||
#include "planck.h"
|
||||
|
||||
//alias for clarity in layering
|
||||
#define _______ KC_TRNS
|
||||
#define A_BSPC LALT(KC_BSPC)
|
||||
#define A_LEFT LALT(KC_LEFT)
|
||||
#define A_RGHT LALT(KC_RGHT)
|
||||
#define C_TAB LCTL(KC_TAB)
|
||||
#define GSL LGUI(S(KC_LEFT))
|
||||
#define GSR LGUI(S(KC_RGHT))
|
||||
#define G_TAB LGUI(KC_TAB)
|
||||
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
|
||||
#define SftEnt SFT_T(KC_ENT)
|
||||
#define NAV LT(2, KC_TAB)
|
||||
|
||||
#define _COLEMAK 0
|
||||
#define _SYMBOL 1
|
||||
#define _NAVIGATION 2
|
||||
|
||||
//tapdance declarations
|
||||
enum {
|
||||
SFT_LCK
|
||||
};
|
||||
|
||||
//alias for tapdance
|
||||
#define SftLck TD(SFT_LCK)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_COLEMAK] = {
|
||||
{KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
|
||||
{KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Symbol
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_SYMBOL] = {
|
||||
{KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC},
|
||||
{KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
|
||||
{_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______},
|
||||
{KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE}
|
||||
},
|
||||
|
||||
/* Navigation*/
|
||||
|
||||
[_NAVIGATION] = {
|
||||
{_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
|
||||
{_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
|
||||
{_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______},
|
||||
{RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
// Shift vs capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
//Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
|
||||
};
|
6
keyboards/planck/keymaps/davidrambo/rules.mk
Normal file
6
keyboards/planck/keymaps/davidrambo/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
9
keyboards/planck/keymaps/rambo/config.h
Normal file
9
keyboards/planck/keymaps/rambo/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
|
||||
#define CONFIG_USER_H
|
||||
#define TAPPING_TERM 200
|
||||
#include "../../config.h"
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
98
keyboards/planck/keymaps/rambo/keymap.c
Normal file
98
keyboards/planck/keymaps/rambo/keymap.c
Normal file
@@ -0,0 +1,98 @@
|
||||
#include "planck.h"
|
||||
|
||||
//alias for clarity in layering
|
||||
#define _______ KC_TRNS
|
||||
#define A_BSPC LALT(KC_BSPC)
|
||||
#define A_LEFT LALT(KC_LEFT)
|
||||
#define A_RGHT LALT(KC_RGHT)
|
||||
#define C_TAB LCTL(KC_TAB)
|
||||
#define GSL LGUI(S(KC_LEFT))
|
||||
#define GSR LGUI(S(KC_RGHT))
|
||||
#define G_TAB LGUI(KC_TAB)
|
||||
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
|
||||
#define SftEnt SFT_T(KC_ENT)
|
||||
#define NAV LT(2, KC_TAB)
|
||||
|
||||
#define _COLEMAK 0
|
||||
#define _SYMBOL 1
|
||||
#define _NAVIGATION 2
|
||||
|
||||
//tapdance declarations
|
||||
enum {
|
||||
SFT_LCK
|
||||
};
|
||||
|
||||
//alias for tapdance
|
||||
#define SftLck TD(SFT_LCK)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ESC` | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* |SftLck| Z | X | C | V | B | K | M | , | . | /? |SftEnt|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Del | GUI | Ctrl | Alt | GUI | Space |Symbol| Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_COLEMAK] = {
|
||||
{KC_GESC, KC_Q , KC_W , KC_F , KC_P , KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{NAV , KC_A , KC_R , KC_S , KC_T , KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{SftLck , KC_Z , KC_X , KC_C , KC_V , KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
|
||||
{KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Symbol
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | [ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ] |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | \| | ! | @ | # | $ | % | ^ | & | * | ( | ) | =+ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Home | End | ScUp | ScDn | F1 | F2 | -_ |Pg Up | | / | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | `~ | | | |Alt(Bk)| | |Pg Dn | Vol- | Vol+ | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_SYMBOL] = {
|
||||
{KC_LBRC, KC_1, KC_2, KC_3, KC_4 , KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC},
|
||||
{KC_BSLS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
|
||||
{_______, KC_HOME, KC_END, KC_WH_U, KC_WH_D,KC_F1 , KC_F2 , KC_MINS, KC_PGUP, _______, _______, _______},
|
||||
{KC_GRV, _______, _______, _______, A_BSPC, _______, _______, _______, KC_PGDN, KC_VOLD, KC_VOLU, KC_MUTE}
|
||||
},
|
||||
|
||||
/* Navigation*/
|
||||
|
||||
[_NAVIGATION] = {
|
||||
{_______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
|
||||
{_______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
|
||||
{_______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END, G_GRV , _______},
|
||||
{RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
// Shift vs capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
//Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
|
||||
};
|
6
keyboards/planck/keymaps/rambo/rules.mk
Normal file
6
keyboards/planck/keymaps/rambo/rules.mk
Normal file
@@ -0,0 +1,6 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
MOUSEKEY_ENABLE = yes
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
102
keyboards/satan/keymaps/bri/keymap.c
Normal file
102
keyboards/satan/keymaps/bri/keymap.c
Normal file
@@ -0,0 +1,102 @@
|
||||
#include "satan.h"
|
||||
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
#define _NAV 2
|
||||
|
||||
#define _______ KC_TRNS
|
||||
#define A_LEFT LALT(KC_LEFT)
|
||||
#define A_RGHT LALT(KC_RGHT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------.
|
||||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
|
||||
* |-----------------------------------------------------------|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
|
||||
* `-----------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = KEYMAP_ANSI(
|
||||
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_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, \
|
||||
MO(2), 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,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT, KC_RCTL, MO(_FL) ),
|
||||
|
||||
/* Keymap _FL: Function Layer
|
||||
* ,-----------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|
|
||||
* | | | | | | | | | | | |BL-|BL+|BL |
|
||||
* |-----------------------------------------------------------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------|
|
||||
* | | F1|F2 | F3|F4 | F5| F6| F7| F8| | | |
|
||||
* |-----------------------------------------------------------|
|
||||
* |RESET| | | | | | | |
|
||||
* `-----------------------------------------------------------'
|
||||
*/
|
||||
[_FL] = KEYMAP_ANSI(
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
KC_GRV , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \
|
||||
RESET ,_______,_______, _______, _______,_______,_______, _______),
|
||||
#else
|
||||
KC_GRV, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10, KC_F11, KC_F12,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
RESET ,_______,_______, _______, _______,_______,_______,_______),
|
||||
#endif
|
||||
|
||||
[_NAV] = KEYMAP_ANSI(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,A_LEFT , KC_UP ,A_RGHT ,_______,_______,_______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______, _______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______,_______,_______, _______, _______,_______,_______,_______),
|
||||
|
||||
};
|
||||
/*
|
||||
enum function_id {
|
||||
SHIFT_ESC,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[0] = ACTION_FUNCTION(SHIFT_ESC),
|
||||
};
|
||||
|
||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
static uint8_t shift_esc_shift_mask;
|
||||
switch (id) {
|
||||
case SHIFT_ESC:
|
||||
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK;
|
||||
if (record->event.pressed) {
|
||||
if (shift_esc_shift_mask) {
|
||||
add_key(KC_GRV);
|
||||
send_keyboard_report();
|
||||
} else {
|
||||
add_key(KC_ESC);
|
||||
send_keyboard_report();
|
||||
}
|
||||
} else {
|
||||
if (shift_esc_shift_mask) {
|
||||
del_key(KC_GRV);
|
||||
send_keyboard_report();
|
||||
} else {
|
||||
del_key(KC_ESC);
|
||||
send_keyboard_report();
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
*/
|
2
keyboards/satan/keymaps/bri/readme.md
Normal file
2
keyboards/satan/keymaps/bri/readme.md
Normal file
@@ -0,0 +1,2 @@
|
||||
#QWERTY keymap for Satan GH60 with layers for arrow keys, function keys, and backlight controls.
|
||||
#The layout of modifiers is intended to mimic the MacBook Air keyboard.
|
@@ -13,21 +13,20 @@
|
||||
|
||||
#define LSHIFT OSM(MOD_LSFT)
|
||||
#define SPACE LT(_AR, KC_SPC)
|
||||
#define CAPS LT(_LE, KC_CAPS)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// Main Layer
|
||||
[_MA] = KEYMAP_ANSI(
|
||||
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_BSPC, KC_MPLY,
|
||||
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,
|
||||
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_PGUP,
|
||||
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_PGUP,
|
||||
LSHIFT, 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_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
//Function Layer
|
||||
[_FL] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, KC_PSCR,
|
||||
TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TO(_LO),
|
||||
TRNS, KC_BTN1, KC_MS_U, KC_BTN2, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_INS,
|
||||
TRNS, KC_MS_L, KC_MS_D, KC_MS_R, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_HOME,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_VOLD, KC_VOLU, KC_MUTE, TRNS, KC_WH_U, KC_END,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_WH_L, KC_WH_D, KC_WH_R),
|
||||
@@ -38,45 +37,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TERM_ON, TERM_OFF, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, M(0), TRNS, TRNS, TRNS),
|
||||
//LED control layer (caps)
|
||||
[_LE] = KEYMAP_ANSI(
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, BL_TOGG, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, BL_INC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, BL_DEC, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
|
||||
|
||||
//Game layer (fn + g)
|
||||
[_GA] = KEYMAP_ANSI(
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
KC_CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
KC_LSFT, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
|
||||
TRNS, TRNS, TRNS, KC_SPC, TRNS, TRNS, MO(_FL), TRNS, TRNS, TRNS),
|
||||
|
||||
[_UL] = KEYMAP_ANSI(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(_MA),
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TRNS, KC_NO, KC_NO, KC_NO),
|
||||
|
||||
[_LO] = KEYMAP_ANSI(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(_UL), KC_NO, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch (id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("Password");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
@@ -139,7 +139,7 @@
|
||||
* @brief Enables the SERIAL over USB subsystem.
|
||||
*/
|
||||
#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
|
||||
#define HAL_USE_SERIAL_USB TRUE
|
||||
#define HAL_USE_SERIAL_USB FALSE
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
26
keyboards/xd75/keymaps/davidrambo/config.h
Normal file
26
keyboards/xd75/keymaps/davidrambo/config.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Copyright 2017 Benjamin Kesselring
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
150
keyboards/xd75/keymaps/davidrambo/keymap.c
Normal file
150
keyboards/xd75/keymaps/davidrambo/keymap.c
Normal file
@@ -0,0 +1,150 @@
|
||||
#include "xd75.h"
|
||||
|
||||
//aliases for clarity in layering
|
||||
#define _______ KC_TRNS
|
||||
#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac
|
||||
#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC
|
||||
#define A_LEFT LALT(KC_LEFT)
|
||||
#define A_RGHT LALT(KC_RGHT)
|
||||
#define C_RGHT LCTL(KC_RGHT)
|
||||
#define C_LEFT LCTL(KC_LEFT)
|
||||
#define SftEnt SFT_T(KC_ENT)
|
||||
#define GBSPC LGUI_T(KC_BSPC)
|
||||
#define CBSPC LCTL_T(KC_BSPC)
|
||||
|
||||
//internet browser tab shortcuts and window swapping for Mac and Win
|
||||
#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari
|
||||
#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari
|
||||
#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows
|
||||
#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows
|
||||
#define G_TAB LGUI(KC_TAB) // MAC: switch applications
|
||||
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
|
||||
#define A_TAB LALT(KC_TAB)
|
||||
#define C_TAB LCTL(KC_TAB)
|
||||
|
||||
//
|
||||
#define NAV LT(3, KC_TAB)
|
||||
#define NAVPC LT(4, KC_TAB)
|
||||
|
||||
// Layer shorthand
|
||||
#define _COLEMAK 0
|
||||
#define _PC 1
|
||||
#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting
|
||||
#define _NAV 3 //Navigation Layer on Mac
|
||||
#define _NAVPC 4 //Navigation Layer on Win
|
||||
|
||||
//tapdance declarations
|
||||
enum {
|
||||
SFT_LCK
|
||||
};
|
||||
|
||||
//alias for tapdance
|
||||
#define SftLck TD(SFT_LCK)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* COLEMAK
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
||||
* | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
|
||||
* | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
|
||||
* |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt |
|
||||
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
|
||||
* | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_COLEMAK] = { /* COLEMAK */
|
||||
{ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
|
||||
{ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
|
||||
{ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
|
||||
{ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
|
||||
{ KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP },
|
||||
},
|
||||
|
||||
// Windows Layer: essentially swaps Control and GUI
|
||||
|
||||
[_PC] = { /* WINDOWS */
|
||||
{ _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ },
|
||||
},
|
||||
|
||||
/* SYMBOL
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | | | | | -_ | | | | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_SYMBOL] = { /* SYMBOL */
|
||||
{ _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______},
|
||||
{ KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC},
|
||||
{ _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
|
||||
{ _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
|
||||
[_NAV] = { /* NAVIGATION for Mac */
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______},
|
||||
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
[_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______},
|
||||
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
}
|
||||
};
|
||||
|
||||
// Shift vs capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
//Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
|
||||
};
|
||||
|
||||
/* Template for future layers
|
||||
[_LAYER_NAME] = {
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
}
|
||||
};
|
||||
*/
|
4
keyboards/xd75/keymaps/davidrambo/readme.md
Normal file
4
keyboards/xd75/keymaps/davidrambo/readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# A Colemak layout for XD75 with both Mac and Windows layers.
|
||||
# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout.
|
||||
# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
|
||||
# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.
|
2
keyboards/xd75/keymaps/davidrambo/rules.mk
Normal file
2
keyboards/xd75/keymaps/davidrambo/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
TAP_DANCE_ENABLE = yes # Enable tap dance functionality
|
20
keyboards/xd75/keymaps/french/README.md
Normal file
20
keyboards/xd75/keymaps/french/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Clavier AZERTY français
|
||||
|
||||

|
||||
|
||||
|
||||
# Configuration du clavier
|
||||
|
||||
Ce clavier AZERTY est basé sur le fichier keymap_french.c de correspondance QWERTY - AZERTY.
|
||||
|
||||
Ce fichier est composé de trois énumérations (layout français, touches de contrôle, touches multimédias) correspondant aux keycodes sous la forme d'hexa.
|
||||
|
||||
Il peut être utilisé pour toute autre configuration de clavier juste en incluant ce fichier dans son propre keymap.c.
|
||||
|
||||
La touche de fonction permet elle d'avoir accès aux différentes touches multimédias ainsi qu'au pavé numérique. Mais aussi si le clavier est équipé de led, à différents modes d'éclairage.
|
||||
|
||||
# Compilation
|
||||
|
||||
```
|
||||
make xd75:french:dfu
|
||||
```
|
24
keyboards/xd75/keymaps/french/config.h
Normal file
24
keyboards/xd75/keymaps/french/config.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Copyright 2017 Benjamin Kesselring
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
60
keyboards/xd75/keymaps/french/keymap.c
Normal file
60
keyboards/xd75/keymaps/french/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "keymap_french.c"
|
||||
#include "xd75.h"
|
||||
|
||||
|
||||
// Layer shorthand
|
||||
#define _AZ 0
|
||||
#define _FN 1
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* AZERTY
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | ESC | & | é | " | ' | ( | - | è | _ | ç | à | ) | = | INSERT | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
||||
* | TAB | a | z | e | r | t | y | u | i | o | p | ^ | $ | ENTER | PG UP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
|
||||
* | CAP LK | q | s | d | f | g | h | j | k | l | m | ù | * | ENTER | PG DN |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
|
||||
* | LSHIFT | w | x | c | v | b | n | , | ; | : | ! | < | LSHIFT | UP | DEL |
|
||||
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
|
||||
* | LCTRL | CMD | ALT | FN | SPACE | SPACE | SPACE | SPACE | ALGR | MENU | HOME | END | LEFT | DOWN | RIGHT |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_AZ] = { /* AZERTY */
|
||||
{ FR_ESC, FR_AMP, FR_EACU, FR_QUOT, FR_APOS, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC },
|
||||
{ FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP },
|
||||
{ FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN },
|
||||
{ FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LESS, FR_RSFT, FR_UP, FR_DEL },
|
||||
{ FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT },
|
||||
},
|
||||
|
||||
|
||||
/* FUNCTION
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PRINT | LED |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | PREV | PLAY | NEXT | | | | | NUM LCK| 7 | 8 | 9 | * | | LED+ |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | VOL- | MUTE | VOL+ | | | | | | 4 | 5 | 6 | - | | LED- |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | | | | 1 | 2 | 3 | + | | LEDMAX |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | RESET | | | FN | | | | | | | 0 | . | PENT | | LEDLVL |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_FN] = { /* FUNCTION */
|
||||
{ FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG },
|
||||
{ FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC },
|
||||
{ FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC },
|
||||
{ FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON },
|
||||
{ RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP },
|
||||
},
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
};
|
||||
|
157
keyboards/xd75/keymaps/french/keymap_french.c
Normal file
157
keyboards/xd75/keymaps/french/keymap_french.c
Normal file
@@ -0,0 +1,157 @@
|
||||
enum french_key {
|
||||
|
||||
FR_EMPT = 0x00,
|
||||
FR_TRANS,
|
||||
FR_Q = 0x04,
|
||||
FR_B,
|
||||
FR_C,
|
||||
FR_D,
|
||||
FR_E,
|
||||
FR_F,
|
||||
FR_G,
|
||||
FR_H,
|
||||
FR_I,
|
||||
FR_J,
|
||||
FR_K,
|
||||
FR_L,
|
||||
FR_COMM, /* 0x10 */
|
||||
FR_N,
|
||||
FR_O,
|
||||
FR_P,
|
||||
FR_A,
|
||||
FR_R,
|
||||
FR_S,
|
||||
FR_T,
|
||||
FR_U,
|
||||
FR_V,
|
||||
FR_Z,
|
||||
FR_X,
|
||||
FR_Y,
|
||||
FR_W,
|
||||
FR_AMP,
|
||||
FR_EACU,
|
||||
FR_QUOT, /* 0x20 */
|
||||
FR_APOS,
|
||||
FR_LPAR,
|
||||
FR_MINS,
|
||||
FR_EGRV,
|
||||
FR_UNDS,
|
||||
FR_CCED,
|
||||
FR_AGRV,
|
||||
FR_ENTR,
|
||||
FR_ESC,
|
||||
FR_BSPC,
|
||||
FR_TAB,
|
||||
FR_SPAC,
|
||||
FR_RPAR,
|
||||
FR_EQUA,
|
||||
FR_HAT,
|
||||
FR_DLR, /* 0x30 */
|
||||
FR_AST =0x32,
|
||||
FR_M,
|
||||
FR_UGRV,
|
||||
FR_SCLN =0x36,
|
||||
FR_COLN,
|
||||
FR_EXCL,
|
||||
FR_CAPL,
|
||||
FR_F1,
|
||||
FR_F2,
|
||||
FR_F3,
|
||||
FR_F4,
|
||||
FR_F5,
|
||||
FR_F6,
|
||||
FR_F7, /* 0x40 */
|
||||
FR_F8,
|
||||
FR_F9,
|
||||
FR_F10,
|
||||
FR_F11,
|
||||
FR_F12,
|
||||
FR_PSCR,
|
||||
FR_INST =0x49,
|
||||
FR_HOME,
|
||||
FR_PGUP,
|
||||
FR_DEL,
|
||||
FR_END,
|
||||
FR_PGDN,
|
||||
FR_RIGT,
|
||||
FR_LEFT, /* 0x50 */
|
||||
FR_DOWN,
|
||||
FR_UP,
|
||||
FR_NUML,
|
||||
FR_SLSH, /* KEYPAD */
|
||||
FR_MULT,
|
||||
FR_MOIN,
|
||||
FR_PLUS,
|
||||
FR_ENTK,
|
||||
FR_1,
|
||||
FR_2,
|
||||
FR_3,
|
||||
FR_4,
|
||||
FR_5,
|
||||
FR_6,
|
||||
FR_7,
|
||||
FR_8, /* 0x60 */
|
||||
FR_9,
|
||||
FR_0,
|
||||
FR_DOT,
|
||||
FR_LESS,
|
||||
FR_EQ =0x67 /* END KEYPAD */,
|
||||
FR_F13,
|
||||
FR_F14,
|
||||
FR_F15,
|
||||
FR_F16,
|
||||
FR_F17,
|
||||
FR_F18,
|
||||
FR_F19,
|
||||
FR_F20,
|
||||
FR_F21, /* 0x70 */
|
||||
FR_F22,
|
||||
FR_F23,
|
||||
FR_F24,
|
||||
FR_MENU =0x76
|
||||
};
|
||||
|
||||
|
||||
enum french_control_touch{
|
||||
|
||||
/* Modifiers */
|
||||
FR_LCTR = 0xE0,
|
||||
FR_LSFT,
|
||||
FR_LALT,
|
||||
FR_LCMD,
|
||||
FR_RCTR,
|
||||
FR_RSFT,
|
||||
FR_ALGR,
|
||||
FR_RCMD
|
||||
};
|
||||
|
||||
|
||||
enum french_media_key{
|
||||
/* System Control */
|
||||
FR_SYSTEM_POWER = 0xA5,
|
||||
FR_SYSTEM_SLEEP,
|
||||
FR_SYSTEM_WAKE,
|
||||
|
||||
/* Media Control */
|
||||
FR_MUTE,
|
||||
FR_MVUP,
|
||||
FR_MVDN,
|
||||
FR_MNXT,
|
||||
FR_MPRV,
|
||||
FR_MSTP,
|
||||
FR_MPLY,
|
||||
FR_MEDIA_SELECT,
|
||||
FR_MEDIA_EJECT,
|
||||
FR_MAIL,
|
||||
FR_CALCULATOR,
|
||||
FR_MY_COMPUTER,
|
||||
FR_WWW_SEARCH,
|
||||
FR_WWW_HOME,
|
||||
FR_WWW_BACK,
|
||||
FR_WWW_FORWARD,
|
||||
FR_WWW_STOP,
|
||||
FR_WWW_REFRESH,
|
||||
FR_WWW_FAVORITES,
|
||||
FR_MEDIA_FAST_FORWARD,
|
||||
FR_MEDIA_REWIND /* 0xBC */
|
||||
};
|
20
keyboards/xd75/keymaps/french/rules.mk
Normal file
20
keyboards/xd75/keymaps/french/rules.mk
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2013 Jun Wako <wakojun@gmail.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/>.
|
||||
|
||||
RGBLIGHT_ENABLE = no
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
26
keyboards/xd75/keymaps/rambo/config.h
Normal file
26
keyboards/xd75/keymaps/rambo/config.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/* Copyright 2017 Benjamin Kesselring
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define PERMISSIVE_HOLD
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
150
keyboards/xd75/keymaps/rambo/keymap.c
Normal file
150
keyboards/xd75/keymaps/rambo/keymap.c
Normal file
@@ -0,0 +1,150 @@
|
||||
#include "xd75.h"
|
||||
|
||||
//aliases for clarity in layering
|
||||
#define _______ KC_TRNS
|
||||
#define A_BSPC LALT(KC_BSPC) // delete whole word in Mac
|
||||
#define C_BSPS LCTL(KC_BSPC) // delete whole word in PC
|
||||
#define A_LEFT LALT(KC_LEFT)
|
||||
#define A_RGHT LALT(KC_RGHT)
|
||||
#define C_RGHT LCTL(KC_RGHT)
|
||||
#define C_LEFT LCTL(KC_LEFT)
|
||||
#define SftEnt SFT_T(KC_ENT)
|
||||
#define GBSPC LGUI_T(KC_BSPC)
|
||||
#define CBSPC LCTL_T(KC_BSPC)
|
||||
|
||||
//internet browser tab shortcuts and window swapping for Mac and Win
|
||||
#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari
|
||||
#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari
|
||||
#define CTLPGDN LCTL(KC_PGDN) // back one tab on Windows
|
||||
#define CTLPGUP LCTL(KC_PGUP) // forward one tab on Windows
|
||||
#define G_TAB LGUI(KC_TAB) // MAC: switch applications
|
||||
#define G_GRV LGUI(KC_GRV) // MAC: switch between windows within an application
|
||||
#define A_TAB LALT(KC_TAB)
|
||||
#define C_TAB LCTL(KC_TAB)
|
||||
|
||||
//
|
||||
#define NAV LT(3, KC_TAB)
|
||||
#define NAVPC LT(4, KC_TAB)
|
||||
|
||||
// Layer shorthand
|
||||
#define _COLEMAK 0
|
||||
#define _PC 1
|
||||
#define _SYMBOL 2 //Function keys, numbers, symbols, Backlighting
|
||||
#define _NAV 3 //Navigation Layer on Mac
|
||||
#define _NAVPC 4 //Navigation Layer on Win
|
||||
|
||||
//tapdance declarations
|
||||
enum {
|
||||
SFT_LCK
|
||||
};
|
||||
|
||||
//alias for tapdance
|
||||
#define SftLck TD(SFT_LCK)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* COLEMAK
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | `~ | 1 | 2 | 3 | 4 | 5 | - | SWITCH | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
||||
* | ESC/`~ | Q | W | F | P | G | [ | \ | ] | J | L | U | Y | ; | BACKSP |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
|
||||
* | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
|
||||
* |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt |
|
||||
* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
|
||||
* | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_COLEMAK] = { /* COLEMAK */
|
||||
{ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TG(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
|
||||
{ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC },
|
||||
{ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_ESC , KC_ENT , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT },
|
||||
{ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , KC_ENT , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt },
|
||||
{ KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LGUI, GBSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(2) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP },
|
||||
},
|
||||
|
||||
// Windows Layer: essentially swaps Control and GUI
|
||||
|
||||
[_PC] = { /* WINDOWS */
|
||||
{ _______, _______, _______, _______, _______, _______, _______, TG(0) , _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ NAVPC , _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||
{ _______, KC_LCTL, KC_LGUI, _______, KC_LCTL, CBSPC , _______, _______, _______, _______, _______, KC_RCTL, KC_RALT, KC_RGUI, _______ },
|
||||
},
|
||||
|
||||
/* SYMBOL
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | | | | | -_ | | | | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_SYMBOL] = { /* SYMBOL */
|
||||
{ _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______},
|
||||
{ KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC},
|
||||
{ _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL },
|
||||
{ _______, BL_OFF , BL_ON , BL_DEC , BL_INC , KC_F11 , _______, _______, _______, KC_F12 , KC_MINS, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, A_BSPC , _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
|
||||
[_NAV] = { /* NAVIGATION for Mac */
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , A_LEFT, KC_UP, A_RGHT , KC_DEL , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, GSL , KC_LEFT, KC_DOWN, KC_RGHT, GSR , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, G_TAB , KC_HOME, _______, KC_END , G_GRV , _______},
|
||||
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
},
|
||||
|
||||
[_NAVPC] = { /* NAVIGATION FOR WINDOWS: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, C_TAB , C_LEFT, KC_UP, C_RGHT , KC_DEL , _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGDN, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGUP, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, A_TAB , KC_HOME, _______, KC_END , _______, _______},
|
||||
{ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
}
|
||||
};
|
||||
|
||||
// Shift vs capslock function. From bbaserdem's Planck keymap.
|
||||
void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
register_code (KC_LSFT);
|
||||
} else if (state->count == 2) {
|
||||
unregister_code (KC_LSFT);
|
||||
register_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
|
||||
if (state->count == 1) {
|
||||
unregister_code (KC_LSFT);
|
||||
} else {
|
||||
unregister_code (KC_CAPS);
|
||||
}
|
||||
}
|
||||
|
||||
//Tap Dance Definitions
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
//Tap once for Shift, twice for Caps Lock
|
||||
[SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
|
||||
};
|
||||
|
||||
/* Template for future layers
|
||||
[_LAYER_NAME] = {
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
}
|
||||
};
|
||||
*/
|
4
keyboards/xd75/keymaps/rambo/readme.md
Normal file
4
keyboards/xd75/keymaps/rambo/readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# A Colemak layout for XD75 with both Mac and Windows layers.
|
||||
# These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout.
|
||||
# Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
|
||||
# The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.
|
2
keyboards/xd75/keymaps/rambo/rules.mk
Normal file
2
keyboards/xd75/keymaps/rambo/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
TAP_DANCE_ENABLE = yes # Enable tap dance functionality
|
@@ -9,14 +9,22 @@
|
||||
* See `readme.md` for notes on each define.
|
||||
*/
|
||||
|
||||
/* Personal preference (enable by passing EXTRAFLAGS=... to make). */
|
||||
/**
|
||||
* Optionally support 80 key layout.
|
||||
*
|
||||
* No default keys defined: use 'CFQ_USER_K80_L0K0' .. etc.
|
||||
*/
|
||||
/* #define CFQ_USE_80_KEYS */
|
||||
|
||||
/** Personal preference (enable by passing 'EXTRAFLAGS=...' to make). */
|
||||
/* #define CFQ_USE_MOMENTARY_LAYER_KEYS */
|
||||
|
||||
/* Holding right/left or left/right shift for single or double quote pair */
|
||||
/** Holding right/left or left/right shift for single or double quote pair */
|
||||
/* #define CFQ_USE_SHIFT_QUOTES */
|
||||
|
||||
#define CFQ_USE_DYNAMIC_MACRO
|
||||
|
||||
|
||||
#if !defined(CFQ_USER_KEY0)
|
||||
# define CFQ_USER_KEY0 KC_BSPC
|
||||
#endif
|
||||
@@ -45,6 +53,91 @@
|
||||
# define CFQ_USER_KEY8 KC_DEL
|
||||
#endif
|
||||
|
||||
#ifdef CFQ_USE_80_KEYS
|
||||
# define LAYOUT_ergodox_76_or_80 KEYMAP_80
|
||||
# define K80(a) CFQ_USER_K80_##a
|
||||
#else
|
||||
# define LAYOUT_ergodox_76_or_80( \
|
||||
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, \
|
||||
\
|
||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
|
||||
k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
|
||||
k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
|
||||
k70, k71, k72, k73, k74, k75, k76, k77, k78, k79) \
|
||||
LAYOUT_ergodox( \
|
||||
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, k36, k37, k38, k39, \
|
||||
\
|
||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, \
|
||||
k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, \
|
||||
k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, \
|
||||
k70, k71, k72, k73, k76, k77, k78, k79)
|
||||
# define K80(a) KC_TRNS
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Used to generate lines below:
|
||||
* \code{.py}
|
||||
* text = '# ifndef CFQ_USER_K80_L0K0\n# define CFQ_USER_K80_L0K0 KC_TRNS\n# endif'
|
||||
* print('\n'.join([text.replace('L0', f'L{l}').replace('K0', f'K{k}') for l in range(3) for k in range(4)]))
|
||||
* \endcode
|
||||
*/
|
||||
#ifdef CFQ_USE_80_KEYS
|
||||
# ifndef CFQ_USER_K80_L0K0
|
||||
# define CFQ_USER_K80_L0K0 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L0K1
|
||||
# define CFQ_USER_K80_L0K1 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L0K2
|
||||
# define CFQ_USER_K80_L0K2 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L0K3
|
||||
# define CFQ_USER_K80_L0K3 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L1K0
|
||||
# define CFQ_USER_K80_L1K0 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L1K1
|
||||
# define CFQ_USER_K80_L1K1 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L1K2
|
||||
# define CFQ_USER_K80_L1K2 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L1K3
|
||||
# define CFQ_USER_K80_L1K3 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L2K0
|
||||
# define CFQ_USER_K80_L2K0 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L2K1
|
||||
# define CFQ_USER_K80_L2K1 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L2K2
|
||||
# define CFQ_USER_K80_L2K2 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L2K3
|
||||
# define CFQ_USER_K80_L2K3 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L3K0
|
||||
# define CFQ_USER_K80_L3K0 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L3K1
|
||||
# define CFQ_USER_K80_L3K1 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L3K2
|
||||
# define CFQ_USER_K80_L3K2 KC_TRNS
|
||||
# endif
|
||||
# ifndef CFQ_USER_K80_L3K3
|
||||
# define CFQ_USER_K80_L3K3 KC_TRNS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef CFQ_WORD_A
|
||||
#define CFQ_WORD_A ""
|
||||
#endif
|
||||
@@ -147,10 +240,10 @@ static char cfq_word_lut_title_caps[
|
||||
sizeof(CFQ_WORD_Y) + sizeof(CFQ_WORD_Z)
|
||||
];
|
||||
|
||||
#define BASE 0 /* default layer */
|
||||
#define SYMB 1 /* symbols */
|
||||
#define MDIA 2 /* media keys */
|
||||
#define WORD 3 /* experimental keys */
|
||||
#define LAYER_BASE 0 /* default layer */
|
||||
#define LAYER_SYMB 1 /* symbols */
|
||||
#define LAYER_MDIA 2 /* media keys */
|
||||
#define LAYER_FKEY 3 /* F-Keys & Words */
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, /* can always be here */
|
||||
@@ -183,7 +276,14 @@ enum custom_keycodes {
|
||||
};
|
||||
|
||||
#ifdef CFQ_USE_DYNAMIC_MACRO
|
||||
#include "dynamic_macro.h"
|
||||
# include "dynamic_macro.h"
|
||||
#else
|
||||
/* avoid ifdef's in keymap */
|
||||
# define DYN_REC_START1 KC_TRNS
|
||||
# define DYN_REC_START2 KC_TRNS
|
||||
# define DYN_REC_PLAY1 KC_TRNS
|
||||
# define DYN_REC_PLAY2 KC_TRNS
|
||||
# define DYN_REC_STOP KC_TRNS
|
||||
#endif
|
||||
|
||||
#ifdef CFQ_USE_MOMENTARY_LAYER_KEYS
|
||||
@@ -198,50 +298,50 @@ enum custom_keycodes {
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | 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 | , | . | / | RShift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | Ins |NumClk| | Home | End |
|
||||
* ,------+------+------| |------+------+------.
|
||||
* | | |CapsLk| | PgUp | | |
|
||||
* |BSpace| Del |------| |------| ~L2 |Enter |
|
||||
* | | | ~L3 | | PgDn | | |
|
||||
* `--------------------' `--------------------'
|
||||
* .--------------------------------------------------. .--------------------------------------------------.
|
||||
* | Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | 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 | , | . | / | RShift |
|
||||
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
* | LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
|
||||
* '----------------------------------' '----------------------------------'
|
||||
* .-------------. .-------------.
|
||||
* | Ins |NumClk| | Home | End |
|
||||
* .------+------+------| |------+------+------.
|
||||
* | | |CapsLk| | PgUp | | |
|
||||
* |BSpace| Del |------| |------| ~L2 |Enter |
|
||||
* | | | ~L3 | | PgDn | | |
|
||||
* '--------------------' '--------------------'
|
||||
*
|
||||
* Optional overrides: see CFQ_USER_KEY# defines.
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | USR0 |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | USR1 | | | | | | | USR8 |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | USR2 | USR3 | | | |
|
||||
* ,------+------+------| |------+------+------.
|
||||
* | | | USR6 | | | | |
|
||||
* | USR4 | USR5 |------| |------| | |
|
||||
* | | | USR7 | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
* .--------------------------------------------------. .--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | USR0 |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | |------| |------| | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
* | | | | USR1 | | | | | | | USR8 |
|
||||
* '----------------------------------' '----------------------------------'
|
||||
* .-------------. .-------------.
|
||||
* | USR2 | USR3 | | | |
|
||||
* .------+------+------| |------+------+------.
|
||||
* | | | USR6 | | | | |
|
||||
* | USR4 | USR5 |------| |------| | |
|
||||
* | | | USR7 | | | | |
|
||||
* '--------------------' '--------------------'
|
||||
*/
|
||||
|
||||
/* If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
* Otherwise, it needs KC_* */
|
||||
[BASE] = LAYOUT_ergodox( /* layer 0 : default */
|
||||
[LAYER_BASE] = LAYOUT_ergodox_76_or_80( /* layer 0 : default */
|
||||
/* left hand */
|
||||
KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_LCBR,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN,
|
||||
@@ -249,7 +349,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, CFQ_USER_KEY1, KC_SPC,
|
||||
CFQ_USER_KEY2, CFQ_USER_KEY3,
|
||||
CFQ_USER_KEY6,
|
||||
K80(L0K0), K80(L0K1), CFQ_USER_KEY6,
|
||||
CFQ_USER_KEY4, CFQ_USER_KEY5, CFQ_USER_KEY7,
|
||||
/* right hand */
|
||||
KC_RCBR, KC_CIRC, KC_AMPR, KC_ASTR,KC_MINS, KC_EQL, CFQ_USER_KEY0,
|
||||
@@ -258,46 +358,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LEFT, KC_DOWN,KC_UP, KC_RGHT, CFQ_USER_KEY8,
|
||||
KC_HOME, KC_END,
|
||||
KC_PGUP,
|
||||
KC_PGUP, K80(L0K2), K80(L0K3),
|
||||
KC_PGDN, CFQ_KC_FN2, KC_ENT
|
||||
),/* Keymap 1: KeyPad, Macro Record
|
||||
),
|
||||
/* Keymap 1: KeyPad, Macro Record
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | {} | | }{ | |NumLck| / | * | - | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
|
||||
* | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | 0 | | . | Enter| |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,--------------.
|
||||
* |Start1|Start2| | | |
|
||||
* ,------+------+------| |------+-------+------.
|
||||
* | | | Stop | | | | |
|
||||
* |Play1 |Play2 |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `---------------------'
|
||||
* .--------------------------------------------------. .--------------------------------------------------.
|
||||
* | | | | | | | {} | | }{ | |NumLck| / | * | - | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|
||||
* |--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
|
||||
* | | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
|
||||
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
* | | | | | | | 0 | | . | Enter| |
|
||||
* '----------------------------------' '----------------------------------'
|
||||
* .-------------. .-------------.
|
||||
* |Start1|Start2| | | |
|
||||
* .------+------+------| |------+------+------.
|
||||
* | | | Stop | | | | |
|
||||
* |Play1 |Play2 |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* '--------------------' '--------------------'
|
||||
*/
|
||||
/* SYMBOLS */
|
||||
[SYMB] = LAYOUT_ergodox(
|
||||
[LAYER_SYMB] = LAYOUT_ergodox_76_or_80(
|
||||
/* left hand */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_CBR,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_REQL, M_BRACKET_IN_PRN,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_ARROW_RMINUS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M_BRACKET_IN_ANG, M_BRACKET_IN_BRC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
#ifdef CFQ_USE_DYNAMIC_MACRO
|
||||
DYN_REC_START1, DYN_REC_START2,
|
||||
DYN_REC_STOP,
|
||||
DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
|
||||
#else
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
#endif
|
||||
DYN_REC_START1, DYN_REC_START2,
|
||||
K80(L1K0), K80(L1K1), DYN_REC_STOP,
|
||||
DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, KC_TRNS,
|
||||
/* right hand */
|
||||
M_BRACKET_OUT_CBR, KC_TRNS, KC_NLCK, KC_KP_SLASH, KC_KP_ASTERISK, KC_KP_MINUS, KC_TRNS,
|
||||
M_BRACKET_OUT_PRN, M_ARROW_LEQL, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_PLUS, KC_TRNS,
|
||||
@@ -305,41 +400,41 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
M_BRACKET_OUT_BRC, M_BRACKET_OUT_ANG, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_ENTER, KC_TRNS,
|
||||
KC_KP_0, KC_TRNS, KC_KP_DOT, KC_KP_ENTER, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, K80(L1K2), K80(L1K3),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
/* Keymap 2: F-Keys, media and mouse keys
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | MsUp | | |MWhlUp| | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|
||||
* |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
|
||||
* | | | Rclk | Mclk | Lclk | | | | | | | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | MRwd | MFwd | | MPrv | MNxt |
|
||||
* ,------+------+------| |------+------+------.
|
||||
* | | | | |VolUp | | |
|
||||
* | Mute | |------| |------| | Play |
|
||||
* | | | | |VolDn | | |
|
||||
* `--------------------' `--------------------'
|
||||
* .--------------------------------------------------. .--------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | | | MsUp | | |MWhlUp| | | | | | | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|
||||
* |--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
|
||||
* | | | Rclk | Mclk | Lclk | | | | | | | | | | |
|
||||
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* '----------------------------------' '----------------------------------'
|
||||
* .-------------. .-------------.
|
||||
* | MRwd | MFwd | | MPrv | MNxt |
|
||||
* .------+------+------| |------+------+------.
|
||||
* | | | | |VolUp | | |
|
||||
* | Mute | |------| |------| | Play |
|
||||
* | | | | |VolDn | | |
|
||||
* '--------------------' '--------------------'
|
||||
*/
|
||||
/* MEDIA AND MOUSE */
|
||||
[MDIA] = LAYOUT_ergodox(
|
||||
[LAYER_MDIA] = LAYOUT_ergodox_76_or_80(
|
||||
/* left hand */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_WH_U,
|
||||
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_BTN2, KC_BTN3, KC_BTN1, KC_TRNS, KC_WH_D,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_MRWD, KC_MFFD,
|
||||
KC_TRNS,
|
||||
KC_MUTE, KC_TRNS, KC_TRNS,
|
||||
KC_MRWD, KC_MFFD,
|
||||
K80(L2K0), K80(L2K1), KC_TRNS,
|
||||
KC_MUTE, KC_TRNS, KC_TRNS,
|
||||
/* right hand */
|
||||
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,
|
||||
@@ -347,42 +442,42 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_MPRV, KC_MNXT,
|
||||
KC_VOLU,
|
||||
KC_VOLU, K80(L2K2), K80(L1K3),
|
||||
KC_VOLD, KC_TRNS, KC_MPLY
|
||||
),
|
||||
/* Keymap 3: Entire Words (one for each key)
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | A | S | D | F | G |------| |------| H | J | K | L | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | Z | X | C | V | B | | | | N | M | | | | |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------+------+------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
* .--------------------------------------------------. .--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|
||||
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | A | S | D | F | G |------| |------| H | J | K | L | | |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | Z | X | C | V | B | | | | N | M | | | | |
|
||||
* '--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
* | | | | | | | | | | | |
|
||||
* '----------------------------------' '----------------------------------'
|
||||
* .-------------. .-------------.
|
||||
* | | | | | |
|
||||
* .------+------+------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* '--------------------' '--------------------'
|
||||
*/
|
||||
|
||||
/* WORDS */
|
||||
[WORD] = LAYOUT_ergodox(
|
||||
/* FKEY & WORDS */
|
||||
[LAYER_FKEY] = LAYOUT_ergodox_76_or_80(
|
||||
/* left hand */
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
|
||||
KC_TRNS, M_WORD_Q, M_WORD_W, M_WORD_E, M_WORD_R, M_WORD_T, KC_TRNS,
|
||||
KC_TRNS, M_WORD_A, M_WORD_S, M_WORD_D, M_WORD_F, M_WORD_G,
|
||||
KC_TRNS, M_WORD_Z, M_WORD_X, M_WORD_C, M_WORD_V, M_WORD_B, 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,
|
||||
K80(L3K0), K80(L3K1), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
/* right hand */
|
||||
KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
|
||||
KC_TRNS, M_WORD_Y, M_WORD_U, M_WORD_I, M_WORD_O, M_WORD_P, KC_TRNS,
|
||||
@@ -390,25 +485,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, M_WORD_N, M_WORD_M, 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, K80(L3K2), K80(L3K3),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB), /* FN1 - Momentary Layer 1 (Symbols) */
|
||||
[2] = ACTION_LAYER_TAP_TOGGLE(MDIA), /* FN2 - Momentary Layer 2 (Media) */
|
||||
[3] = ACTION_LAYER_TAP_TOGGLE(WORD), /* FN3 - Momentary Layer 3 (Words) */
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(LAYER_SYMB), /* FN1 - Momentary Layer 1 (Symbols) */
|
||||
[2] = ACTION_LAYER_TAP_TOGGLE(LAYER_MDIA), /* FN2 - Momentary Layer 2 (Media) */
|
||||
[3] = ACTION_LAYER_TAP_TOGGLE(LAYER_FKEY), /* FN3 - Momentary Layer 3 (FKey's & Words) */
|
||||
};
|
||||
|
||||
|
||||
#define WITHOUT_MODS(...) \
|
||||
do { \
|
||||
uint8_t _real_mods = get_mods(); \
|
||||
clear_mods(); \
|
||||
{ __VA_ARGS__ } \
|
||||
set_mods(_real_mods); \
|
||||
} while (0)
|
||||
#define WITHOUT_MODS(...) \
|
||||
do { \
|
||||
uint8_t _real_mods = get_mods(); \
|
||||
clear_mods(); \
|
||||
{ __VA_ARGS__ } \
|
||||
set_mods(_real_mods); \
|
||||
} while (0)
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
#ifdef CFQ_USE_DYNAMIC_MACRO
|
||||
|
@@ -44,50 +44,54 @@ using `CFQ_` prefixed defines which can be set by passing `EXTRAFLAGS` to make.
|
||||
- `CFQ_WORD_[A-Z]`
|
||||
defines can bind a key to an entire user defined word.
|
||||
|
||||
- `CFQ_USE_80_KEYS`
|
||||
enables 80 key layout, none of the extra keys are bound,
|
||||
they need to be set with defines: `CFQ_USER_K80_L0K0` .. `CFQ_USER_K80_L3K4`.
|
||||
Where `L#` is the layer and `K#` is the key.
|
||||
|
||||
|
||||
## Keymap 0: Basic layer
|
||||
|
||||
```
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| 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 | , | . | / | RShift |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| Ins |NumClk| | Home | End |
|
||||
,------+------+------| |------+------+------.
|
||||
| | |CapsLk| | PgUp | | |
|
||||
|BSpace| Del |------| |------| ~L2 |Enter |
|
||||
| | | ~L3 | | PgDn | | |
|
||||
`--------------------' `--------------------'
|
||||
.--------------------------------------------------. .--------------------------------------------------.
|
||||
| Grave | ! | @ | # | $ | % | { | | } | ^ | & | * | - | = | BSpace |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| 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 | , | . | / | RShift |
|
||||
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
| LCtl |Super | Alt | ~L1 |Space | | Left | Down | Up |Right | Del |
|
||||
'----------------------------------' '----------------------------------'
|
||||
.-------------. .-------------.
|
||||
| Ins |NumClk| | Home | End |
|
||||
.------+------+------| |------+------+------.
|
||||
| | |CapsLk| | PgUp | | |
|
||||
|BSpace| Del |------| |------| ~L2 |Enter |
|
||||
| | | ~L3 | | PgDn | | |
|
||||
'--------------------' '--------------------'
|
||||
|
||||
Optional overrides: see CFQ_USER_KEY# defines.
|
||||
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| | | | | | | | | | | | | | | USR0 |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | |------| |------| | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| | | | USR1 | | | | | | | USR8 |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| USR2 | USR3 | | | |
|
||||
,------+------+------| |------+------+------.
|
||||
| | | USR6 | | | | |
|
||||
| USR4 | USR5 |------| |------| | |
|
||||
| | | USR7 | | | | |
|
||||
`--------------------' `--------------------'
|
||||
.--------------------------------------------------. .--------------------------------------------------.
|
||||
| | | | | | | | | | | | | | | USR0 |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | |------| |------| | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | | | | | | | | | | |
|
||||
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
| | | | USR1 | | | | | | | USR8 |
|
||||
'----------------------------------' '----------------------------------'
|
||||
.-------------. .-------------.
|
||||
| USR2 | USR3 | | | |
|
||||
.------+------+------| |------+------+------.
|
||||
| | | USR6 | | | | |
|
||||
| USR4 | USR5 |------| |------| | |
|
||||
| | | USR7 | | | | |
|
||||
'--------------------' '--------------------'
|
||||
```
|
||||
|
||||
## Keymap 1: KeyPad, Macro Record
|
||||
@@ -98,47 +102,47 @@ Notes:
|
||||
- The left thumb cluster is used for macro record/replay.
|
||||
|
||||
```
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| | | | | | | {} | | }{ | |NumLck| / | * | - | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|
||||
|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
|
||||
| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| | | | | | | 0 | | . | Enter| |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,--------------.
|
||||
|Start1|Start2| | | |
|
||||
,------+------+------| |------+-------+------.
|
||||
| | | Stop | | | | |
|
||||
|Play1 |Play2 |------| |------| | |
|
||||
| | | | | | | |
|
||||
`--------------------' `---------------------'
|
||||
.--------------------------------------------------. .--------------------------------------------------.
|
||||
| | | | | | | {} | | }{ | |NumLck| / | * | - | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | | | => | () | | )( | <= | 7 | 8 | 9 | + | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | | | | | -> |------| |------| <- | 4 | 5 | 6 | + | |
|
||||
|--------+------+------+------+------+------| [] | | ][ |------+------+------+------+------+--------|
|
||||
| | | | | | <> | | | | >< | 1 | 2 | 3 | Enter| |
|
||||
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
| | | | | | | 0 | | . | Enter| |
|
||||
'----------------------------------' '----------------------------------'
|
||||
.-------------. .-------------.
|
||||
|Start1|Start2| | | |
|
||||
.------+------+------| |------+------+------.
|
||||
| | | Stop | | | | |
|
||||
|Play1 |Play2 |------| |------| | |
|
||||
| | | | | | | |
|
||||
'--------------------' '--------------------'
|
||||
```
|
||||
|
||||
## Keymap 2: Keymap 2: Media and mouse keys
|
||||
|
||||
```
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| | | | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | MsUp | | |MWhlUp| | | | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|
||||
|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
|
||||
| | | Rclk | Mclk | Lclk | | | | | | | | | | |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| MRwd | MFwd | | MPrv | MNxt |
|
||||
,------+------+------| |------+------+------.
|
||||
| | | | |VolUp | | |
|
||||
| Mute | |------| |------| | Play |
|
||||
| | | | |VolDn | | |
|
||||
`--------------------' `--------------------'
|
||||
.--------------------------------------------------. .--------------------------------------------------.
|
||||
| | | | | | | | | | | | | | | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | | | MsUp | | |MWhlUp| | | | | | | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | |MsLeft|MsDown|MsRght| |------| |------| Left | Down | Up |Right | | |
|
||||
|--------+------+------+------+------+------|MWhlDn| | |------+------+------+------+------+--------|
|
||||
| | | Rclk | Mclk | Lclk | | | | | | | | | | |
|
||||
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
| | | | | | | | | | | |
|
||||
'----------------------------------' '----------------------------------'
|
||||
.-------------. .-------------.
|
||||
| MRwd | MFwd | | MPrv | MNxt |
|
||||
.------+------+------| |------+------+------.
|
||||
| | | | |VolUp | | |
|
||||
| Mute | |------| |------| | Play |
|
||||
| | | | |VolDn | | |
|
||||
'--------------------' '--------------------'
|
||||
```
|
||||
|
||||
## Keymap 3: K-Keys & User defined words
|
||||
@@ -148,28 +152,31 @@ You can define the arguments (which must be quoted) using: `CFQ_WORD_[A-Z]`
|
||||
eg: `-DCFQ_WORD_E=\"my@email.com\"`
|
||||
|
||||
```
|
||||
,--------------------------------------------------. ,--------------------------------------------------.
|
||||
| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | A | S | D | F | G |------| |------| H | J | K | L | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | Z | X | C | V | B | | | | N | M | | | | |
|
||||
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
| | | | | | | | | | | |
|
||||
`----------------------------------' `----------------------------------'
|
||||
,-------------. ,-------------.
|
||||
| | | | | |
|
||||
,------+------+------| |------+------+------.
|
||||
| | | | | | | |
|
||||
| | |------| |------| | |
|
||||
| | | | | | | |
|
||||
`--------------------' `--------------------'
|
||||
.--------------------------------------------------. .--------------------------------------------------.
|
||||
| | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | |
|
||||
|--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
| | Q | W | E | R | T | | | | Y | U | I | O | P | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | A | S | D | F | G |------| |------| H | J | K | L | | |
|
||||
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
| | Z | X | C | V | B | | | | N | M | | | | |
|
||||
'--------+------+------+------+------+-------------' '-------------+------+------+------+------+--------'
|
||||
| | | | | | | | | | | |
|
||||
'----------------------------------' '----------------------------------'
|
||||
.-------------. .-------------.
|
||||
| | | | | |
|
||||
.------+------+------| |------+------+------.
|
||||
| | | | | | | |
|
||||
| | |------| |------| | |
|
||||
| | | | | | | |
|
||||
'--------------------' '--------------------'
|
||||
```
|
||||
|
||||
## Changelog
|
||||
|
||||
- 2018/04/14
|
||||
Add `CFQ_USE_80_KEYS` to optionally support an 80 key layout.
|
||||
|
||||
- 2018/03/08
|
||||
Add `CFQ_USE_SHIFT_QUOTES` option.
|
||||
Add `CFQ_USER_KEY8` key.
|
||||
|
@@ -222,6 +222,26 @@ bool process_midi(uint16_t keycode, keyrecord_t *record)
|
||||
dprintf("midi modulation interval %d\n", midi_config.modulation_interval);
|
||||
}
|
||||
return false;
|
||||
case MI_BENDD:
|
||||
if (record->event.pressed) {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, -0x2000);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, -0x2000);
|
||||
}
|
||||
else {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
|
||||
}
|
||||
return false;
|
||||
case MI_BENDU:
|
||||
if (record->event.pressed) {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0x1fff);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0x1fff);
|
||||
}
|
||||
else {
|
||||
midi_send_pitchbend(&midi_device, midi_config.channel, 0);
|
||||
dprintf("midi pitchbend channel:%d amount:%d\n", midi_config.channel, 0);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
return true;
|
||||
|
@@ -383,6 +383,9 @@ enum quantum_keycodes {
|
||||
MI_MOD, // modulation
|
||||
MI_MODSD, // decrease modulation speed
|
||||
MI_MODSU, // increase modulation speed
|
||||
|
||||
MI_BENDD, // Bend down
|
||||
MI_BENDU, // Bend up
|
||||
#endif // MIDI_ADVANCED
|
||||
|
||||
// Backlight functionality
|
||||
|
@@ -5,6 +5,7 @@ CHIBIOS_DIR = $(PROTOCOL_DIR)/chibios
|
||||
SRC += $(CHIBIOS_DIR)/usb_main.c
|
||||
SRC += $(CHIBIOS_DIR)/main.c
|
||||
SRC += usb_descriptor.c
|
||||
SRC += $(CHIBIOS_DIR)/usb_driver.c
|
||||
|
||||
VPATH += $(TMK_PATH)/$(PROTOCOL_DIR)
|
||||
VPATH += $(TMK_PATH)/$(CHIBIOS_DIR)
|
||||
|
502
tmk_core/protocol/chibios/usb_driver.c
Normal file
502
tmk_core/protocol/chibios/usb_driver.c
Normal file
@@ -0,0 +1,502 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file hal_serial_usb.c
|
||||
* @brief Serial over USB Driver code.
|
||||
*
|
||||
* @addtogroup SERIAL_USB
|
||||
* @{
|
||||
*/
|
||||
|
||||
#include "hal.h"
|
||||
#include "usb_driver.h"
|
||||
#include <string.h>
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local definitions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported variables. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local variables and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*
|
||||
* Current Line Coding.
|
||||
*/
|
||||
static cdc_linecoding_t linecoding = {
|
||||
{0x00, 0x96, 0x00, 0x00}, /* 38400. */
|
||||
LC_STOP_1, LC_PARITY_NONE, 8
|
||||
};
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver local functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
static bool qmkusb_start_receive(QMKUSBDriver *qmkusbp) {
|
||||
uint8_t *buf;
|
||||
|
||||
/* If the USB driver is not in the appropriate state then transactions
|
||||
must not be started.*/
|
||||
if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) ||
|
||||
(qmkusbp->state != QMKUSB_READY)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Checking if there is already a transaction ongoing on the endpoint.*/
|
||||
if (usbGetReceiveStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Checking if there is a buffer ready for incoming data.*/
|
||||
buf = ibqGetEmptyBufferI(&qmkusbp->ibqueue);
|
||||
if (buf == NULL) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* Buffer found, starting a new transaction.*/
|
||||
usbStartReceiveI(qmkusbp->config->usbp, qmkusbp->config->bulk_out,
|
||||
buf, qmkusbp->ibqueue.bsize - sizeof(size_t));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Interface implementation.
|
||||
*/
|
||||
|
||||
static size_t _write(void *ip, const uint8_t *bp, size_t n) {
|
||||
|
||||
return obqWriteTimeout(&((QMKUSBDriver *)ip)->obqueue, bp,
|
||||
n, TIME_INFINITE);
|
||||
}
|
||||
|
||||
static size_t _read(void *ip, uint8_t *bp, size_t n) {
|
||||
|
||||
return ibqReadTimeout(&((QMKUSBDriver *)ip)->ibqueue, bp,
|
||||
n, TIME_INFINITE);
|
||||
}
|
||||
|
||||
static msg_t _put(void *ip, uint8_t b) {
|
||||
|
||||
return obqPutTimeout(&((QMKUSBDriver *)ip)->obqueue, b, TIME_INFINITE);
|
||||
}
|
||||
|
||||
static msg_t _get(void *ip) {
|
||||
|
||||
return ibqGetTimeout(&((QMKUSBDriver *)ip)->ibqueue, TIME_INFINITE);
|
||||
}
|
||||
|
||||
static msg_t _putt(void *ip, uint8_t b, systime_t timeout) {
|
||||
|
||||
return obqPutTimeout(&((QMKUSBDriver *)ip)->obqueue, b, timeout);
|
||||
}
|
||||
|
||||
static msg_t _gett(void *ip, systime_t timeout) {
|
||||
|
||||
return ibqGetTimeout(&((QMKUSBDriver *)ip)->ibqueue, timeout);
|
||||
}
|
||||
|
||||
static size_t _writet(void *ip, const uint8_t *bp, size_t n, systime_t timeout) {
|
||||
|
||||
return obqWriteTimeout(&((QMKUSBDriver *)ip)->obqueue, bp, n, timeout);
|
||||
}
|
||||
|
||||
static size_t _readt(void *ip, uint8_t *bp, size_t n, systime_t timeout) {
|
||||
|
||||
return ibqReadTimeout(&((QMKUSBDriver *)ip)->ibqueue, bp, n, timeout);
|
||||
}
|
||||
|
||||
static const struct QMKUSBDriverVMT vmt = {
|
||||
_write, _read, _put, _get,
|
||||
_putt, _gett, _writet, _readt
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Notification of empty buffer released into the input buffers queue.
|
||||
*
|
||||
* @param[in] bqp the buffers queue pointer.
|
||||
*/
|
||||
static void ibnotify(io_buffers_queue_t *bqp) {
|
||||
QMKUSBDriver *qmkusbp = bqGetLinkX(bqp);
|
||||
(void) qmkusb_start_receive(qmkusbp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Notification of filled buffer inserted into the output buffers queue.
|
||||
*
|
||||
* @param[in] bqp the buffers queue pointer.
|
||||
*/
|
||||
static void obnotify(io_buffers_queue_t *bqp) {
|
||||
size_t n;
|
||||
QMKUSBDriver *qmkusbp = bqGetLinkX(bqp);
|
||||
|
||||
/* If the USB driver is not in the appropriate state then transactions
|
||||
must not be started.*/
|
||||
if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) ||
|
||||
(qmkusbp->state != QMKUSB_READY)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Checking if there is already a transaction ongoing on the endpoint.*/
|
||||
if (!usbGetTransmitStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) {
|
||||
/* Trying to get a full buffer.*/
|
||||
uint8_t *buf = obqGetFullBufferI(&qmkusbp->obqueue, &n);
|
||||
if (buf != NULL) {
|
||||
/* Buffer found, starting a new transaction.*/
|
||||
usbStartTransmitI(qmkusbp->config->usbp, qmkusbp->config->bulk_in, buf, n);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver exported functions. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Serial Driver initialization.
|
||||
* @note This function is implicitly invoked by @p halInit(), there is
|
||||
* no need to explicitly initialize the driver.
|
||||
*
|
||||
* @init
|
||||
*/
|
||||
void qmkusbInit(void) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Initializes a generic full duplex driver object.
|
||||
* @details The HW dependent part of the initialization has to be performed
|
||||
* outside, usually in the hardware initialization code.
|
||||
*
|
||||
* @param[out] qmkusbp pointer to a @p QMKUSBDriver structure
|
||||
*
|
||||
* @init
|
||||
*/
|
||||
void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config) {
|
||||
|
||||
qmkusbp->vmt = &vmt;
|
||||
osalEventObjectInit(&qmkusbp->event);
|
||||
qmkusbp->state = QMKUSB_STOP;
|
||||
// Note that the config uses the USB direction naming
|
||||
ibqObjectInit(&qmkusbp->ibqueue, true, config->ob,
|
||||
config->out_size, config->out_buffers,
|
||||
ibnotify, qmkusbp);
|
||||
obqObjectInit(&qmkusbp->obqueue, true, config->ib,
|
||||
config->in_size, config->in_buffers,
|
||||
obnotify, qmkusbp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Configures and starts the driver.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
* @param[in] config the serial over USB driver configuration
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config) {
|
||||
USBDriver *usbp = config->usbp;
|
||||
|
||||
osalDbgCheck(qmkusbp != NULL);
|
||||
|
||||
osalSysLock();
|
||||
osalDbgAssert((qmkusbp->state == QMKUSB_STOP) || (qmkusbp->state == QMKUSB_READY),
|
||||
"invalid state");
|
||||
usbp->in_params[config->bulk_in - 1U] = qmkusbp;
|
||||
usbp->out_params[config->bulk_out - 1U] = qmkusbp;
|
||||
if (config->int_in > 0U) {
|
||||
usbp->in_params[config->int_in - 1U] = qmkusbp;
|
||||
}
|
||||
qmkusbp->config = config;
|
||||
qmkusbp->state = QMKUSB_READY;
|
||||
osalSysUnlock();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Stops the driver.
|
||||
* @details Any thread waiting on the driver's queues will be awakened with
|
||||
* the message @p MSG_RESET.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
*
|
||||
* @api
|
||||
*/
|
||||
void qmkusbStop(QMKUSBDriver *qmkusbp) {
|
||||
USBDriver *usbp = qmkusbp->config->usbp;
|
||||
|
||||
osalDbgCheck(qmkusbp != NULL);
|
||||
|
||||
osalSysLock();
|
||||
|
||||
osalDbgAssert((qmkusbp->state == QMKUSB_STOP) || (qmkusbp->state == QMKUSB_READY),
|
||||
"invalid state");
|
||||
|
||||
/* Driver in stopped state.*/
|
||||
usbp->in_params[qmkusbp->config->bulk_in - 1U] = NULL;
|
||||
usbp->out_params[qmkusbp->config->bulk_out - 1U] = NULL;
|
||||
if (qmkusbp->config->int_in > 0U) {
|
||||
usbp->in_params[qmkusbp->config->int_in - 1U] = NULL;
|
||||
}
|
||||
qmkusbp->config = NULL;
|
||||
qmkusbp->state = QMKUSB_STOP;
|
||||
|
||||
/* Enforces a disconnection.*/
|
||||
chnAddFlagsI(qmkusbp, CHN_DISCONNECTED);
|
||||
ibqResetI(&qmkusbp->ibqueue);
|
||||
obqResetI(&qmkusbp->obqueue);
|
||||
osalOsRescheduleS();
|
||||
|
||||
osalSysUnlock();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief USB device suspend handler.
|
||||
* @details Generates a @p CHN_DISCONNECT event and puts queues in
|
||||
* non-blocking mode, this way the application cannot get stuck
|
||||
* in the middle of an I/O operations.
|
||||
* @note If this function is not called from an ISR then an explicit call
|
||||
* to @p osalOsRescheduleS() in necessary afterward.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
*
|
||||
* @iclass
|
||||
*/
|
||||
void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp) {
|
||||
|
||||
chnAddFlagsI(qmkusbp, CHN_DISCONNECTED);
|
||||
bqSuspendI(&qmkusbp->ibqueue);
|
||||
bqSuspendI(&qmkusbp->obqueue);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief USB device wakeup handler.
|
||||
* @details Generates a @p CHN_CONNECT event and resumes normal queues
|
||||
* operations.
|
||||
*
|
||||
* @note If this function is not called from an ISR then an explicit call
|
||||
* to @p osalOsRescheduleS() in necessary afterward.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
*
|
||||
* @iclass
|
||||
*/
|
||||
void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp) {
|
||||
|
||||
chnAddFlagsI(qmkusbp, CHN_CONNECTED);
|
||||
bqResumeX(&qmkusbp->ibqueue);
|
||||
bqResumeX(&qmkusbp->obqueue);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief USB device configured handler.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
*
|
||||
* @iclass
|
||||
*/
|
||||
void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp) {
|
||||
|
||||
ibqResetI(&qmkusbp->ibqueue);
|
||||
bqResumeX(&qmkusbp->ibqueue);
|
||||
obqResetI(&qmkusbp->obqueue);
|
||||
bqResumeX(&qmkusbp->obqueue);
|
||||
chnAddFlagsI(qmkusbp, CHN_CONNECTED);
|
||||
(void) qmkusb_start_receive(qmkusbp);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default requests hook.
|
||||
* @details Applications wanting to use the Serial over USB driver can use
|
||||
* this function as requests hook in the USB configuration.
|
||||
* The following requests are emulated:
|
||||
* - CDC_GET_LINE_CODING.
|
||||
* - CDC_SET_LINE_CODING.
|
||||
* - CDC_SET_CONTROL_LINE_STATE.
|
||||
* .
|
||||
*
|
||||
* @param[in] usbp pointer to the @p USBDriver object
|
||||
* @return The hook status.
|
||||
* @retval true Message handled internally.
|
||||
* @retval false Message not handled.
|
||||
*/
|
||||
bool qmkusbRequestsHook(USBDriver *usbp) {
|
||||
|
||||
if ((usbp->setup[0] & USB_RTYPE_TYPE_MASK) == USB_RTYPE_TYPE_CLASS) {
|
||||
switch (usbp->setup[1]) {
|
||||
case CDC_GET_LINE_CODING:
|
||||
usbSetupTransfer(usbp, (uint8_t *)&linecoding, sizeof(linecoding), NULL);
|
||||
return true;
|
||||
case CDC_SET_LINE_CODING:
|
||||
usbSetupTransfer(usbp, (uint8_t *)&linecoding, sizeof(linecoding), NULL);
|
||||
return true;
|
||||
case CDC_SET_CONTROL_LINE_STATE:
|
||||
/* Nothing to do, there are no control lines.*/
|
||||
usbSetupTransfer(usbp, NULL, 0, NULL);
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SOF handler.
|
||||
* @details The SOF interrupt is used for automatic flushing of incomplete
|
||||
* buffers pending in the output queue.
|
||||
*
|
||||
* @param[in] qmkusbp pointer to a @p QMKUSBDriver object
|
||||
*
|
||||
* @iclass
|
||||
*/
|
||||
void qmkusbSOFHookI(QMKUSBDriver *qmkusbp) {
|
||||
|
||||
/* If the USB driver is not in the appropriate state then transactions
|
||||
must not be started.*/
|
||||
if ((usbGetDriverStateI(qmkusbp->config->usbp) != USB_ACTIVE) ||
|
||||
(qmkusbp->state != QMKUSB_READY)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* If there is already a transaction ongoing then another one cannot be
|
||||
started.*/
|
||||
if (usbGetTransmitStatusI(qmkusbp->config->usbp, qmkusbp->config->bulk_in)) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Checking if there only a buffer partially filled, if so then it is
|
||||
enforced in the queue and transmitted.*/
|
||||
if (obqTryFlushI(&qmkusbp->obqueue)) {
|
||||
size_t n;
|
||||
uint8_t *buf = obqGetFullBufferI(&qmkusbp->obqueue, &n);
|
||||
|
||||
/* For fixed size drivers, fill the end with zeros */
|
||||
if (qmkusbp->config->fixed_size) {
|
||||
memset(buf + n, 0, qmkusbp->config->in_size - n);
|
||||
n = qmkusbp->config->in_size;
|
||||
}
|
||||
|
||||
osalDbgAssert(buf != NULL, "queue is empty");
|
||||
|
||||
usbStartTransmitI(qmkusbp->config->usbp, qmkusbp->config->bulk_in, buf, n);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default data transmitted callback.
|
||||
* @details The application must use this function as callback for the IN
|
||||
* data endpoint.
|
||||
*
|
||||
* @param[in] usbp pointer to the @p USBDriver object
|
||||
* @param[in] ep IN endpoint number
|
||||
*/
|
||||
void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep) {
|
||||
uint8_t *buf;
|
||||
size_t n;
|
||||
QMKUSBDriver *qmkusbp = usbp->in_params[ep - 1U];
|
||||
|
||||
if (qmkusbp == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
osalSysLockFromISR();
|
||||
|
||||
/* Signaling that space is available in the output queue.*/
|
||||
chnAddFlagsI(qmkusbp, CHN_OUTPUT_EMPTY);
|
||||
|
||||
/* Freeing the buffer just transmitted, if it was not a zero size packet.*/
|
||||
if (usbp->epc[ep]->in_state->txsize > 0U) {
|
||||
obqReleaseEmptyBufferI(&qmkusbp->obqueue);
|
||||
}
|
||||
|
||||
/* Checking if there is a buffer ready for transmission.*/
|
||||
buf = obqGetFullBufferI(&qmkusbp->obqueue, &n);
|
||||
|
||||
if (buf != NULL) {
|
||||
/* The endpoint cannot be busy, we are in the context of the callback,
|
||||
so it is safe to transmit without a check.*/
|
||||
usbStartTransmitI(usbp, ep, buf, n);
|
||||
}
|
||||
else if ((usbp->epc[ep]->in_state->txsize > 0U) &&
|
||||
((usbp->epc[ep]->in_state->txsize &
|
||||
((size_t)usbp->epc[ep]->in_maxsize - 1U)) == 0U)) {
|
||||
/* Transmit zero sized packet in case the last one has maximum allowed
|
||||
size. Otherwise the recipient may expect more data coming soon and
|
||||
not return buffered data to app. See section 5.8.3 Bulk Transfer
|
||||
Packet Size Constraints of the USB Specification document.*/
|
||||
if (!qmkusbp->config->fixed_size) {
|
||||
usbStartTransmitI(usbp, ep, usbp->setup, 0);
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
/* Nothing to transmit.*/
|
||||
}
|
||||
|
||||
osalSysUnlockFromISR();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default data received callback.
|
||||
* @details The application must use this function as callback for the OUT
|
||||
* data endpoint.
|
||||
*
|
||||
* @param[in] usbp pointer to the @p USBDriver object
|
||||
* @param[in] ep OUT endpoint number
|
||||
*/
|
||||
void qmkusbDataReceived(USBDriver *usbp, usbep_t ep) {
|
||||
QMKUSBDriver *qmkusbp = usbp->out_params[ep - 1U];
|
||||
if (qmkusbp == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
osalSysLockFromISR();
|
||||
|
||||
/* Signaling that data is available in the input queue.*/
|
||||
chnAddFlagsI(qmkusbp, CHN_INPUT_AVAILABLE);
|
||||
|
||||
/* Posting the filled buffer in the queue.*/
|
||||
ibqPostFullBufferI(&qmkusbp->ibqueue,
|
||||
usbGetReceiveTransactionSizeX(qmkusbp->config->usbp,
|
||||
qmkusbp->config->bulk_out));
|
||||
|
||||
/* The endpoint cannot be busy, we are in the context of the callback,
|
||||
so a packet is in the buffer for sure. Trying to get a free buffer
|
||||
for the next transaction.*/
|
||||
(void) qmkusb_start_receive(qmkusbp);
|
||||
|
||||
osalSysUnlockFromISR();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Default data received callback.
|
||||
* @details The application must use this function as callback for the IN
|
||||
* interrupt endpoint.
|
||||
*
|
||||
* @param[in] usbp pointer to the @p USBDriver object
|
||||
* @param[in] ep endpoint number
|
||||
*/
|
||||
void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep) {
|
||||
|
||||
(void)usbp;
|
||||
(void)ep;
|
||||
}
|
||||
|
||||
/** @} */
|
184
tmk_core/protocol/chibios/usb_driver.h
Normal file
184
tmk_core/protocol/chibios/usb_driver.h
Normal file
@@ -0,0 +1,184 @@
|
||||
/*
|
||||
ChibiOS - Copyright (C) 2006..2016 Giovanni Di Sirio
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file usb_driver.h
|
||||
* @brief Usb driver suitable for both packet and serial formats
|
||||
*
|
||||
* @addtogroup SERIAL_USB
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef USB_DRIVER_H
|
||||
#define USB_DRIVER_H
|
||||
|
||||
#include "hal_usb_cdc.h"
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver constants. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Derived constants and error checks. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#if HAL_USE_USB == FALSE
|
||||
#error "The USB Driver requires HAL_USE_USB"
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver data structures and types. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/**
|
||||
* @brief Driver state machine possible states.
|
||||
*/
|
||||
typedef enum {
|
||||
QMKUSB_UNINIT = 0, /**< Not initialized. */
|
||||
QMKUSB_STOP = 1, /**< Stopped. */
|
||||
QMKUSB_READY = 2 /**< Ready. */
|
||||
} qmkusbstate_t;
|
||||
|
||||
/**
|
||||
* @brief Structure representing a serial over USB driver.
|
||||
*/
|
||||
typedef struct QMKUSBDriver QMKUSBDriver;
|
||||
|
||||
/**
|
||||
* @brief Serial over USB Driver configuration structure.
|
||||
* @details An instance of this structure must be passed to @p sduStart()
|
||||
* in order to configure and start the driver operations.
|
||||
*/
|
||||
typedef struct {
|
||||
/**
|
||||
* @brief USB driver to use.
|
||||
*/
|
||||
USBDriver *usbp;
|
||||
/**
|
||||
* @brief Bulk IN endpoint used for outgoing data transfer.
|
||||
*/
|
||||
usbep_t bulk_in;
|
||||
/**
|
||||
* @brief Bulk OUT endpoint used for incoming data transfer.
|
||||
*/
|
||||
usbep_t bulk_out;
|
||||
/**
|
||||
* @brief Interrupt IN endpoint used for notifications.
|
||||
* @note If set to zero then the INT endpoint is assumed to be not
|
||||
* present, USB descriptors must be changed accordingly.
|
||||
*/
|
||||
usbep_t int_in;
|
||||
|
||||
/**
|
||||
* @brief The number of buffers in the queues
|
||||
*/
|
||||
size_t in_buffers;
|
||||
size_t out_buffers;
|
||||
|
||||
/**
|
||||
* @brief The size of each buffer in the queue, typically the same as the endpoint size
|
||||
*/
|
||||
size_t in_size;
|
||||
size_t out_size;
|
||||
|
||||
/**
|
||||
* @brief Always send full buffers in_size (the rest is filled with zeroes)
|
||||
*/
|
||||
bool fixed_size;
|
||||
|
||||
/* Input buffer
|
||||
* @note needs to be initialized with a memory buffer of the right size
|
||||
*/
|
||||
uint8_t* ib;
|
||||
/* Output buffer
|
||||
* @note needs to be initialized with a memory buffer of the right size
|
||||
*/
|
||||
uint8_t* ob;
|
||||
} QMKUSBConfig;
|
||||
|
||||
/**
|
||||
* @brief @p SerialDriver specific data.
|
||||
*/
|
||||
#define _qmk_usb_driver_data \
|
||||
_base_asynchronous_channel_data \
|
||||
/* Driver state.*/ \
|
||||
qmkusbstate_t state; \
|
||||
/* Input buffers queue.*/ \
|
||||
input_buffers_queue_t ibqueue; \
|
||||
/* Output queue.*/ \
|
||||
output_buffers_queue_t obqueue; \
|
||||
/* End of the mandatory fields.*/ \
|
||||
/* Current configuration data.*/ \
|
||||
const QMKUSBConfig *config;
|
||||
|
||||
/**
|
||||
* @brief @p SerialUSBDriver specific methods.
|
||||
*/
|
||||
#define _qmk_usb_driver_methods \
|
||||
_base_asynchronous_channel_methods
|
||||
|
||||
/**
|
||||
* @extends BaseAsynchronousChannelVMT
|
||||
*
|
||||
* @brief @p SerialDriver virtual methods table.
|
||||
*/
|
||||
struct QMKUSBDriverVMT {
|
||||
_qmk_usb_driver_methods
|
||||
};
|
||||
|
||||
/**
|
||||
* @extends BaseAsynchronousChannel
|
||||
*
|
||||
* @brief Full duplex serial driver class.
|
||||
* @details This class extends @p BaseAsynchronousChannel by adding physical
|
||||
* I/O queues.
|
||||
*/
|
||||
struct QMKUSBDriver {
|
||||
/** @brief Virtual Methods Table.*/
|
||||
const struct QMKUSBDriverVMT *vmt;
|
||||
_qmk_usb_driver_data
|
||||
};
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver macros. */
|
||||
/*===========================================================================*/
|
||||
|
||||
/*===========================================================================*/
|
||||
/* External declarations. */
|
||||
/*===========================================================================*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
void qmkusbInit(void);
|
||||
void qmkusbObjectInit(QMKUSBDriver *qmkusbp, const QMKUSBConfig * config);
|
||||
void qmkusbStart(QMKUSBDriver *qmkusbp, const QMKUSBConfig *config);
|
||||
void qmkusbStop(QMKUSBDriver *qmkusbp);
|
||||
void qmkusbSuspendHookI(QMKUSBDriver *qmkusbp);
|
||||
void qmkusbWakeupHookI(QMKUSBDriver *qmkusbp);
|
||||
void qmkusbConfigureHookI(QMKUSBDriver *qmkusbp);
|
||||
bool qmkusbRequestsHook(USBDriver *usbp);
|
||||
void qmkusbSOFHookI(QMKUSBDriver *qmkusbp);
|
||||
void qmkusbDataTransmitted(USBDriver *usbp, usbep_t ep);
|
||||
void qmkusbDataReceived(USBDriver *usbp, usbep_t ep);
|
||||
void qmkusbInterruptTransmitted(USBDriver *usbp, usbep_t ep);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* USB_DRIVER_H */
|
||||
|
||||
/** @} */
|
@@ -29,6 +29,7 @@
|
||||
#endif
|
||||
#include "wait.h"
|
||||
#include "usb_descriptor.h"
|
||||
#include "usb_driver.h"
|
||||
|
||||
#ifdef NKRO_ENABLE
|
||||
#include "keycode_config.h"
|
||||
@@ -170,27 +171,23 @@ static const USBEndpointConfig nkro_ep_config = {
|
||||
typedef struct {
|
||||
size_t queue_capacity_in;
|
||||
size_t queue_capacity_out;
|
||||
uint8_t* queue_buffer_in;
|
||||
uint8_t* queue_buffer_out;
|
||||
USBInEndpointState in_ep_state;
|
||||
USBOutEndpointState out_ep_state;
|
||||
USBInEndpointState int_ep_state;
|
||||
USBEndpointConfig in_ep_config;
|
||||
USBEndpointConfig out_ep_config;
|
||||
USBEndpointConfig int_ep_config;
|
||||
const SerialUSBConfig config;
|
||||
SerialUSBDriver driver;
|
||||
} stream_driver_t;
|
||||
const QMKUSBConfig config;
|
||||
QMKUSBDriver driver;
|
||||
} usb_driver_config_t;
|
||||
|
||||
#define STREAM_DRIVER(stream, notification) { \
|
||||
#define QMK_USB_DRIVER_CONFIG(stream, notification, fixedsize) { \
|
||||
.queue_capacity_in = stream##_IN_CAPACITY, \
|
||||
.queue_capacity_out = stream##_OUT_CAPACITY, \
|
||||
.queue_buffer_in = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]) {}, \
|
||||
.queue_buffer_out = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY,stream##_EPSIZE)]) {}, \
|
||||
.in_ep_config = { \
|
||||
.ep_mode = stream##_IN_MODE, \
|
||||
.setup_cb = NULL, \
|
||||
.in_cb = sduDataTransmitted, \
|
||||
.in_cb = qmkusbDataTransmitted, \
|
||||
.out_cb = NULL, \
|
||||
.in_maxsize = stream##_EPSIZE, \
|
||||
.out_maxsize = 0, \
|
||||
@@ -204,7 +201,7 @@ typedef struct {
|
||||
.ep_mode = stream##_OUT_MODE, \
|
||||
.setup_cb = NULL, \
|
||||
.in_cb = NULL, \
|
||||
.out_cb = sduDataReceived, \
|
||||
.out_cb = qmkusbDataReceived, \
|
||||
.in_maxsize = 0, \
|
||||
.out_maxsize = stream##_EPSIZE, \
|
||||
/* The pointer to the states will be filled during initialization */ \
|
||||
@@ -216,7 +213,7 @@ typedef struct {
|
||||
.int_ep_config = { \
|
||||
.ep_mode = USB_EP_MODE_TYPE_INTR, \
|
||||
.setup_cb = NULL, \
|
||||
.in_cb = sduInterruptTransmitted, \
|
||||
.in_cb = qmkusbInterruptTransmitted, \
|
||||
.out_cb = NULL, \
|
||||
.in_maxsize = CDC_NOTIFICATION_EPSIZE, \
|
||||
.out_maxsize = 0, \
|
||||
@@ -230,7 +227,14 @@ typedef struct {
|
||||
.usbp = &USB_DRIVER, \
|
||||
.bulk_in = stream##_IN_EPNUM, \
|
||||
.bulk_out = stream##_OUT_EPNUM, \
|
||||
.int_in = notification \
|
||||
.int_in = notification, \
|
||||
.in_buffers = stream##_IN_CAPACITY, \
|
||||
.out_buffers = stream##_OUT_CAPACITY, \
|
||||
.in_size = stream##_EPSIZE, \
|
||||
.out_size = stream##_EPSIZE, \
|
||||
.fixed_size = fixedsize, \
|
||||
.ib = (uint8_t[BQ_BUFFER_SIZE(stream##_IN_CAPACITY, stream##_EPSIZE)]) {}, \
|
||||
.ob = (uint8_t[BQ_BUFFER_SIZE(stream##_OUT_CAPACITY,stream##_EPSIZE)]) {}, \
|
||||
} \
|
||||
}
|
||||
|
||||
@@ -238,36 +242,36 @@ typedef struct {
|
||||
union {
|
||||
struct {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
stream_driver_t console_driver;
|
||||
usb_driver_config_t console_driver;
|
||||
#endif
|
||||
#ifdef RAW_ENABLE
|
||||
stream_driver_t raw_driver;
|
||||
usb_driver_config_t raw_driver;
|
||||
#endif
|
||||
#ifdef MIDI_ENABLE
|
||||
stream_driver_t midi_driver;
|
||||
usb_driver_config_t midi_driver;
|
||||
#endif
|
||||
#ifdef VIRTSER_ENABLE
|
||||
stream_driver_t serial_driver;
|
||||
usb_driver_config_t serial_driver;
|
||||
#endif
|
||||
};
|
||||
stream_driver_t array[0];
|
||||
usb_driver_config_t array[0];
|
||||
};
|
||||
} stream_drivers_t;
|
||||
} usb_driver_configs_t;
|
||||
|
||||
static stream_drivers_t drivers = {
|
||||
static usb_driver_configs_t drivers = {
|
||||
#ifdef CONSOLE_ENABLE
|
||||
#define CONSOLE_IN_CAPACITY 4
|
||||
#define CONSOLE_OUT_CAPACITY 4
|
||||
#define CONSOLE_IN_MODE USB_EP_MODE_TYPE_INTR
|
||||
#define CONSOLE_OUT_MODE USB_EP_MODE_TYPE_INTR
|
||||
.console_driver = STREAM_DRIVER(CONSOLE, 0),
|
||||
.console_driver = QMK_USB_DRIVER_CONFIG(CONSOLE, 0, true),
|
||||
#endif
|
||||
#ifdef RAW_ENABLE
|
||||
#define RAW_IN_CAPACITY 4
|
||||
#define RAW_OUT_CAPACITY 4
|
||||
#define RAW_IN_MODE USB_EP_MODE_TYPE_INTR
|
||||
#define RAW_OUT_MODE USB_EP_MODE_TYPE_INTR
|
||||
.raw_driver = STREAM_DRIVER(RAW, 0),
|
||||
.raw_driver = QMK_USB_DRIVER_CONFIG(RAW, 0, false),
|
||||
#endif
|
||||
|
||||
#ifdef MIDI_ENABLE
|
||||
@@ -275,7 +279,7 @@ static stream_drivers_t drivers = {
|
||||
#define MIDI_STREAM_OUT_CAPACITY 4
|
||||
#define MIDI_STREAM_IN_MODE USB_EP_MODE_TYPE_BULK
|
||||
#define MIDI_STREAM_OUT_MODE USB_EP_MODE_TYPE_BULK
|
||||
.midi_driver = STREAM_DRIVER(MIDI_STREAM, 0),
|
||||
.midi_driver = QMK_USB_DRIVER_CONFIG(MIDI_STREAM, 0, false),
|
||||
#endif
|
||||
|
||||
#ifdef VIRTSER_ENABLE
|
||||
@@ -283,11 +287,11 @@ static stream_drivers_t drivers = {
|
||||
#define CDC_OUT_CAPACITY 4
|
||||
#define CDC_IN_MODE USB_EP_MODE_TYPE_BULK
|
||||
#define CDC_OUT_MODE USB_EP_MODE_TYPE_BULK
|
||||
.serial_driver = STREAM_DRIVER(CDC, CDC_NOTIFICATION_EPNUM),
|
||||
.serial_driver = QMK_USB_DRIVER_CONFIG(CDC, CDC_NOTIFICATION_EPNUM, false),
|
||||
#endif
|
||||
};
|
||||
|
||||
#define NUM_STREAM_DRIVERS (sizeof(drivers) / sizeof(stream_driver_t))
|
||||
#define NUM_USB_DRIVERS (sizeof(drivers) / sizeof(usb_driver_config_t))
|
||||
|
||||
|
||||
/* ---------------------------------------------------------
|
||||
@@ -315,13 +319,13 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
|
||||
#ifdef NKRO_ENABLE
|
||||
usbInitEndpointI(usbp, NKRO_IN_EPNUM, &nkro_ep_config);
|
||||
#endif /* NKRO_ENABLE */
|
||||
for (int i=0;i<NUM_STREAM_DRIVERS;i++) {
|
||||
for (int i=0;i<NUM_USB_DRIVERS;i++) {
|
||||
usbInitEndpointI(usbp, drivers.array[i].config.bulk_in, &drivers.array[i].in_ep_config);
|
||||
usbInitEndpointI(usbp, drivers.array[i].config.bulk_out, &drivers.array[i].out_ep_config);
|
||||
if (drivers.array[i].config.int_in) {
|
||||
usbInitEndpointI(usbp, drivers.array[i].config.int_in, &drivers.array[i].int_ep_config);
|
||||
}
|
||||
sduConfigureHookI(&drivers.array[i].driver);
|
||||
qmkusbConfigureHookI(&drivers.array[i].driver);
|
||||
}
|
||||
osalSysUnlockFromISR();
|
||||
return;
|
||||
@@ -333,20 +337,20 @@ static void usb_event_cb(USBDriver *usbp, usbevent_t event) {
|
||||
case USB_EVENT_UNCONFIGURED:
|
||||
/* Falls into.*/
|
||||
case USB_EVENT_RESET:
|
||||
for (int i=0;i<NUM_STREAM_DRIVERS;i++) {
|
||||
for (int i=0;i<NUM_USB_DRIVERS;i++) {
|
||||
chSysLockFromISR();
|
||||
/* Disconnection event on suspend.*/
|
||||
sduSuspendHookI(&drivers.array[i].driver);
|
||||
qmkusbSuspendHookI(&drivers.array[i].driver);
|
||||
chSysUnlockFromISR();
|
||||
}
|
||||
return;
|
||||
|
||||
case USB_EVENT_WAKEUP:
|
||||
//TODO: from ISR! print("[W]");
|
||||
for (int i=0;i<NUM_STREAM_DRIVERS;i++) {
|
||||
for (int i=0;i<NUM_USB_DRIVERS;i++) {
|
||||
chSysLockFromISR();
|
||||
/* Disconnection event on suspend.*/
|
||||
sduWakeupHookI(&drivers.array[i].driver);
|
||||
qmkusbWakeupHookI(&drivers.array[i].driver);
|
||||
chSysUnlockFromISR();
|
||||
}
|
||||
suspend_wakeup_init();
|
||||
@@ -527,10 +531,10 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
for (int i=0;i<NUM_STREAM_DRIVERS;i++) {
|
||||
for (int i=0;i<NUM_USB_DRIVERS;i++) {
|
||||
if (drivers.array[i].config.int_in) {
|
||||
// NOTE: Assumes that we only have one serial driver
|
||||
return sduRequestsHook(usbp);
|
||||
return qmkusbRequestsHook(usbp);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -541,8 +545,8 @@ static bool usb_request_hook_cb(USBDriver *usbp) {
|
||||
static void usb_sof_cb(USBDriver *usbp) {
|
||||
kbd_sof_cb(usbp);
|
||||
osalSysLockFromISR();
|
||||
for (int i=0; i<NUM_STREAM_DRIVERS;i++) {
|
||||
sduSOFHookI(&drivers.array[i].driver);
|
||||
for (int i=0; i<NUM_USB_DRIVERS;i++) {
|
||||
qmkusbSOFHookI(&drivers.array[i].driver);
|
||||
}
|
||||
osalSysUnlockFromISR();
|
||||
}
|
||||
@@ -560,17 +564,13 @@ static const USBConfig usbcfg = {
|
||||
* Initialize the USB driver
|
||||
*/
|
||||
void init_usb_driver(USBDriver *usbp) {
|
||||
for (int i=0; i<NUM_STREAM_DRIVERS;i++) {
|
||||
SerialUSBDriver* driver = &drivers.array[i].driver;
|
||||
for (int i=0; i<NUM_USB_DRIVERS;i++) {
|
||||
QMKUSBDriver* driver = &drivers.array[i].driver;
|
||||
drivers.array[i].in_ep_config.in_state = &drivers.array[i].in_ep_state;
|
||||
drivers.array[i].out_ep_config.out_state = &drivers.array[i].out_ep_state;
|
||||
drivers.array[i].int_ep_config.in_state = &drivers.array[i].int_ep_state;
|
||||
sduObjectInit(driver);
|
||||
bqnotify_t notify = driver->ibqueue.notify;
|
||||
ibqObjectInit(&driver->ibqueue, false, drivers.array[i].queue_buffer_in, drivers.array[i].in_ep_config.in_maxsize, drivers.array[i].queue_capacity_in, notify, driver);
|
||||
notify = driver->obqueue.notify;
|
||||
ibqObjectInit(&driver->ibqueue, false, drivers.array[i].queue_buffer_out, drivers.array[i].out_ep_config.out_maxsize, drivers.array[i].queue_capacity_out, notify, driver);
|
||||
sduStart(driver, &drivers.array[i].config);
|
||||
qmkusbObjectInit(driver, &drivers.array[i].config);
|
||||
qmkusbStart(driver, &drivers.array[i].config);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user