1
0

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Sterling
2019-03-01 16:12:51 -08:00
64 changed files with 2581 additions and 381 deletions

View File

@@ -0,0 +1,28 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 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/>.
*/
#pragma once
// #define USE_I2C
/* Select hand configuration */
// #define MASTER_RIGHT
// #define EE_HANDS

View File

@@ -0,0 +1,238 @@
#include QMK_KEYBOARD_H
#include "keymap_steno.h"
// Custom Keycodes and Combinations Used
#define DEL_SHF SFT_T(KC_DEL)
#define QUAKE LCTL(KC_GRV)
#define WKSP_L LALT(LCTL(KC_LEFT))
#define WKSP_D LALT(LCTL(KC_DOWN))
#define WKSP_U LALT(LCTL(KC_UP))
#define WKSP_R LALT(LCTL(KC_RGHT))
extern keymap_config_t keymap_config;
enum planck_layers {
_BASE,
_LOWER,
_RAISE,
_FUNC,
_PLOVER,
_ADJUST,
_MOUSE
};
enum planck_keycodes {
BASE = SAFE_RANGE,
PLOVER,
LOWER,
RAISE,
FUNC,
MOUSE,
ADJUST,
EXT_PLV
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base
* ,-----------------------------------------------------------------------------------.
* | Tab | " ' | < , | > . | P | Y | F | G | C | R | L | ? / |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | O | E | U | I | D | H | T | N | S | _ - |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* |Del/Sf| : ; | Q | J | K | X | B | M | W | V | Z | Bspc |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Ctrl |Plover| GUI | Alt |Lower |Shift |Space |Raise | Alt | GUI | Fn |Enter |
* `-----------------------------------------------------------------------------------'
*/
[_BASE] = LAYOUT_ortho_4x12( \
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, \
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_MINS, \
DEL_SHF, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSPC, \
KC_LCTL, PLOVER, KC_LGUI, KC_LALT, LOWER, KC_LSFT, KC_SPC, RAISE, KC_RALT, KC_RGUI, FUNC, KC_ENT \
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | Home |PgDwn | PgUp | End | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | |PrScr | Menu | | | | | Left | Down | Up |Right | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |CapsLk|NumLck| Ins | | | |WkLeft|WkDown| WkUp |WkRigh| |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | |Raise | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT_ortho_4x12( \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, XXXXXXX, \
XXXXXXX, KC_PSCR, KC_MENU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, \
XXXXXXX, KC_CAPS, KC_LNUM, KC_INS, XXXXXXX, XXXXXXX, XXXXXXX, WKSP_L, WKSP_D, WKSP_U, WKSP_R, XXXXXXX, \
_______, XXXXXXX, _______, _______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* |Quake | ` | ~ | \ | | | ( | ) | 7 | 8 | 9 | / | = |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | ! | @ | # | $ | { | } | 4 | 5 | 6 | * | + |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | % | ^ | & | * | [ | ] | 1 | 2 | 3 | - |Bkspc |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | |Lower | < | > | | 0 | . | , | |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT_ortho_4x12( \
QUAKE, KC_GRV, KC_TILD, KC_BSLS, KC_PIPE, KC_LPRN, KC_RPRN, KC_7, KC_8, KC_9, KC_SLSH, KC_EQL, \
XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_4, KC_5, KC_6, KC_ASTR, KC_PLUS, \
XXXXXXX, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LBRC, KC_RBRC, KC_1, KC_2, KC_3, KC_MINS, KC_BSPC, \
_______, XXXXXXX, _______, _______, _______, KC_LABK, KC_RABK, _______, KC_0, KC_DOT, KC_COMM, XXXXXXX \
),
/* Func
* ,-----------------------------------------------------------------------------------.
* | |Sleep |Prev-W|Ply/Ps|Next-W| | | F9 | F10 | F11 | F12 | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | Wake | Mute | Vol- | Vol+ | | | F5 | F6 | F7 | F8 | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Power |Prev-M|Ply/Ps|Next-M| | | F1 | F2 | F3 | F4 | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_FUNC] = LAYOUT_ortho_4x12( \
XXXXXXX, KC_SLEP, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, \
XXXXXXX, KC_WAKE, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, XXXXXXX, \
XXXXXXX, KC_PWR, KC_MRWD, KC_MPLY, KC_MFFD, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, \
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX \
),
/* Mouse (Not Reachable on Planck)
* ,-----------------------------------------------------------------------------------.
* | | | | | | | | | | | | |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | |Click1|Click3|Click2| | |MouseL|MouseD|MouseU|MouseR| |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | |Accel0|Accel1|Accel2| | |ScrllL|ScrllD|ScrllU|ScrllR| |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_MOUSE] = LAYOUT_ortho_4x12( \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, KC_BTN1, KC_BTN3, KC_BTN2, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, \
XXXXXXX, XXXXXXX, KC_ACL0, KC_ACL1, KC_ACL2, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX, \
_______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX \
),
/* Plover layer (http://opensteno.org)
* ,-----------------------------------------------------------------------------------.
* | # | # | # | # | # | # | # | # | # | # | # | # |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | FN | S | T | P | H | * | * | F | P | L | T | D |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | S | K | W | R | * | * | R | B | G | S | Z |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Exit | | | A | O | | | E | U | PWR | RES1 | RES2 |
* `-----------------------------------------------------------------------------------'
*/
[_PLOVER] = LAYOUT_ortho_4x12( \
STN_N1, STN_N2, STN_N3, STN_N4, STN_N5, STN_N6, STN_N7, STN_N8, STN_N9, STN_NA, STN_NB, STN_NC , \
STN_FN, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR , \
XXXXXXX, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR , \
EXT_PLV, XXXXXXX, XXXXXXX, STN_A, STN_O, XXXXXXX, XXXXXXX, STN_E, STN_U, STN_PWR, STN_RE1, STN_RE2 \
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | | Reset| | | | | | | | | | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|RGBTog|RGBMod| | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof|Light-|Light+| | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = LAYOUT_ortho_4x12( \
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL , \
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, RGB_TOG, RGB_MOD, _______, _______, _______, \
_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, RGB_VAD, RGB_VAI, _______, _______, _______, \
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
)
};
#ifdef AUDIO_ENABLE
float plover_song[][2] = SONG(PLOVER_SOUND);
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
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 FUNC:
if (record->event.pressed) {
layer_on(_FUNC);
} else {
layer_off(_FUNC);
}
return false;
break;
case PLOVER:
if (!record->event.pressed) {
#ifdef AUDIO_ENABLE
stop_all_notes();
PLAY_SONG(plover_song);
#endif
layer_on(_PLOVER);
}
return false;
break;
case EXT_PLV:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(plover_gb_song);
#endif
layer_off(_PLOVER);
}
return false;
break;
case MOUSE:
if (record->event.pressed) {
layer_on(_MOUSE);
} else {
layer_off(_MOUSE);
}
return false;
break;
}
return true;
}
void keyboard_post_init_user(void) {
steno_set_mode(STENO_MODE_GEMINI);
}

View File

@@ -0,0 +1,45 @@
# DCompact Layout
**Dvorak, Layered, Mouse-Enabled, Compact -- now with Plover~**
_See [the layout source](keymap.c) for the actual layout_
## Goals
The following are the goals kept in mind when designing the DCompact
layout:
- Provide minimal travel distance when typing English or coding
- Consistent muscle memory translation from standard QWERTY
- Stateless typing experience
- OS-agnostic features, macros, and key placement
- Minimize dependence on mouse usage
These are generally all met or balanced within reason. This layout is
not intended at all to be a familiar layout for much of anyone (except
maybe those who already type in Dvorak) -- this is meant to amplify the
best parts of having limited, ortholinear keys with layering.
## As Reference Material
If you're reading this hoping to find reference material to implement
your own layout, then please feel free to copy over this layout and
make edits where you see fit. I removed a lot of the features I felt
extraneous to my usage and simplified style where I felt needed. This
would hopefully mean that my code should feel like a good base to
develop from for those new to QMK.
_Remember that settings defined in the layout directory override and
merge with those in the keyboard folder_
## Relevant Links
- [Online Dvorak Layout Trainer](https://learn.dvorak.nl/)
- [Dvorak Wikipedia Page](https://en.wikipedia.org/wiki/Dvorak_Simplified_Keyboard)
- [QMK Docs](https://docs.qmk.fm/#/)
- [QMK KeyCode Reference](https://docs.qmk.fm/#/keycodes)
## Contact
Maintainer: [Dan](https://github.com/loksonarius)

View File

@@ -0,0 +1,13 @@
# https://beta.docs.qmk.fm/reference/config-options#feature-options
# Features Specifically Wanted
EXTRAKEY_ENABLE = yes
STENO_ENABLE = yes
NKRO_ENABLE = yes
AUDIO_ENABLE = yes
# Features taking up space
MOUSEKEY_ENABLE = no
MIDI_ENABLE = no
CONSOLE_ENABLE = no
RGBLIGHT_ENABLE = no
BACKLIGHT_ENABLE = no

View File

@@ -112,11 +112,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Arrow layer
* ,-----------------------------------------. .-----------------------------------------.
* | | | | | | | | | | | | | PgUp |
* | §/½ | | | | | | | | | | Ins | Home | PgUp |
* |------+------+------+------+------+------+ +------+------+------+------+------+------|
* | | | Up | | | | | | | | | | PgDn |
* | | | Up | | | | | | | | Del | End | PgDn |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | Left | Down | Right| | | | | | | | | |
* | | Left | Down | Right| | Back | | Fwd | | | | | |
* |------+------+------+------+------+------| |------+------+------+------+------+------|
* | | | | | | | | | | | | | |
* |------+------+------+------+------+------+ +------+------+------+------+------+------|
@@ -124,9 +124,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `-----------------------------------------' '-----------------------------------------'
*/
[ARRW] = LAYOUT( \
NO_HALF, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, KC_PGUP, \
_______, _______, KC_UP , _______ , _______, _______, _______, _______, _______, _______, _______, KC_PGDN, \
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, \
NO_HALF, _______, _______, _______ , _______, _______, _______, _______, _______, KC_INS , KC_HOME, KC_PGUP, \
_______, _______, KC_UP , _______ , _______, _______, _______, _______, _______, KC_DEL , KC_END , KC_PGDN, \
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_WBAK, KC_WFWD, _______, _______, _______, _______, _______, \
_______, _______, _______, _______ , _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______, KC_DEL , _______, _______, _______, _______, _______, _______, _______, _______ \
),

View File

@@ -0,0 +1,27 @@
/*
This is the c configuration file for the keymap
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert
Copyright 2018 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/>.
*/
#pragma once
/* Use I2C or Serial, not both */
#define USE_SERIAL
// #define USE_I2C

View File

@@ -0,0 +1,62 @@
#include QMK_KEYBOARD_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
enum custom_keycodes {
QWERTY = SAFE_RANGE,
};
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 | [ | ] | \ |
* +-------------------------------------------------------------------------+
* | FN | A | S | D | F | G | H | J | K | L | ; | ' | RETURN |
* +-------------------------------------------------------------------------+
* | LSHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | FN |
* +-------------------------------------------------------------------------+
* |LALT|LMETA|RCTRL| SPACE | FN | SPACE | RALT| MENU| RWIN|RCTRL|
* +-------------------------------------------------------------------------+
*/
[_BASE] = LAYOUT(
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_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(_FN1), 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, MO(_FN1), \
KC_LALT, KC_LGUI, KC_LCTL, KC_SPC, MO(_FN1), KC_SPC, _______, KC_RALT, KC_APP, _______, KC_RGUI, KC_RCTL
),
/* Keymap _FL: Function Layer
* ,-----------------------------------------------------------.
* | ~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12| DEL |
* |-----------------------------------------------------------|
* | | | UP| | MSL|MSD|MSU|MSR| | |PRT|PGD|PGU|PAUS |
* |-----------------------------------------------------------|
* | | LE| DN| RE| | | LE| DN| UP| RE| | | |
* |-----------------------------------------------------------|
* | |HOM|END| | |PRE|NXT|MUT|VOD|VOU| /|Shift | FN|
* |-----------------------------------------------------------|
* | | | | | PLAY | PLAY | | | | |
* `-----------------------------------------------------------'
*/
[_FN1] = LAYOUT(
KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL, \
_______, _______, KC_UP, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, KC_PSCR, KC_PGUP, KC_PGDN, KC_PAUS, \
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, \
_______, KC_HOME, KC_END, _______, _______, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, \
_______, _______, _______, KC_MPLY, _______, KC_MPLY, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,26 @@
## UNAUSGESCHLAFEN'S QUEFRENCY
This is the keymap that goes with [unausgeschlafen's Quefrency](https://www.reddit.com/r/MechanicalKeyboards/comments/aquefb/my_daily_driver_quefrency/)
If you are using Ardoinos, comment this line in `rules.mk`:
```make
BOOTLOADER = atmel-dfu # comment this line if you use arduinos
```
Although QMK offers one-shot build and flash, I personally build and flash separately (for the Elite C).
I used the QMK default for the Arduino Pro Micros.
However, I do not own them anymore.
Hence, only the instructions for the Elite C are provided.
Build with:
```sh
make keebio/quefrency:unausgeschlafen
```
Flash with:
```sh
sudo dfu-programmer atmega32u4 erase
sudo dfu-programmer atmega32u4 flash keebio_quefrency_rev1_unausgeschlafen.hex
sudo dfu-programmer atmega32u4 reset
```

View File

@@ -0,0 +1 @@
BOOTLOADER = atmel-dfu # comment this line if you use arduinos