diff options
| author | Dan <loksonarius@users.noreply.github.com> | 2019-03-01 11:28:46 -0500 | 
|---|---|---|
| committer | Drashna Jaelre <drashna@live.com> | 2019-03-01 08:28:46 -0800 | 
| commit | 41d8be7e75e68f41cdc890d7b9f99ba8d58990d4 (patch) | |
| tree | 576dbd282e818207b0b914fd9377e83ae7e09c1d | |
| parent | a1de199aa9d86d0c325985825e07d5d769a5d786 (diff) | |
| download | firmware-41d8be7e75e68f41cdc890d7b9f99ba8d58990d4.tar.gz firmware-41d8be7e75e68f41cdc890d7b9f99ba8d58990d4.tar.bz2 firmware-41d8be7e75e68f41cdc890d7b9f99ba8d58990d4.zip | |
[Keymap] DCompact Layout Updates pt. 3 (#5209)
* Fix whitespace and Markdown errors
* Add DCompact layout implementation for Levinson keyboard
* Rename README.md to readme.md
* Rename README.md to readme.md
* Rename README.md to readme.md
* Update keyboards/keebio/levinson/keymaps/dcompact/keymap.c
Co-Authored-By: loksonarius <loksonarius@users.noreply.github.com>
* Update keyboards/keebio/levinson/keymaps/dcompact/keymap.c
Co-Authored-By: loksonarius <loksonarius@users.noreply.github.com>
| -rw-r--r-- | keyboards/chimera_ortho/keymaps/dcompact/readme.md (renamed from keyboards/chimera_ortho/keymaps/dcompact/README.md) | 8 | ||||
| -rw-r--r-- | keyboards/keebio/levinson/keymaps/dcompact/config.h | 28 | ||||
| -rw-r--r-- | keyboards/keebio/levinson/keymaps/dcompact/keymap.c | 238 | ||||
| -rw-r--r-- | keyboards/keebio/levinson/keymaps/dcompact/readme.md (renamed from keyboards/planck/keymaps/dcompact/README.md) | 8 | ||||
| -rw-r--r-- | keyboards/keebio/levinson/keymaps/dcompact/rules.mk | 13 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/dcompact/keymap.c | 2 | ||||
| -rw-r--r-- | keyboards/planck/keymaps/dcompact/readme.md | 45 | 
7 files changed, 333 insertions, 9 deletions
| diff --git a/keyboards/chimera_ortho/keymaps/dcompact/README.md b/keyboards/chimera_ortho/keymaps/dcompact/readme.md index 18c23d66e..bf72567ef 100644 --- a/keyboards/chimera_ortho/keymaps/dcompact/README.md +++ b/keyboards/chimera_ortho/keymaps/dcompact/readme.md @@ -34,10 +34,10 @@ 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 diff --git a/keyboards/keebio/levinson/keymaps/dcompact/config.h b/keyboards/keebio/levinson/keymaps/dcompact/config.h new file mode 100644 index 000000000..be2d71e8f --- /dev/null +++ b/keyboards/keebio/levinson/keymaps/dcompact/config.h @@ -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 diff --git a/keyboards/keebio/levinson/keymaps/dcompact/keymap.c b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c new file mode 100644 index 000000000..a0556c09b --- /dev/null +++ b/keyboards/keebio/levinson/keymaps/dcompact/keymap.c @@ -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); +} diff --git a/keyboards/planck/keymaps/dcompact/README.md b/keyboards/keebio/levinson/keymaps/dcompact/readme.md index d3e4c7a62..cd88c3fed 100644 --- a/keyboards/planck/keymaps/dcompact/README.md +++ b/keyboards/keebio/levinson/keymaps/dcompact/readme.md @@ -34,10 +34,10 @@ 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 diff --git a/keyboards/keebio/levinson/keymaps/dcompact/rules.mk b/keyboards/keebio/levinson/keymaps/dcompact/rules.mk new file mode 100644 index 000000000..cd031e0d3 --- /dev/null +++ b/keyboards/keebio/levinson/keymaps/dcompact/rules.mk @@ -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 diff --git a/keyboards/planck/keymaps/dcompact/keymap.c b/keyboards/planck/keymaps/dcompact/keymap.c index 79c983150..0893059a0 100644 --- a/keyboards/planck/keymaps/dcompact/keymap.c +++ b/keyboards/planck/keymaps/dcompact/keymap.c @@ -68,7 +68,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {    {  KC_TAB, KC_QUOT, KC_COMM,  KC_DOT,    KC_P,    KC_Y,    KC_F,    KC_G,    KC_C,    KC_R,    KC_L, KC_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} +  { KC_LCTL,  PLOVER, KC_LGUI, KC_LALT,   LOWER,  KC_LSFT,  KC_SPC,  RAISE, KC_RALT, KC_RGUI,    FUNC,  KC_ENT}  },  /* Lower diff --git a/keyboards/planck/keymaps/dcompact/readme.md b/keyboards/planck/keymaps/dcompact/readme.md new file mode 100644 index 000000000..cd88c3fed --- /dev/null +++ b/keyboards/planck/keymaps/dcompact/readme.md @@ -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) + | 
