-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 17bdef1
Showing
7 changed files
with
269 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# ergodox-ez-shine-dvorak | ||
|
||
Dvorak keyboard layout for ErgoDox EZ Shine, heavily | ||
inspired by the key placement of the TypeMatrix 2030 USB. | ||
|
||
<figure> | ||
<img src=ErgoDox-EZ-Shine.svg alt="ErgoDox EZ Shine"> | ||
<figcaption style="font-size: 80%"> | ||
ErgoDox EZ Shine. Illustration from ErgoDox EZ website. | ||
Copyright © 2019 ZSA Technology Labs, Inc. | ||
</figcaption> | ||
</figure> | ||
|
||
## The what now? | ||
|
||
I've been using the [Dvorak keyboard layout](https://en.wikipedia.org/wiki/Dvorak_keyboard_layout) since 2009/2010. | ||
Back then I had a TypeMatrix 2030 USB. I stuck with | ||
TypeMatrix most of the time between then and... | ||
December 2017! | ||
|
||
In December 2017, I bought an [ErgoDox EZ Shine](https://ergodox-ez.com) | ||
(see [details below](#ergodox-ez-keyboard-model)). | ||
|
||
Using the [Oryx configurator](https://ergodox-ez.com/pages/oryx), | ||
I immediatelly created a custom layout for my ErgoDox EZ Shine. | ||
A layout that was *heavily* inspired by the key placement on | ||
my previous keyboard, the TypeMatrix 2030 USB. | ||
|
||
Over time I've made small adjustments to my custom layout | ||
in Oryx but the layout remains true to the TypeMatrix still. | ||
Only, it's like, *a million times better*. | ||
|
||
So anyway, time to put this configuration somewhere | ||
rather than just relying on the ErgoDox EZ website | ||
to stay up forever, eh? Hence this repo. | ||
|
||
## Have a look at the layout | ||
|
||
Look at [the PDF](configuration.pdf) included in this repo, | ||
or [look at the layout in Oryx](https://configure.ergodox-ez.com/ergodox-ez/layouts/PBKjJ/ZqWv6/0). | ||
|
||
## ErgoDox EZ keyboard model | ||
|
||
<table> | ||
<tr> | ||
<th>Color</th> | ||
<th>Tilt kit</th> | ||
<th>Wing rest</th> | ||
<th>Shine</th> | ||
<th>Keycaps</th> | ||
<th>Switches</th> | ||
</tr> | ||
<tr> | ||
<td>Black</td> | ||
<td>Yes</td> | ||
<td>No</td> | ||
<td>Yes</td> | ||
<td>Blank, sculpted keycaps</td> | ||
<td>Kailh Thick Gold</td> | ||
</tr> | ||
</table> | ||
|
||
## Building from source | ||
|
||
See [ergodox_ez_instructions.md](ergodox_ez_instructions.md). | ||
|
||
## Using pre-built firmware image | ||
|
||
Download firmware image using link at | ||
https://configure.ergodox-ez.com/ergodox-ez/layouts/PBKjJ/ZqWv6/0 | ||
or download a copy of the same firmware image from | ||
https://github.com/ctsrc/ergodox-ez-shine-dvorak/releases/download/2019-11-10-ZqWv6/ergodox_ez_dvorak_PBKjJ_ZqWv6.hex | ||
|
||
SHA256 (ergodox_ez_dvorak_PBKjJ_ZqWv6.hex) = b20e3e0d19c9018d214e04258da14ffe7d324058377616aecb119d1c4b257c5d | ||
|
||
## Flashing the firmware image | ||
|
||
Use for example the flashing tool provided by ZSA Technology Labs: | ||
|
||
* https://ergodox-ez.com/pages/wally | ||
* https://github.com/zsa/wally | ||
|
||
## Copyright | ||
|
||
Portions copyright © 2019 ZSA Technology Labs, Inc. |
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# Building your layout from source | ||
|
||
Congratulations on taking the next step, and making use of your keyboard's open-source nature! There's so much power to unlock — this is going to be fun. :) | ||
|
||
Here are some initial pointers to get you started: | ||
|
||
- Use the documentation at [https://docs.qmk.fm/](https://docs.qmk.fm/) to set up your environment for building your firmware. | ||
- Build your layout against [https://github.com/zsa/qmk_firmware/](https://github.com/zsa/qmk_firmware/) which is our QMK fork (instead of qmk/qmk_firmware). This is what Oryx (the graphical configurator) uses, so it's guaranteed to work. | ||
- Create a folder with a simple name (no spaces!) for your layout inside the qmk_firmware/keyboards/ergodox_ez/keymaps/ folder. | ||
- Copy the contents of the \*\_source folder (in the .zip you downloaded from Oryx) into this folder. | ||
- Make sure you've set up your environment per the [QMK docs](https://docs.qmk.fm/#/newbs_getting_started?id=set-up-your-environment) so compilation would actually work. | ||
- From your shell, make sure your working directory is qmk*firmware, then enter the command `make ergodox_ez:_layout_`, substituting the name of the folder you created for "_layout_". | ||
|
||
Good luck on your journey! And remember, if you get stuck, you can always get back to your [original layout](https://configure.ergodox-ez.com/ergodox-ez/layouts/PBKjJ/ZqWv6/0) from Oryx. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
/* | ||
Set any config.h overrides for your specific keymap here. | ||
See config.h options at https://docs.qmk.fm/#/config_options?id=the-configh-file | ||
*/ | ||
#define ORYX_CONFIGURATOR |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,159 @@ | ||
#include QMK_KEYBOARD_H | ||
#include "version.h" | ||
#include "keymap_german.h" | ||
#include "keymap_nordic.h" | ||
#include "keymap_french.h" | ||
#include "keymap_spanish.h" | ||
#include "keymap_hungarian.h" | ||
#include "keymap_swedish.h" | ||
#include "keymap_br_abnt2.h" | ||
#include "keymap_canadian_multilingual.h" | ||
#include "keymap_german_ch.h" | ||
#include "keymap_jp.h" | ||
|
||
#define KC_MAC_UNDO LGUI(KC_Z) | ||
#define KC_MAC_CUT LGUI(KC_X) | ||
#define KC_MAC_COPY LGUI(KC_C) | ||
#define KC_MAC_PASTE LGUI(KC_V) | ||
#define KC_PC_UNDO LCTL(KC_Z) | ||
#define KC_PC_CUT LCTL(KC_X) | ||
#define KC_PC_COPY LCTL(KC_C) | ||
#define KC_PC_PASTE LCTL(KC_V) | ||
#define ES_LESS_MAC KC_GRAVE | ||
#define ES_GRTR_MAC LSFT(KC_GRAVE) | ||
#define ES_BSLS_MAC ALGR(KC_6) | ||
#define NO_PIPE_ALT KC_GRAVE | ||
#define NO_BSLS_ALT KC_EQUAL | ||
|
||
enum custom_keycodes { | ||
RGB_SLD = EZ_SAFE_RANGE, | ||
HSV_172_255_255, | ||
HSV_86_255_128, | ||
HSV_27_255_255, | ||
HSV_215_255_128, | ||
HSV_0_255_255, | ||
}; | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
[0] = LAYOUT_ergodox_pretty( | ||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_DELETE, KC_DELETE, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL, | ||
KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_BSPACE, KC_BSPACE, KC_F, KC_G, KC_C, KC_R, KC_L, KC_QUES, | ||
LCTL_T(KC_ESCAPE),KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_TRANSPARENT, | ||
KC_LSHIFT, KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, KC_ENTER, KC_ENTER, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_BSLASH, | ||
MO(1), KC_TRANSPARENT, KC_TRANSPARENT, KC_LALT, KC_TRANSPARENT, KC_TRANSPARENT, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, | ||
KC_KP_SLASH, KC_MINUS, KC_PLUS, KC_KP_ASTERISK, | ||
KC_TRANSPARENT, KC_TRANSPARENT, | ||
KC_SPACE, KC_LGUI, MO(1), KC_TRANSPARENT, KC_RGUI, KC_SPACE | ||
), | ||
[1] = LAYOUT_ergodox_pretty( | ||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRANSPARENT, KC_TRANSPARENT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | ||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_LBRACKET, KC_RBRACKET, KC_TRANSPARENT, KC_TRANSPARENT, | ||
KC_TRANSPARENT, HSV_172_255_255,HSV_86_255_128, HSV_27_255_255, HSV_215_255_128,HSV_0_255_255, KC_TRANSPARENT, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_TRANSPARENT, | ||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | ||
KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, KC_TRANSPARENT, | ||
RGB_HUD, RGB_HUI, RGB_VAI, RGB_VAD, | ||
KC_TRANSPARENT, KC_TRANSPARENT, | ||
KC_TRANSPARENT, RGB_SLD, KC_TRANSPARENT, KC_TRANSPARENT, RGB_MOD, KC_TRANSPARENT | ||
), | ||
}; | ||
|
||
|
||
bool suspended = false; | ||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
switch (keycode) { | ||
case RGB_SLD: | ||
if (record->event.pressed) { | ||
rgblight_mode(1); | ||
} | ||
return false; | ||
case HSV_172_255_255: | ||
if (record->event.pressed) { | ||
#ifdef RGBLIGHT_ENABLE | ||
rgblight_enable(); | ||
rgblight_mode(1); | ||
rgblight_sethsv(172,255,255); | ||
#endif | ||
} | ||
return false; | ||
case HSV_86_255_128: | ||
if (record->event.pressed) { | ||
#ifdef RGBLIGHT_ENABLE | ||
rgblight_enable(); | ||
rgblight_mode(1); | ||
rgblight_sethsv(86,255,128); | ||
#endif | ||
} | ||
return false; | ||
case HSV_27_255_255: | ||
if (record->event.pressed) { | ||
#ifdef RGBLIGHT_ENABLE | ||
rgblight_enable(); | ||
rgblight_mode(1); | ||
rgblight_sethsv(27,255,255); | ||
#endif | ||
} | ||
return false; | ||
case HSV_215_255_128: | ||
if (record->event.pressed) { | ||
#ifdef RGBLIGHT_ENABLE | ||
rgblight_enable(); | ||
rgblight_mode(1); | ||
rgblight_sethsv(215,255,128); | ||
#endif | ||
} | ||
return false; | ||
case HSV_0_255_255: | ||
if (record->event.pressed) { | ||
#ifdef RGBLIGHT_ENABLE | ||
rgblight_enable(); | ||
rgblight_mode(1); | ||
rgblight_sethsv(0,255,255); | ||
#endif | ||
} | ||
return false; | ||
} | ||
return true; | ||
} | ||
|
||
uint32_t layer_state_set_user(uint32_t state) { | ||
|
||
uint8_t layer = biton32(state); | ||
|
||
ergodox_board_led_off(); | ||
ergodox_right_led_1_off(); | ||
ergodox_right_led_2_off(); | ||
ergodox_right_led_3_off(); | ||
switch (layer) { | ||
case 1: | ||
ergodox_right_led_1_on(); | ||
break; | ||
case 2: | ||
ergodox_right_led_2_on(); | ||
break; | ||
case 3: | ||
ergodox_right_led_3_on(); | ||
break; | ||
case 4: | ||
ergodox_right_led_1_on(); | ||
ergodox_right_led_2_on(); | ||
break; | ||
case 5: | ||
ergodox_right_led_1_on(); | ||
ergodox_right_led_3_on(); | ||
break; | ||
case 6: | ||
ergodox_right_led_2_on(); | ||
ergodox_right_led_3_on(); | ||
break; | ||
case 7: | ||
ergodox_right_led_1_on(); | ||
ergodox_right_led_2_on(); | ||
ergodox_right_led_3_on(); | ||
break; | ||
default: | ||
break; | ||
} | ||
return state; | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Set any rules.mk overrides for your specific keymap here. | ||
# See rules at https://docs.qmk.fm/#/config_options?id=the-rulesmk-file | ||
LINK_TIME_OPTIMIZATION_ENABLE = yes | ||
COMMAND_ENABLE = no | ||
MOUSEKEY_ENABLE = no |