Compare commits

...
12 Commits
Author SHA1 Message Date
Drashna Jaelre 54f1cdfb1e Add teensy revision folder for Orthodox Rev3 (#2510)
* Add Rev3 Teensy for Orthodox

* MOve bootloader defines into revision folders

* Finishing touches
2018-03-16 16:26:21 -04:00
Daniel Rodríguez Rivero a730cf6718 Create sendstring_spanish.h
This makes possible to use SEND_STRING with a spanish keyboard for almost all symbols except the ones that require ALT, which are documented on the code comments.
I am not adding any documentation because the functionality is not complete until a way to specify alted symbols is added.
2018-03-16 16:25:24 -04:00
Louis Orleans f139c3db8d layout(preonic): update to dudeofawesome's layout (#2507)
* 🎉 duplicate default Preonic keymap

* ✨ add Workman layout

* 🚚 swap backspace and delete

* ✨ enable hold enter for shift

* 🚚 swap media play and next

* 💄 use Planck startup sound

* 💄 add Workman layer sound

* ✨ add numpad layer

* 💄 add new workman sound

* 📝 add README

* 🎨 fix layout formatting

* 📝 add image of numpad layer

* 📦 changing chibios submodule version

to match upstream/master's version

* ✨ add caps lock key on adjust layer

* ✨ reworking numpad layer to match a real numpad

* ✨ add double tap to activate numpad

* 📝 fix layout comments

* 📝 update numpad layer render

* ✨ adding operator keys to left hand on numpad

* 🎨 shorten numpad keycodes

* 🎨 remove redundant breaks

* 📝 update numpad layer render

* 🎨 fix indentation

* 🔧 add rules file

* ✨🔊 play sound when switching to numpad layer

* 🔨 use userspace sounds
2018-03-16 16:22:33 -04:00
Louis Orleans 48321c3eee layout(infinity ergodox): update dudeofawesome's layout (#2506)
* 🎉 Building simple flasher

* 🎉 Flashing works

* 🎨 Cleaning up

* 🐛 Being more specific with board identity

* 🐛 Flashing correct keymap

* 🎉 Adding keymap

* ✨ Updating keymap

* 🚨 RGB

* ⏪ Revert "🚨 RGB"

This reverts commit 9ceabfb267f8daedaad929231229c703abc12ec4.

* ✨ Improvements to flasher

* ✨ Layout tweaks

* 💄 Messing around with LCD

* 💄 Enabling LCD backlight matching

* 🔧 Updating layout

* 🐛 Fixing console logging

* 🎨 Cleaning up indentation

* 🔧 Adding editorconfig

* ✨ Adding game layer

* 💄 Changing numpad layout

* ✨🔥 redoing entire layout

It's now more similar to the Planck default layout

* ✨ add workman and dvorak layouts

* 🐛 fix numpad

* 🐛 fix layer orders

* 🐛 fix layer toggling

* 🐛 fix tri-layer switching

* 🐛 fix LCD colors for adjustment layers

* 🔥 remove old flasher project

* 🔥 remove simple_visualizer

* 💄 update LCD colors

* 📝 fix layout comments

* 💄  swapping 2u buttons

* 🔥🔧 removing editorconfig

* 🚨 using 2 spaces

* 📝 add README

* ⏪ Revert "💄 Enabling LCD backlight matching"

This reverts commit 51577903dfdc9fea5d33e9ab8cfa9b854e7ae19e.

* ⏪ Revert "💄 Messing around with LCD"

This reverts commit fdd9acdae514a3e0e4a7153225053680744980e5.

* 🐛 fix thumb inconsistency in QWERTY

* 🐛 fix media keys

* ✨ add F# shortcuts to vertical 1.5u buttons

* ✨ hold enter for RShift

* ✨ hold for numpad

* 🎨 remove unnecessary breaks

* 🎨 reoganizing layers

* ✨ add Colmak layer

* 🚧🔧 add basic config

* ✨ use more standard numpad layout

* 💄 change layer orders

* ✨ add caps lock on adjust layer

* 🔥 disable space cadet

* 📝 update README

* 🔨 use userspace config

* 🎨 clean up a bit

* 🐛 undefine tapping toggle from base config

* 🔨 rename LED functions
2018-03-16 16:21:22 -04:00
lucwastiaux e424944a57 update to Ergodox / Atreus Dvorak 42 key layouts (#2504)
* add SCREEN_NAV layer for copy/pasting within screen

* working readreg/paste macros

* working read reg / paste macros

* write log and tran patterns, and expand

* add ls -la shortcut, add tab on combined layer

* put delete word on the right pinky key on shell_nav layer

* add TAB on the right side, add reset key

* added Cloud9 macros

* add cloud9 shortcuts to atreus layout

* added BROWSER_CONTROL layer

* finalized browser control layer

* adding comment

* add browser control layer to atreus

* add flashing command line

* remove the tab on combined layer
2018-03-16 16:21:00 -04:00
Nicola Gargagli 4658786436 Add italian keymap 2018-03-16 16:20:40 -04:00
Brian Choromanski 6c74d734c2 Fixed various keymaps and the allocation of "key_combos" (#2526)
* Fixed plank keymaps so that they will compile for planck light

* tv44:budi now compiles

* s60_x:amnesia0287 now compiles

* Fixed allocation of key_combos so that narze keymap for planck can compile correctly

* Disabled rgb on ergodone and infinity

* Enabled tap dance so it compiles

* Added return statement so it compiles

* If compiling on light disable extra functionality

* Properly redefined variable so it compiles
2018-03-16 16:20:09 -04:00
U-LANDSRAAD\drashna ad1a868701 Move Narze keymap into Ergodox Infinity folder 2018-03-14 22:01:52 -04:00
U-LANDSRAAD\drashna 9db908f7d1 Fix Preonic layout 2018-03-14 21:54:33 -04:00
ajp10304 added1f062 Planck ajp10304 (#2519)
* Planck ajp10304 layout clean up

* Planck ajp10304 layout add Mac layer extensions

* JJ40 ajp10304 layout add Mac layer extensions
2018-03-13 02:22:35 -04:00
uplus e8e999dcc0 Fix preonic/rev2 bootloader config 2018-03-13 02:22:10 -04:00
Brian Choromanski 4464d90f4d Fixed plank keymaps so that they will compile for planck light 2018-03-13 02:21:18 -04:00
56 changed files with 1022 additions and 299 deletions

No files matched your search

@@ -7,6 +7,7 @@
#define KEYSEL 2 #define KEYSEL 2
#define MOUSE 3 #define MOUSE 3
#define COMBINED 4 #define COMBINED 4
#define BROWSER_CONTROL 5
// macros // macros
#define MOUSE_TOGGLE 1 #define MOUSE_TOGGLE 1
@@ -39,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, }, {KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_TRNS, KC_F, KC_G, KC_C, KC_R, KC_L, },
{KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, }, {KC_A, KC_O, KC_E, KC_U, KC_I, KC_TRNS, KC_D, KC_H, KC_T, KC_N, KC_S, },
{KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(KEYNAV), KC_B, KC_M, KC_W, KC_V, KC_Z, }, {KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MO(KEYNAV), KC_B, KC_M, KC_W, KC_V, KC_Z, },
{OSM(MOD_LSFT), OSM(MOD_LCTL), M(MOUSE_TOGGLE), MO(KEYSEL), MO(COMBINED), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT), } {OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT), }
}, },
[KEYNAV] = { [KEYNAV] = {
@@ -70,6 +71,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{KC_TRNS, M(MOUSE_LOCK), KC_TRNS, KC_MS_ACCEL0, KC_TRNS, KC_BTN1, KC_BTN2, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), } {KC_TRNS, M(MOUSE_LOCK), KC_TRNS, KC_MS_ACCEL0, KC_TRNS, KC_BTN1, KC_BTN2, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), RCTL(KC_T), LALT(KC_LEFT), }
}, },
[BROWSER_CONTROL] = {
{KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, },
{KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), },
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, },
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RCTL(KC_W), RCTL(KC_T), RSFT(RCTL(KC_TAB)), KC_TRNS, KC_TRNS, KC_TRNS, }
},
}; };
+7 -8
View File
@@ -9,6 +9,12 @@
#define _______ KC_TRNS #define _______ KC_TRNS
enum {
TD_SPC_ENT = 0,
TD_KC_LSFT_CAPS,
TD_KC_RSFT_CAPS
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* /*
@@ -49,7 +55,7 @@ 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_LBRC, KC_RBRC, KC_BSLS, \ 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_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_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TO(_L1), \ KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, TO(_L1), \
KC_LCTL, KC_LGUI, KC_LALT, TD(LT(_L3,KC_SPACE)),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, TO(_L2), KC_LEFT, KC_DOWN, KC_RIGHT), KC_LCTL, KC_LGUI, KC_LALT, LT(_L3,KC_SPACE),BL_TOGG,TD(TD_SPC_ENT), KC_RGUI, TO(_L2), KC_LEFT, KC_DOWN, KC_RIGHT),
/* Keymap _L1: (Layer 1) This is function layer 1 /* Keymap _L1: (Layer 1) This is function layer 1
* This layer is activated while the Fn key is being held down. * This layer is activated while the Fn key is being held down.
@@ -121,13 +127,6 @@ void matrix_scan_user(void) {
// Empty // Empty
}; };
//Tap Dance Declarations
enum {
TD_SPC_ENT = 0,
TD_KC_LSFT_CAPS = 0,
TD_KC_RSFT_CAPS = 0
};
//Tap Dance Definitions //Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = { qk_tap_dance_action_t tap_dance_actions[] = {
+1
View File
@@ -55,3 +55,4 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE = no AUDIO_ENABLE = no
RGBLIGHT_ENABLE = yes RGBLIGHT_ENABLE = yes
AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted AUTO_SHIFT_ENABLE = yes # If the time depressed is greater than or equal to the AUTO_SHIFT_TIMEOUT, then a shifted version of the key is emitted. If the time is less than the AUTO_SHIFT_TIMEOUT time, then the normal state is emitted
TAP_DANCE_ENABLE = yes
@@ -6,6 +6,8 @@
// to build this keymap // to build this keymap
// make ergodox_ez:dvorak_42_key:teensy // make ergodox_ez:dvorak_42_key:teensy
// flashing from rpi:
// sudo teensy_loader_cli -v -w .build/ergodox_ez_dvorak_42_key.hex --mcu atmega32u4
// keeping fork up to date: // keeping fork up to date:
// https://help.github.com/articles/configuring-a-remote-for-a-fork/ // https://help.github.com/articles/configuring-a-remote-for-a-fork/
@@ -317,7 +319,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// thumb cluster // thumb cluster
KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,KC_TRNS,KC_TAB), KC_TRNS,KC_TRNS,KC_TRNS),
[MOUSE] = KEYMAP( [MOUSE] = KEYMAP(
@@ -2,14 +2,19 @@
A basic ErgoDox layout with Planck-like tri-layer support. A basic ErgoDox layout with Planck-like tri-layer support.
![ErgoDox Layout](https://i.imgur.com/9zfKPV7.png) ![ErgoDox Layout](https://i.imgur.com/ae0Phzb.png)
## Features ## Features
- Base Layers
- QWERTY
- Workman
- Dvorak
- Colemak
- Planck-like tri-layer - Planck-like tri-layer
- Workman layout
- In-progress gaming layer - In-progress gaming layer
- Numpad - Numpad layer
![numpad layer](https://i.imgur.com/oHDYpzf.png)
- LCD colors are linked together, like the default KLL firmware - LCD colors are linked together, like the default KLL firmware
## Building and flashing ## Building and flashing
@@ -0,0 +1,11 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#undef TAPPING_TOGGLE
#include "../../config.h"
#include "dudeofawesome.h"
#include "./visualizer.h"
#endif
@@ -4,40 +4,41 @@
#include "version.h" #include "version.h"
enum custom_layers { enum custom_layers {
_QWERTY, _QWERTY,
_DVORAK, _WORKMAN,
_WORKMAN, _DVORAK,
_GAME, _COLEMAK,
_MOUSE, _LOWER,
_NUM, _RAISE,
_LOWER, _ADJUST,
_RAISE, _GAME,
_ADJUST, _MOUSE,
_NUM,
}; };
enum custom_keycodes { enum custom_keycodes {
QWERTY = SAFE_RANGE, QWERTY = SAFE_RANGE,
DVORAK, WORKMAN,
WORKMAN, DVORAK,
LOWER, COLEMAK,
RAISE, LOWER,
GAME, RAISE,
MOUSE, GAME,
NUM, MOUSE,
EPRM, EPRM,
VRSN, VRSN,
RGB_SLD RGB_SLD,
}; };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic QWERTY layer /* Keymap 0: Basic QWERTY layer
* *
* ,---------------------------------------------. ,---------------------------------------------. * ,---------------------------------------------. ,---------------------------------------------.
* | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
* |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
* | Tab | Q | W | E | R | T | [{ | | ]} | Y | U | I | O | P | BSPC | * | Tab | Q | W | E | R | T | [{ | | ]} | Y | U | I | O | P | BSPC |
* |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
* | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | '" | * | ESC | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Enter | * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Enter |
* `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------' * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
@@ -53,32 +54,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_QWERTY] = LAYOUT_ergodox( [_QWERTY] = LAYOUT_ergodox(
// left hand // left hand
KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRACKET, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRACKET,
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1,
TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
KC_MPLY, TG(_MOUSE), KC_MPLY, TG(_MOUSE),
KC_LALT, KC_LALT,
LOWER, KC_BSPACE, KC_LGUI, KC_BSPACE, LOWER, KC_LGUI,
// right hand // right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_RBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE, KC_RBRACKET, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPACE,
KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE, KC_H, KC_J, KC_K, KC_L, KC_SCOLON, KC_QUOTE,
KC_FN1, KC_N, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), KC_ENTER, KC_FN1, KC_N, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
TG(_NUM), TG(_MOUSE), TT(_NUM), TG(_MOUSE),
KC_LALT, KC_LALT,
KC_LGUI, KC_SPACE, RAISE KC_LGUI, RAISE, KC_SPACE
),
/* Keymap 0: Basic Workman layer
*
* ,---------------------------------------------. ,--------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
* |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
* | Tab | Q | D | R | W | B | [{ | | ]} | J | F | U | P | ; | BSPC |
* |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
* | ESC | A | S | H | T | G |------| |------| Y | N | E | O | I | ' |
* |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------|
* | LShift | Z | X | M | C | V | | | | K | L | , | . | / | Enter |
* `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
* | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
* `------------------------------' `------------------------------'
* ,------------. ,------------.
* |Play |Mouse | | Num |Mouse|
* ,----|-----|------| |------+-----+-----.
* | | | Alt | | Alt | | |
* |BSPC|LOWER|------| |------|RAISE|Space|
* | | | LGUI | | LGUI | | |
* `-----------------' `------------------'
*/
[_WORKMAN] = LAYOUT_ergodox(
// left hand
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_LBRACKET,
KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G,
KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_FN1,
TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
KC_MPLY, TG(_MOUSE),
KC_LALT,
KC_BSPACE, LOWER, KC_LGUI,
// right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_RBRACKET, KC_J, KC_F, KC_U, KC_P, KC_SCOLON, KC_BSPACE,
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE,
KC_FN1, KC_K, KC_L, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
TT(_NUM), TG(_MOUSE),
KC_LALT,
KC_LGUI, RAISE, KC_SPACE
), ),
/* Keymap 0: Basic Dvorak layer /* Keymap 0: Basic Dvorak layer
* *
* ,---------------------------------------------. ,--------------------------------------------. * ,---------------------------------------------. ,--------------------------------------------.
* | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
* |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
* | Tab | ' | , | . | P | Y | [{ | | ]} | F | G | C | R | L | BSPC | * | Tab | ' | , | . | P | Y | [{ | | ]} | F | G | C | R | L | BSPC |
* |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
@@ -98,38 +144,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_DVORAK] = LAYOUT_ergodox( [_DVORAK] = LAYOUT_ergodox(
// left hand // left hand
KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRACKET, KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRACKET,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I,
KC_LSPO, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_FN1, KC_LSFT, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_FN1,
TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
KC_MPLY, TG(_MOUSE), KC_MPLY, TG(_MOUSE),
KC_LALT, KC_LALT,
KC_BSPACE, LOWER, KC_LGUI, KC_BSPACE, LOWER, KC_LGUI,
// right hand // right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPACE, KC_RBRACKET, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPACE,
KC_D, KC_H, KC_T, KC_N, KC_S, LT(MOUSE, KC_SLSH), KC_D, KC_H, KC_T, KC_N, KC_S, LT(MOUSE, KC_SLSH),
KC_FN1, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENTER, KC_FN1, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_ENT),
RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
TG(_NUM), TG(_MOUSE), TT(_NUM), TG(_MOUSE),
KC_LALT, KC_LALT,
KC_LGUI, RAISE, KC_SPACE KC_LGUI, RAISE, KC_SPACE
), ),
/* Keymap 0: Basic Workman layer /* Keymap 0: Basic Colemak layer
* *
* ,---------------------------------------------. ,--------------------------------------------. * ,---------------------------------------------. ,--------------------------------------------.
* | - | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | = | * | ` | 1 | 2 | 3 | 4 | 5 | Esc | | Esc | 6 | 7 | 8 | 9 | 0 | Del |
* |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+------------| |------+-----+-----+-----+-----+-----+--------|
* | Tab | Q | D | R | W | B | [{ | | ]} | J | F | U | P | ; | BSPC | * | Tab | Q | W | F | P | G | [{ | | ]} | J | L | U | Y | ; | BSPC |
* |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+-----| | | |-----+-----+-----+-----+-----+--------|
* | ESC | A | S | H | T | G |------| |------| Y | N | E | O | I | '" | * | ESC | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
* |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------| * |--------+-----+-----+-----+-----+-----| L1 | | L1 |-----+-----+-----+-----+-----+--------|
* | LShift | Z | X | M | C | V | | | | K | L | , | . | / | Enter | * | LShift | Z | X | C | V | B | | | | K | M | , | . | / | Enter |
* `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------' * `--------+-----+-----+-----+-----+------------' `------------+-----+-----+-----+-----+--------'
* | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right | * | Num |Ctrl | Alt |LGUI |Lower| |Raise|Left |Down | Up |Right |
* `------------------------------' `------------------------------' * `------------------------------' `------------------------------'
@@ -141,28 +187,28 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | LGUI | | LGUI | | | * | | | LGUI | | LGUI | | |
* `-----------------' `------------------' * `-----------------' `------------------'
*/ */
[_WORKMAN] = LAYOUT_ergodox( [_COLEMAK] = LAYOUT_ergodox(
// left hand // left hand
KC_MINUS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_ESC,
KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_LBRACKET, KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRACKET,
KC_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D,
KC_LSPO, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_FN1, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_FN1,
TG(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER, TT(_NUM), KC_LCTL, KC_LALT, KC_LGUI, LOWER,
KC_MPLY, TG(_MOUSE), KC_MPLY, TG(_MOUSE),
KC_LALT, KC_LALT,
KC_BSPACE, LOWER, KC_LGUI, KC_BSPACE, LOWER, KC_LGUI,
// right hand // right hand
KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, KC_ESC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_RBRACKET, KC_J, KC_F, KC_U, KC_P, KC_SCOLON, KC_BSPACE, KC_RBRACKET, KC_J, KC_L, KC_U, KC_Y, KC_SCOLON, KC_BSPACE,
KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOTE, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOTE,
KC_FN1, KC_K, KC_L, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), KC_ENTER, KC_FN1, KC_K, KC_M, KC_COMM, KC_DOT, LT(_MOUSE, KC_SLSH), RSFT_T(KC_ENT),
RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,
NUM, TG(_MOUSE), TT(_NUM), TG(_MOUSE),
KC_LALT, KC_LALT,
KC_LGUI, RAISE, KC_SPACE KC_LGUI, RAISE, KC_SPACE
), ),
/* Lower /* Lower
@@ -176,7 +222,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------| * |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
* | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | Home | End | | * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO ~ |ISO | | Home | End | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | Next | Vol- | Vol+ | Play | * | | | | | | | | Play | Vol- | Vol+ | Next |
* `-----------------------------------' `----------------------------------' * `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* |Animat| | |Toggle|Solid | * |Animat| | |Toggle|Solid |
@@ -189,9 +235,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_ergodox( [_LOWER] = LAYOUT_ergodox(
// left hand // left hand
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_F6,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
@@ -199,11 +245,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
// right hand // right hand
KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, KC_F5, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
_______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT,
_______, _______, _______, _______,
_______, _______,
@@ -221,7 +267,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------| * |---------+------+------+------+------+------| L2 | | L2 |------+------+------+------+------+--------|
* | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / |Pg Up |Pg Dn | | * | | F7 | F8 | F9 | F10 | F11 | | | | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | Next | Vol- | Vol+ | Play | * | | | | | | | | Play | Vol- | Vol+ | Next |
* `-----------------------------------' `----------------------------------' * `-----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* |Animat| | |Toggle|Solid | * |Animat| | |Toggle|Solid |
@@ -234,9 +280,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_RAISE] = LAYOUT_ergodox( [_RAISE] = LAYOUT_ergodox(
// left hand // left hand
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F6,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
@@ -244,11 +290,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
// right hand // right hand
KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_F5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
_______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, KC_MPLY, KC_VOLD, KC_VOLU, KC_MNXT,
_______, _______, _______, _______,
_______, _______,
@@ -262,7 +308,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | |Reset |Debug | | | | | | | |TRM on|TRMoff| | | Del | * | |Reset |Debug | | | | | | | |TRM on|TRMoff| | | Del |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | |AG Nrm|------| |------|AG Swp|QWERTY|Wrkman|Dvorak| | | * | CPSLCK | | | | |AG Nrm|------| |------|AG Swp|QWERTY|Wrkman|Dvorak| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | | * | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -280,7 +326,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand // left hand
VRSN, _______, _______, _______, _______, _______, _______, VRSN, _______, _______, _______, _______, _______, _______,
_______, RESET, DEBUG, _______, _______, _______, _______, _______, RESET, DEBUG, _______, _______, _______, _______,
_______, _______, _______, _______, _______, AG_NORM, KC_CAPS, _______, _______, _______, _______, AG_NORM,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -291,7 +337,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// right hand // right hand
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL, _______, _______, TERM_ON, TERM_OFF, _______, _______, KC_DEL,
AG_SWAP, QWERTY, WORKMAN, DVORAK, _______, _______, AG_SWAP, QWERTY, WORKMAN, DVORAK, COLEMAK, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -386,24 +432,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
TG(_MOUSE), TG(_NUM), TG(_MOUSE), TT(_NUM),
_______, _______,
_______, _______, _______ _______, _______, _______
), ),
/* Keymap 2: NUMPAD /* Keymap 2: NUMPAD
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | | * | | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | | ✗ | ✗ | ✗ | / | * | - | |
* |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | | 7 | 8 | 9 | * | | * | | ✗ | Home | Up | End | PgUp | | | | ✗ | 7 | 8 | 9 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| | 4 | 5 | 6 | + | | * | | ✗ | Left | Down | Right| PgDn |------| |------| ✗ | 4 | 5 | 6 | + | ✗ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | | 1 | 2 | 3 | \ | | * | | / | * | - | + | Enter| | | | ✗ | 1 | 2 | 3 | Enter| Enter |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | . | 0 | 0 | = | | * | | | | | ✗ | | 0 | 0 | . | Enter| = |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | | |
@@ -415,22 +460,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_NUM] = LAYOUT_ergodox( [_NUM] = LAYOUT_ergodox(
// left hand // left hand
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO,
_______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, _______, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN,
_______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, KC_PENT, KC_NO,
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_NO,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______,
// right hand // right hand
KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_NO, KC_NO, KC_NO, KC_PSLS, KC_PAST, KC_PMNS, _______,
_______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_KP_ASTERISK, _______, KC_NO, KC_NO, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
_______, KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_PLUS, _______, KC_NO, KC_P4, KC_P5, KC_P6, KC_PPLS, KC_NO,
_______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_SLASH, _______, KC_NO, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_PENT,
KC_KP_DOT, KC_KP_0, KC_KP_0, KC_KP_EQUAL, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_PEQL,
_______, _______, _______, _______,
_______, _______,
@@ -444,15 +489,15 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
// MACRODOWN only works in this function // MACRODOWN only works in this function
switch(id) { switch(id) {
case 0: case 0:
if (record->event.pressed) { if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
} }
break; break;
case 1: case 1:
if (record->event.pressed) { // For resetting EEPROM if (record->event.pressed) { // For resetting EEPROM
eeconfig_init(); eeconfig_init();
} }
break; break;
} }
return MACRO_NONE; return MACRO_NONE;
}; };
@@ -461,23 +506,24 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case QWERTY: case QWERTY:
if (record->event.pressed) { if (record->event.pressed) {
print("mode just switched to qwerty and this is a huge string\n");
set_single_persistent_default_layer(_QWERTY); set_single_persistent_default_layer(_QWERTY);
} }
return false; return false;
break;
case WORKMAN: case WORKMAN:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_WORKMAN); set_single_persistent_default_layer(_WORKMAN);
} }
return false; return false;
break;
case DVORAK: case DVORAK:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK); set_single_persistent_default_layer(_DVORAK);
} }
return false; return false;
break; case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case LOWER: case LOWER:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_LOWER); layer_on(_LOWER);
@@ -494,7 +540,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
} }
return false; return false;
break;
case RAISE: case RAISE:
if (record->event.pressed) { if (record->event.pressed) {
layer_on(_RAISE); layer_on(_RAISE);
@@ -511,19 +556,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
} }
} }
return false; return false;
break;
case EPRM: case EPRM:
if (record->event.pressed) { if (record->event.pressed) {
eeconfig_init(); eeconfig_init();
} }
return false; return false;
break;
case VRSN: case VRSN:
if (record->event.pressed) { if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION); SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
} }
return false; return false;
break;
case RGB_SLD: case RGB_SLD:
if (record->event.pressed) { if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE #ifdef RGBLIGHT_ENABLE
@@ -531,7 +573,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#endif #endif
} }
return false; return false;
break;
} }
return true; return true;
} }
@@ -550,19 +591,19 @@ void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state); uint8_t layer = biton32(layer_state);
ergodox_board_led_off(); ergodox_board_led_off();
ergodox_right_led_1_off(); ergodox_led_lower_off();
ergodox_right_led_2_off(); ergodox_led_raise_off();
ergodox_right_led_3_off(); ergodox_led_adjust_off();
switch (layer) { switch (layer) {
case _LOWER: case _LOWER:
ergodox_right_led_1_on(); ergodox_led_lower_on();
break; break;
case _RAISE: case _RAISE:
ergodox_right_led_2_on(); ergodox_led_raise_on();
break; break;
case _ADJUST: case _ADJUST:
ergodox_right_led_3_on(); ergodox_led_adjust_on();
break; break;
} }
}; };
@@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#error This visualizer needs that LCD is enabled #error This visualizer needs that LCD is enabled
#endif #endif
#include "visualizer.h" #include "./visualizer.h"
#include "visualizer_keyframes.h" #include "visualizer_keyframes.h"
#include "lcd_keyframes.h" #include "lcd_keyframes.h"
#include "lcd_backlight_keyframes.h" #include "lcd_backlight_keyframes.h"
@@ -295,17 +295,17 @@ void ergodox_board_led_on(void){
// No board led support // No board led support
} }
void ergodox_right_led_1_on(void){ void ergodox_led_lower_on(void){
user_data_keyboard.led_on |= (1u << 0); user_data_keyboard.led_on |= (1u << 0);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_2_on(void){ void ergodox_led_raise_on(void){
user_data_keyboard.led_on |= (1u << 1); user_data_keyboard.led_on |= (1u << 1);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_3_on(void){ void ergodox_led_adjust_on(void){
user_data_keyboard.led_on |= (1u << 2); user_data_keyboard.led_on |= (1u << 2);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
@@ -314,32 +314,32 @@ void ergodox_board_led_off(void){
// No board led support // No board led support
} }
void ergodox_right_led_1_off(void){ void ergodox_led_lower_off(void){
user_data_keyboard.led_on &= ~(1u << 0); user_data_keyboard.led_on &= ~(1u << 0);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_2_off(void){ void ergodox_led_raise_off(void){
user_data_keyboard.led_on &= ~(1u << 1); user_data_keyboard.led_on &= ~(1u << 1);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_3_off(void){ void ergodox_led_adjust_off(void){
user_data_keyboard.led_on &= ~(1u << 2); user_data_keyboard.led_on &= ~(1u << 2);
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_1_set(uint8_t n) { void ergodox_led_lower_set(uint8_t n) {
user_data_keyboard.led1 = n; user_data_keyboard.led1 = n;
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_2_set(uint8_t n) { void ergodox_led_raise_set(uint8_t n) {
user_data_keyboard.led2 = n; user_data_keyboard.led2 = n;
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
void ergodox_right_led_3_set(uint8_t n) { void ergodox_led_adjust_set(uint8_t n) {
user_data_keyboard.led3 = n; user_data_keyboard.led3 = n;
visualizer_set_user_data(&user_data_keyboard); visualizer_set_user_data(&user_data_keyboard);
} }
@@ -0,0 +1,35 @@
/* Copyright 2017 Fred Sundvik
*
* 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 VISUALIZER_H_
#define VISUALIZER_H_
#include "visualizer.h"
#include "led.h"
void ergodox_led_lower_on (void);
void ergodox_led_raise_on (void);
void ergodox_led_adjust_on (void);
void ergodox_led_lower_off (void);
void ergodox_led_raise_off (void);
void ergodox_led_adjust_off (void);
void ergodox_led_lower_set (uint8_t n);
void ergodox_led_raise_set (uint8_t n);
void ergodox_led_adjust_set (uint8_t n);
#endif /* VISUALIZER_H_ */
+89 -17
View File
@@ -5,22 +5,28 @@
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. enum jj40_layers {
// The underscores don't mean anything - you can have a layer called STUFF or any other name. _QWERTY,
// Layer names don't all need to be of the same length, obviously, and you can also skip them _MAC,
// entirely and just use numbers. _LOWER,
#define _QWERTY 0 _MLWR,
#define _LOWER 1 _RAISE,
#define _RAISE 2 _MRSE,
#define _FUNC 3 _FUNC,
#define _ADJUST 16 _MFNC,
#define _DYN 6 _ADJUST,
_DYN
};
enum planck_keycodes { enum jj40_keycodes {
QWERTY = SAFE_RANGE, QWERTY = SAFE_RANGE,
MAC,
FUNC, FUNC,
MFNC,
LOWER, LOWER,
MLWR,
RAISE, RAISE,
MRSE,
DYNAMIC_MACRO_RANGE DYNAMIC_MACRO_RANGE
}; };
@@ -117,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------'
*/ */
[_ADJUST] = KEYMAP(\ [_ADJUST] = KEYMAP(\
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\ M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\ KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\ TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \ _______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
), ),
/* DYN: Macro Recording and Playback /* DYN: Macro Recording and Playback
@@ -139,11 +145,38 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\ _______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
),
[_MAC]= KEYMAP(\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______\
),
[_MLWR] = KEYMAP(\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
),
[_MRSE] = KEYMAP(\
_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) ,\
_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
),
[_MFNC]= KEYMAP(\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) ,\
_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ ,\
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
) )
}; };
void persistant_default_layer_set(uint16_t default_layer) { void persistant_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer); eeconfig_update_default_layer(default_layer);
default_layer_set(default_layer); default_layer_set(default_layer);
@@ -179,10 +212,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
update_tri_layer(_LOWER, _RAISE, _ADJUST); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
return false; return false;
} case MLWR:
if (record->event.pressed) {
layer_on(_LOWER);
layer_on(_MLWR);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
layer_off(_MLWR);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case MRSE:
if (record->event.pressed) {
layer_on(_RAISE);
layer_on(_MRSE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
layer_off(_MRSE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case MFNC:
if (record->event.pressed) {
layer_on(_FUNC);
layer_on(_MFNC);
} else {
layer_off(_FUNC);
layer_off(_MFNC);
}
return false;
}
return true; return true;
} }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) { switch(id) {
// These would trigger when you hit a key mapped as M(0) // These would trigger when you hit a key mapped as M(0)
@@ -201,6 +266,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
END 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
);
}
} }
return MACRO_NONE; return MACRO_NONE;
}; };
+3 -1
View File
@@ -66,12 +66,14 @@ Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
* Reset: Enter bootloader for flashing firmware to the keyboard. * Reset: Enter bootloader for flashing firmware to the keyboard.
* CAPS: Toggle caps lock. * CAPS: Toggle caps lock.
* DYN: Enter `DYN` layer. * 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.
| | | | | | | | | | | | | | | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | | | | | | | Del | | ???? | Reset|Qwerty| | | | | | | | | Del |
| CAPS | | | | | | | Mute | Vol+ | Play | | | | CAPS | | | | | | | Mute | Vol+ | Play | | |
| | | | | | | | Prev | Vol- | Next | | | | MAC | | | | | | | Prev | Vol- | Next | | |
| | | | | | | | | DYN | | | | | | | | | | | | | DYN | | | |
##### DYN ##### DYN
@@ -117,6 +117,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
//keyevent_t event = record->event; //keyevent_t event = record->event;
/*KNOPS_MACRO*/ /*KNOPS_MACRO*/
return NULL;
} }
@@ -134,6 +135,8 @@ bool process_record_user (uint16_t keycode, keyrecord_t *record) {
/*KNOPS_PROCESS_STATE*/ /*KNOPS_PROCESS_STATE*/
return NULL;
} }
+4 -1
View File
@@ -5,7 +5,10 @@
#include "rev1.h" #include "rev1.h"
#endif #endif
#ifdef KEYBOARD_orthodox_rev3 #ifdef KEYBOARD_orthodox_rev3
#include "rev3.h" #include "rev3.h"
#endif
#ifdef KEYBOARD_orthodox_rev3_teensy
#include "rev3_teensy.h"
#endif #endif
// Used to create a keymap using only KC_ prefixed keys // Used to create a keymap using only KC_ prefixed keys
+1 -6
View File
@@ -45,11 +45,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { D7, F4, F5, F6, F7, B1, B3, B2, B6 } #define MATRIX_COL_PINS { D7, F4, F5, F6, F7, B1, B3, B2, B6 }
//#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4, D7 } //#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4, D7 }
/*/
//TEENSY
#define MATRIX_ROW_PINS { D0, C6, C7, }
#define MATRIX_COL_PINS { D2, F5, F6, F7, B6, B5, B4, D7, D6 }
/*/
/* COL2ROW or ROW2COL */ /* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
@@ -70,7 +65,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key combination for command */ /* key combination for command */
#define IS_COMMAND() ( \ #define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \
) )
/* ws2812 RGB LED */ /* ws2812 RGB LED */
+1
View File
@@ -1 +1,2 @@
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
BOOTLOADER = caterina
+1 -1
View File
@@ -70,7 +70,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* key combination for command */ /* key combination for command */
#define IS_COMMAND() ( \ #define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \
) )
/* ws2812 RGB LED */ /* ws2812 RGB LED */
+1
View File
@@ -1 +1,2 @@
BACKLIGHT_ENABLE = no BACKLIGHT_ENABLE = no
BOOTLOADER = caterina
+93
View File
@@ -0,0 +1,93 @@
/*
This is the c configuration file for the subproject
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
Copyright 2017 Art Ortenburger
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 REV3_TEENSY_CONFIG_H
#define REV3_TEENSY_CONFIG_H
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3060
#define DEVICE_VER 0x0001
#define MANUFACTURER deductivemonkee
#define PRODUCT Monkeebs Orthodox Rev.3 (Teensy)
#define DESCRIPTION Bananadox
/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 6
#define MATRIX_COLS 9
// wiring of each half
//REV.3 TEENSY
#define MATRIX_ROW_PINS { B0, C6, C7, }
#define MATRIX_COL_PINS { D2, F5, F6, D6, D7, B4, B5, B6, F7 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
/* number of backlight levels */
// #define BACKLIGHT_LEVELS 3
/* Set 0 if debouncing isn't needed */
#define DEBOUNCING_DELAY 5
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
// #define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
// #define LOCKING_RESYNC_ENABLE
/* key combination for command */
#define IS_COMMAND() ( \
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_LGUI)) \
)
/* ws2812 RGB LED */
//#define RGB_DI_PIN D3
//#define RGBLIGHT_TIMER
//#define RGBLED_NUM 16 // Number of LEDs
//#define ws2812_PORTREG PORTD
//#define ws2812_DDRREG DDRD
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
// #define NO_DEBUG
/* disable print */
// #define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
#endif
@@ -0,0 +1,35 @@
/*
This is the source file for the subproject
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
Copyright 2017 Art Ortenburger
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "orthodox.h"
void matrix_init_kb(void) {
//// // green led on
//// DDRD |= (1<<5);
//// PORTD &= ~(1<<5);
//// // orange led on
//// DDRB |= (1<<0);
//// PORTB &= ~(1<<0);
matrix_init_user();
};
@@ -0,0 +1,47 @@
/*
This is the header file for the subproject
Copyright 2012 Jun Wako <[email protected]>
Copyright 2015 Jack Humbert
Copyright 2017 Art Ortenburger
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 REV3_TEENSY_H
#define REV3_TEENSY_H
#include "orthodox.h"
//void promicro_bootloader_jmp(bool program);
#include "quantum.h"
//void promicro_bootloader_jmp(bool program);
#define KEYMAP( \
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
L10, L11, L12, L13, L14, L15, L16, L18, R10, R12, R13, R14, R15, R16, R17, R18, \
L20, L21, L22, L23, L24, L25, L26, L27, L28, R20, R21, R22, R23, R24, R25, R26, R27, R28 \
) \
{ \
{ L00, L01, L02, L03, L04, L05 }, \
{ L10, L11, L12, L13, L14, L15, L16, KC_NO, L18}, \
{ L20, L21, L22, L23, L24, L25, L26, L27, L28 }, \
{ R05, R04, R03, R02, R01, R00 }, \
{ R18, R17, R16, R15, R14, R13, R12, KC_NO, R10 }, \
{ R28, R27, R26, R25, R24, R23, R22, R21, R20 } \
}
#endif
+2
View File
@@ -0,0 +1,2 @@
BACKLIGHT_ENABLE = no
BOOTLOADER = halfkay
-2
View File
@@ -4,7 +4,6 @@ SRC += matrix.c \
serial.c serial.c
# MCU name # MCU name
#MCU = at90usb1287
MCU = atmega32u4 MCU = atmega32u4
# Processor frequency. # Processor frequency.
@@ -43,7 +42,6 @@ F_USB = $(F_CPU)
# This definition is optional, and if your keyboard supports multiple bootloaders of # This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded # different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options. # automatically (+60). See bootloader.mk for all options.
BOOTLOADER = caterina
# Interrupt driven control endpoint task(+60) # Interrupt driven control endpoint task(+60)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+89 -16
View File
@@ -5,22 +5,28 @@
extern keymap_config_t keymap_config; extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below. enum planck_layers {
// The underscores don't mean anything - you can have a layer called STUFF or any other name. _QWERTY,
// Layer names don't all need to be of the same length, obviously, and you can also skip them _MAC,
// entirely and just use numbers. _LOWER,
#define _QWERTY 0 _MLWR,
#define _LOWER 1 _RAISE,
#define _RAISE 2 _MRSE,
#define _FUNC 3 _FUNC,
#define _ADJUST 16 _MFNC,
#define _DYN 6 _ADJUST,
_DYN
};
enum planck_keycodes { enum planck_keycodes {
QWERTY = SAFE_RANGE, QWERTY = SAFE_RANGE,
MAC,
FUNC, FUNC,
MFNC,
LOWER, LOWER,
MLWR,
RAISE, RAISE,
MRSE,
DYNAMIC_MACRO_RANGE DYNAMIC_MACRO_RANGE
}; };
@@ -117,10 +123,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------------------------------------------------' * `-----------------------------------------------------------------------------------'
*/ */
[_ADJUST] = { [_ADJUST] = {
{M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL }, {M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL },
{KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ }, {KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ }, {TG(_MAC), _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ } {_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ }
}, },
/* DYN: Macro Recording and Playback /* DYN: Macro Recording and Playback
@@ -141,8 +147,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______} {_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
}, },
};
[_MAC]= {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, MLWR, _______, _______, MRSE, _______, _______, _______, _______}
},
[_MLWR] = {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______},
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
},
[_MRSE] = {
{_______, _______, M(2), _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_EQL) },
{_______, _______, _______, _______, _______, _______, LALT(KC_LEFT), _______, _______, _______, LALT(KC_RIGHT), LGUI(KC_MINS) },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
},
[_MFNC]= {
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, LGUI(KC_PENT) },
{_______, KC_GRAVE, KC_NONUS_BSLASH, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }
},
};
void persistant_default_layer_set(uint16_t default_layer) { void persistant_default_layer_set(uint16_t default_layer) {
eeconfig_update_default_layer(default_layer); eeconfig_update_default_layer(default_layer);
@@ -179,10 +213,42 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
update_tri_layer(_LOWER, _RAISE, _ADJUST); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
return false; return false;
} case MLWR:
if (record->event.pressed) {
layer_on(_LOWER);
layer_on(_MLWR);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
layer_off(_MLWR);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case MRSE:
if (record->event.pressed) {
layer_on(_RAISE);
layer_on(_MRSE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
layer_off(_MRSE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
case MFNC:
if (record->event.pressed) {
layer_on(_FUNC);
layer_on(_MFNC);
} else {
layer_off(_FUNC);
layer_off(_MFNC);
}
return false;
}
return true; return true;
} }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) { switch(id) {
// These would trigger when you hit a key mapped as M(0) // These would trigger when you hit a key mapped as M(0)
@@ -201,6 +267,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
END 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
);
}
} }
return MACRO_NONE; return MACRO_NONE;
}; };
+3 -1
View File
@@ -65,12 +65,14 @@ Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
* Reset: Enter bootloader for flashing firmware to the keyboard. * Reset: Enter bootloader for flashing firmware to the keyboard.
* CAPS: Toggle caps lock. * CAPS: Toggle caps lock.
* DYN: Enter `DYN` layer. * 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.
| | | | | | | | | | | | | | | | | | | | | | | | | |
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| | :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
| ???? | Reset|Qwerty| | | | | | | | | Del | | ???? | Reset|Qwerty| | | | | | | | | Del |
| CAPS | | | | | | | Mute | Vol+ | Play | | | | CAPS | | | | | | | Mute | Vol+ | Play | | |
| | | | | | | | Prev | Vol- | Next | | | | MAC | | | | | | | Prev | Vol- | Next | | |
| | | | | | | | | DYN | | | | | | | | | | | | | DYN | | | |
##### DYN ##### DYN
@@ -3,8 +3,10 @@
#include "config_common.h" #include "config_common.h"
#ifndef LIGHT_CONFIG_H
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#define BREATHING_PERIOD 3 #define BREATHING_PERIOD 3
#endif
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND) #define STARTUP_SONG SONG(PLANCK_SOUND)
+13 -7
View File
@@ -126,14 +126,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case QWERTY: case QWERTY:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY); set_single_persistent_default_layer(_QWERTY);
breathing_self_disable(); #ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
} }
return false; return false;
break; break;
case DATA: case DATA:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_DATA); set_single_persistent_default_layer(_DATA);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
breathing_enable(); breathing_enable();
#endif #endif
} }
@@ -144,7 +146,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_on(_LOWER); layer_on(_LOWER);
uint8_t default_layer = biton32(default_layer_state); uint8_t default_layer = biton32(default_layer_state);
if (default_layer == _QWERTY) { if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
breathing_enable(); breathing_enable();
#endif #endif
} }
@@ -153,7 +155,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_off(_LOWER); layer_off(_LOWER);
uint8_t default_layer = biton32(default_layer_state); uint8_t default_layer = biton32(default_layer_state);
if (default_layer == _QWERTY) { if (default_layer == _QWERTY) {
breathing_self_disable(); #ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
} }
update_tri_layer(_LOWER, _RAISE, _ADJUST); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
@@ -164,7 +168,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_on(_RAISE); layer_on(_RAISE);
uint8_t default_layer = biton32(default_layer_state); uint8_t default_layer = biton32(default_layer_state);
if (default_layer == _QWERTY) { if (default_layer == _QWERTY) {
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
breathing_enable(); breathing_enable();
#endif #endif
} }
@@ -173,7 +177,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
layer_off(_RAISE); layer_off(_RAISE);
uint8_t default_layer = biton32(default_layer_state); uint8_t default_layer = biton32(default_layer_state);
if (default_layer == _QWERTY) { if (default_layer == _QWERTY) {
breathing_self_disable(); #ifdef BACKLIGHT_BREATHING
breathing_self_disable();
#endif
} }
update_tri_layer(_LOWER, _RAISE, _ADJUST); update_tri_layer(_LOWER, _RAISE, _ADJUST);
} }
@@ -182,7 +188,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case BACKLIT: case BACKLIT:
if (record->event.pressed) { if (record->event.pressed) {
register_code(KC_RSFT); register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
backlight_step(); backlight_step();
#endif #endif
} else { } else {
@@ -27,7 +27,10 @@
#include "../../config.h" #include "../../config.h"
#define LEADER_TIMEOUT 300 #define LEADER_TIMEOUT 300
#ifndef LIGHT_CONFIG_H
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#endif
/* cbbrowne user configuration */ /* cbbrowne user configuration */
+2 -2
View File
@@ -219,7 +219,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(_RAISE); layer_on(_RAISE);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
breathing_period_set(2); breathing_period_set(2);
breathing_pulse(); breathing_pulse();
#endif #endif
@@ -235,7 +235,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(_LOWER); layer_on(_LOWER);
#ifdef BACKLIGHT_ENABLE #ifdef BACKLIGHT_BREATHING
breathing_period_set(2); breathing_period_set(2);
breathing_pulse(); breathing_pulse();
#endif #endif
+2
View File
@@ -12,7 +12,9 @@
} }
#endif #endif
#ifndef LIGHT_CONFIG_H
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#endif
#define TAPPING_TERM 150 #define TAPPING_TERM 150
#define MUSIC_MASK (keycode != KC_NO) #define MUSIC_MASK (keycode != KC_NO)
+12 -4
View File
@@ -123,22 +123,30 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
switch(id) { switch(id) {
case MACRO_BREATH_TOGGLE: case MACRO_BREATH_TOGGLE:
if (record->event.pressed) { if (record->event.pressed) {
breathing_toggle(); #ifdef BACKLIGHT_BREATHING
breathing_toggle();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_INC: case MACRO_BREATH_SPEED_INC:
if (record->event.pressed) { if (record->event.pressed) {
breathing_period_inc(); #ifdef BACKLIGHT_BREATHING
breathing_period_inc();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_DEC: case MACRO_BREATH_SPEED_DEC:
if (record->event.pressed) { if (record->event.pressed) {
breathing_period_dec(); #ifdef BACKLIGHT_BREATHING
breathing_period_dec();
#endif
} }
break; break;
case MACRO_BREATH_DEFAULT: case MACRO_BREATH_DEFAULT:
if (record->event.pressed) { if (record->event.pressed) {
breathing_period_default(); #ifdef BACKLIGHT_BREATHING
breathing_period_default();
#endif
} }
break; break;
} }
+9 -1
View File
@@ -1,10 +1,18 @@
SUBPROJECT_DEFAULT = rev4 SUBPROJECT_DEFAULT = rev4
MOUSEKEY_ENABLE = yes MOUSEKEY_ENABLE = yes
BLUETOOTH_ENABLE = yes
EXTRAKEY_ENABLE = yes EXTRAKEY_ENABLE = yes
AUDIO_ENABLE = yes AUDIO_ENABLE = yes
ifeq ($(MCU),at90usb1286)
BOOTMAGIC_ENABLE = no
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
BLUETOOTH_ENABLE = no
else
BLUETOOTH_ENABLE = yes
endif
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
endif endif
+4
View File
@@ -25,9 +25,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 12 #define MATRIX_COLS 12
/* Planck PCB default pin-out */ /* Planck PCB default pin-out */
#ifndef LIGHT_CONFIG_H
#define MATRIX_ROW_PINS { D0, D5, B5, B6 } #define MATRIX_ROW_PINS { D0, D5, B5, B6 }
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS #define UNUSED_PINS
#endif
/* /*
* MIDI options * MIDI options
@@ -69,7 +71,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Only print user print statements */ /* Only print user print statements */
#define USER_PRINT #define USER_PRINT
#ifndef LIGHT_CONFIG_H
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#endif
/* disable action features */ /* disable action features */
//#define NO_ACTION_LAYER //#define NO_ACTION_LAYER
+24 -8
View File
@@ -316,28 +316,36 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case MACRO_BREATH_TOGGLE: case MACRO_BREATH_TOGGLE:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_toggle(); breathing_toggle();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_INC: case MACRO_BREATH_SPEED_INC:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_inc(); breathing_period_inc();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_DEC: case MACRO_BREATH_SPEED_DEC:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_dec(); breathing_period_dec();
#endif
} }
break; break;
case MACRO_BREATH_DEFAULT: case MACRO_BREATH_DEFAULT:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_default(); breathing_period_default();
#endif
} }
break; break;
@@ -352,8 +360,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(LAYER_UPPER); layer_on(LAYER_UPPER);
breathing_period_set(2); #ifdef BACKLIGHT_BREATHING
breathing_pulse(); breathing_period_set(2);
breathing_pulse();
#endif
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
} }
else else
@@ -367,8 +377,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(LAYER_LOWER); layer_on(LAYER_LOWER);
breathing_period_set(2); #ifdef BACKLIGHT_BREATHING
breathing_pulse(); breathing_period_set(2);
breathing_pulse();
#endif
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
} }
else else
@@ -381,14 +393,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case MACRO_FUNCTION: case MACRO_FUNCTION:
if (record->event.pressed) if (record->event.pressed)
{ {
breathing_period_set(3); #ifdef BACKLIGHT_BREATHING
breathing_enable(); breathing_period_set(3);
breathing_enable();
#endif
layer_on(LAYER_FUNCTION); layer_on(LAYER_FUNCTION);
} }
else else
{ {
breathing_period_set(1); #ifdef BACKLIGHT_BREATHING
breathing_self_disable(); breathing_period_set(1);
breathing_self_disable();
#endif
layer_off(LAYER_FUNCTION); layer_off(LAYER_FUNCTION);
} }
break; break;
@@ -26,9 +26,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COLS 12 #define MATRIX_COLS 12
/* Planck PCB default pin-out */ /* Planck PCB default pin-out */
#ifndef LIGHT_CONFIG_H
#define MATRIX_ROW_PINS { D0, D5, B5, B6 } #define MATRIX_ROW_PINS { D0, D5, B5, B6 }
#define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 } #define MATRIX_COL_PINS { F1, F0, B0, C7, F4, F5, F6, F7, D4, D6, B4, D7 }
#define UNUSED_PINS #define UNUSED_PINS
#endif
/* Prevent use of disabled MIDI features in the keymap */ /* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1 //#define MIDI_ENABLE_STRICT 1
@@ -64,7 +66,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Only print user print statements */ /* Only print user print statements */
#define USER_PRINT #define USER_PRINT
#ifndef LIGHT_CONFIG_H
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#endif
/* disable action features */ /* disable action features */
//#define NO_ACTION_LAYER //#define NO_ACTION_LAYER
+24 -8
View File
@@ -325,28 +325,36 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case MACRO_BREATH_TOGGLE: case MACRO_BREATH_TOGGLE:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_toggle(); breathing_toggle();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_INC: case MACRO_BREATH_SPEED_INC:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_inc(); breathing_period_inc();
#endif
} }
break; break;
case MACRO_BREATH_SPEED_DEC: case MACRO_BREATH_SPEED_DEC:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_dec(); breathing_period_dec();
#endif
} }
break; break;
case MACRO_BREATH_DEFAULT: case MACRO_BREATH_DEFAULT:
if (record->event.pressed) if (record->event.pressed)
{ {
#ifdef BACKLIGHT_BREATHING
breathing_period_default(); breathing_period_default();
#endif
} }
break; break;
@@ -361,8 +369,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(LAYER_UPPER); layer_on(LAYER_UPPER);
breathing_period_set(2); #ifdef BACKLIGHT_BREATHING
breathing_pulse(); breathing_period_set(2);
breathing_pulse();
#endif
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
} }
else else
@@ -376,8 +386,10 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
if (record->event.pressed) if (record->event.pressed)
{ {
layer_on(LAYER_LOWER); layer_on(LAYER_LOWER);
breathing_period_set(2); #ifdef BACKLIGHT_BREATHING
breathing_pulse(); breathing_period_set(2);
breathing_pulse();
#endif
update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST); update_tri_layer(LAYER_LOWER, LAYER_UPPER, LAYER_ADJUST);
} }
else else
@@ -390,14 +402,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
case MACRO_FUNCTION: case MACRO_FUNCTION:
if (record->event.pressed) if (record->event.pressed)
{ {
breathing_period_set(3); #ifdef BACKLIGHT_BREATHING
breathing_enable(); breathing_period_set(3);
breathing_enable();
#endif
layer_on(LAYER_FUNCTION); layer_on(LAYER_FUNCTION);
} }
else else
{ {
breathing_period_set(1); #ifdef BACKLIGHT_BREATHING
breathing_self_disable(); breathing_period_set(1);
breathing_self_disable();
#endif
layer_off(LAYER_FUNCTION); layer_off(LAYER_FUNCTION);
} }
break; break;
@@ -1,27 +1,20 @@
#ifndef CONFIG_USER_H #ifndef CONFIG_USER_H
#define CONFIG_USER_H #define CONFIG_USER_H
#include "config_common.h" #include "../../config.h"
#include "dudeofawesome.h"
#define TAPPING_TOGGLE 2 #define TAPPING_TOGGLE 2
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND) #define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND) // #define STARTUP_SONG SONG(NO_SOUND)
#define WORKMAN_SOUND \ #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
E__NOTE(_GS7), \ SONG(WORKMAN_SOUND), \
ED_NOTE(_E7), \ SONG(COLEMAK_SOUND), \
S__NOTE(_REST), \ SONG(DVORAK_SOUND) \
E__NOTE(_A6), \ }
S__NOTE(_REST), \
ED_NOTE(_GS6),
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(WORKMAN_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif #endif
#define MUSIC_MASK (keycode != KC_NO) #define MUSIC_MASK (keycode != KC_NO)
@@ -213,63 +213,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) { switch (keycode) {
case QWERTY: case QWERTY:
if (record->event.pressed) { if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY); set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case WORKMAN:
if (record->event.pressed) {
set_single_persistent_default_layer(_WORKMAN);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
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 BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
break;
} }
return true; return false;
case WORKMAN:
if (record->event.pressed) {
set_single_persistent_default_layer(_WORKMAN);
}
return false;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
return false;
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;
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;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
}
return true;
};
bool numpadActive = false;
float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND);
void matrix_scan_user (void) {
uint8_t layer = biton32(layer_state);
switch (layer) {
case _NUMPAD:
if (!numpadActive) {
numpadActive = true;
PLAY_SONG(tone_numpad_on);
}
break;
default:
if (numpadActive) {
numpadActive = false;
}
}
}; };
@@ -10,7 +10,7 @@
- Dvorak - Dvorak
- Colemak - Colemak
- Numpad layer - Numpad layer
![numpad layer](https://i.imgur.com/V5iGHZg.png) ![numpad layer](https://i.imgur.com/IH8sWmQ.png)
- Audio - Audio
## Building and flashing ## Building and flashing
@@ -0,0 +1,5 @@
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
+2 -2
View File
@@ -14,7 +14,7 @@
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \ { k40, k41, k42, k43, k44, k45, k45, k47, k48, k49, k4a, k4b } \
} }
@@ -29,7 +29,7 @@
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
{ k30, k31, k32, k33, k34, k35, k35, k37, k38, k39, k3a, k3b }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
{ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b } \
} }
+2 -1
View File
@@ -1,3 +1,4 @@
{ {
"identifier": "FEED:6061:0002" "identifier": "FEED:6061:0002",
"bootloader": "qmk-dfu"
} }
+1 -1
View File
@@ -1,4 +1,4 @@
#include "rgb.h" #include "s60_x.h"
// Each layer gets a name for readability, which is then used in the keymap matrix below. // 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. // The underscores don't mean anything - you can have a layer called STUFF or any other name.
+3
View File
@@ -4,6 +4,9 @@
#include "../../config.h" #include "../../config.h"
// place overrides here // place overrides here
#ifdef DEBOUNCING_DELAY
#undef DEBOUNCING_DELAY
#endif
#define DEBOUNCING_DELAY 2 #define DEBOUNCING_DELAY 2
#define MOUSEKEY_INTERVAL 10 #define MOUSEKEY_INTERVAL 10
#define MOUSEKEY_DELAY 0 #define MOUSEKEY_DELAY 0
@@ -183,6 +183,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
), ),
}; };
#ifdef RGBLIGHT_ENABLE
/* /*
* Led Configuration * Led Configuration
*/ */
@@ -222,6 +223,7 @@ static inline void mod_layer_with_rgb(keyrecord_t *record, uint8_t layer) {
bf_set_led(currentLayer); bf_set_led(currentLayer);
}; };
}; };
#endif
/* /*
* Custom keycodes * Custom keycodes
@@ -240,12 +242,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
SEND_STRING(" "); SEND_STRING(" ");
} }
return false; break; return false; break;
#ifdef RGBLIGHT_ENABLE
case BF_NUMS: case BF_NUMS:
mod_layer_with_rgb(record, NUMS); mod_layer_with_rgb(record, NUMS);
return false; break; return false; break;
case BF_MOVE: case BF_MOVE:
mod_layer_with_rgb(record, MOVE); mod_layer_with_rgb(record, MOVE);
return false; break; return false; break;
#endif
} }
return true; return true;
@@ -255,7 +259,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
* Active Routines * Active Routines
*/ */
void matrix_init_user(void) { void matrix_init_user(void) {
#ifdef RGBLIGHT_ENABLE
bf_set_led(QWERTY); bf_set_led(QWERTY);
#endif
}; };
// Runs constantly in the background, in a loop. // Runs constantly in the background, in a loop.
+2 -1
View File
@@ -6,8 +6,9 @@ DEBUG_ENABLE = no
CONSOLE_ENABLE = no CONSOLE_ENABLE = no
TAP_DANCE_ENABLE = no TAP_DANCE_ENABLE = no
MOUSEKEY_ENABLE = no MOUSEKEY_ENABLE = no
RGBLIGHT_ENABLE = yes ifdef RGBLIGHT_ENABLE
RGBLIGHT_ANIMATION = yes RGBLIGHT_ANIMATION = yes
endif
ifeq (${FORCE_NKRO},yes) ifeq (${FORCE_NKRO},yes)
OPT_DEFS += -DFORCE_NKRO OPT_DEFS += -DFORCE_NKRO
+122
View File
@@ -0,0 +1,122 @@
/* Copyright 2015-2016 Matthias Schmidtt
*
* 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 KEYMAP_ITALIAN
#define KEYMAP_ITALIAN
#include "keymap.h"
// Alt gr
#define ALGR(kc) RALT(kc)
#define IT_ALGR KC_RALT
// normal characters
#define IT_A KC_A
#define IT_B KC_B
#define IT_C KC_C
#define IT_D KC_D
#define IT_E KC_E
#define IT_F KC_F
#define IT_G KC_G
#define IT_H KC_H
#define IT_I KC_I
#define IT_J KC_J
#define IT_K KC_K
#define IT_L KC_L
#define IT_M KC_M
#define IT_N KC_N
#define IT_O KC_O
#define IT_P KC_P
#define IT_Q KC_Q
#define IT_R KC_R
#define IT_S KC_S
#define IT_T KC_T
#define IT_U KC_U
#define IT_V KC_V
#define IT_W KC_W
#define IT_X KC_X
#define IT_Y KC_Y
#define IT_Z KC_Z
#define IT_0 KC_0
#define IT_1 KC_1
#define IT_2 KC_2
#define IT_3 KC_3
#define IT_4 KC_4
#define IT_5 KC_5
#define IT_6 KC_6
#define IT_7 KC_7
#define IT_8 KC_8
#define IT_9 KC_9
#define IT_DOT KC_DOT
#define IT_COMM KC_COMM
#define IT_EACC KC_LBRC // è, é, [, {
#define IT_PLUS KC_RBRC // +, *, ], }
#define IT_OACC KC_SCLN // ò, ç, @,
#define IT_AACC KC_QUOT // à, °, #,
#define IT_UACC KC_BSLS // ù, §, ,
#define IT_IACC KC_EQL // ì, ^, ,
#define IT_APOS KC_MINS // ', ?, ,
#define IT_BKSL KC_GRAVE // backslash \, |
#define IT_ACUT // accent acute ´ and grave `
#define IT_LESS KC_NUBS // < and > and |
#define IT_MINS KC_SLSH // - and _
// shifted characters
#define IT_PIPE LSFT(IT_BKSL) // °
#define IT_EXLM LSFT(KC_1) // !
#define IT_DQOT LSFT(KC_2) // "
#define IT_STRL LSFT(KC_3) // £
#define IT_DLR LSFT(KC_4) // $
#define IT_PERC LSFT(KC_5) // %
#define IT_AMPR LSFT(KC_6) // &
#define IT_SLSH LSFT(KC_7) // /
#define IT_LPRN LSFT(KC_8) // (
#define IT_RPRN LSFT(KC_9) // )
#define IT_EQL LSFT(KC_0) // =
#define IT_QST LSFT(IT_APOS) // ?
#define IT_CRC LSFT(IT_IACC) // ^
#define IT_ASTR LSFT(IT_PLUS) // *
#define IT_MORE LSFT(IT_LESS) // >
#define IT_COLN LSFT(IT_DOT) // :
#define IT_SCLN LSFT(IT_COMM) // ;
#define IT_UNDS LSFT(IT_MINS) // _
// Alt Gr-ed characters
#define IT_LCBR ALGR(KC_7) // {
#define IT_LBRC ALGR(IT_EACC) // [
#define IT_RBRC ALGR(IT_PLUS) // ]
#define IT_RCBR ALGR(KC_0) // }
#define IT_AT ALGR(IT_OACC) // @
#define IT_EURO ALGR(KC_E) // €
#define IT_PIPE LSFT(IT_BKSL) // |
#define IT_SHRP ALGR(IT_AACC) // #
#define IT_X_PLUS X_RBRACKET // #
#endif
@@ -0,0 +1,71 @@
/* Copyright 2018 Daniel Rodríguez
*
* 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/>.
*/
/* Sendstring definitions for the Spanish layout */
#ifndef SENDSTRING_SPANISH
#define SENDSTRING_SPANISH
#include "keymap_spanish.h"
const bool ascii_to_shift_lut[0x80] PROGMEM = {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 0,
1, 1, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 1, 0, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 0, 0, 1, 1,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 1, 1, 0
};
/* Until an ALT table/functionality is added, the following symbols will not work:
# @ [ ] { } | ~
*/
const uint8_t ascii_to_keycode_lut[0x80] PROGMEM = {
0, 0, 0, 0, 0, 0, 0, 0,
KC_BSPC, KC_TAB, KC_ENT, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, KC_ESC, 0, 0, 0, 0,
/* , ! " # $ % & ' */
KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, ES_APOS,
/* ( ) * + , - . / */
KC_8, KC_9, ES_PLUS, ES_PLUS, KC_COMM, ES_MINS, KC_DOT, KC_7,
KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7,
/* 8 9 : ; < = > ? */
KC_8, KC_9, KC_DOT, KC_COMM, KC_NUBS, KC_0, KC_NUBS, ES_APOS,
/* @ A B C D E F G */
KC_2, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G,
KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O,
KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W,
/* X Y Z [ \ ] ^ _ */
KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, ES_GRV, ES_MINS,
ES_GRV, KC_A, KC_B, KC_C, KC_D, KC_E, KC_F, KC_G,
KC_H, KC_I, KC_J, KC_K, KC_L, KC_M, KC_N, KC_O,
KC_P, KC_Q, KC_R, KC_S, KC_T, KC_U, KC_V, KC_W,
KC_X, KC_Y, KC_Z, KC_LBRC, KC_BSLS, KC_RBRC, KC_GRV, KC_DEL
};
#endif
+1 -1
View File
@@ -22,7 +22,7 @@
__attribute__ ((weak)) __attribute__ ((weak))
combo_t key_combos[] = { combo_t key_combos[COMBO_COUNT] = {
}; };
+9
View File
@@ -1,6 +1,9 @@
#ifndef USERSPACE #ifndef USERSPACE
#define USERSPACE #define USERSPACE
#ifdef TAPPING_TOGGLE
#undef TAPPING_TOGGLE
#endif
#define TAPPING_TOGGLE 2 #define TAPPING_TOGGLE 2
#ifdef AUDIO_ENABLE #ifdef AUDIO_ENABLE
@@ -11,6 +14,12 @@
E__NOTE(_A6), \ E__NOTE(_A6), \
S__NOTE(_REST), \ S__NOTE(_REST), \
ED_NOTE(_GS6), ED_NOTE(_GS6),
#define NUMPAD_ON_SOUND \
E__NOTE(_C6), \
ED_NOTE(_BF5), \
S__NOTE(_C6), \
ED_NOTE(_BF5),
#endif #endif
#endif #endif