aboutsummaryrefslogtreecommitdiff
path: root/layouts/community/ergodox
diff options
context:
space:
mode:
authorErik Thorsell <erik@thorsell.cc>2018-08-23 04:16:16 +0100
committerDrashna Jaelre <drashna@live.com>2018-08-22 20:16:16 -0700
commit9064b424e9ba581f0ea2df7353ccdeef4f4a2ce7 (patch)
tree27475c82b47ae2d27e6aa0c95b20f4dd87ddaf83 /layouts/community/ergodox
parent5d8d3509762407997626d15700094cad066dcf6d (diff)
downloadqmk_firmware-9064b424e9ba581f0ea2df7353ccdeef4f4a2ce7.tar.gz
qmk_firmware-9064b424e9ba581f0ea2df7353ccdeef4f4a2ce7.zip
Keymap: Add Dvorak Svorak A5 layout for Ergodox-EZ (#3725)
* Add svorak a5 * Update Svorak A5 keymap * Fix issue with special characters The initial keymap did not account for non US software layout. Hence, the special characters were incorrect. Since this layout is aimed towards Swedish writing people the presumption is that whoever uses it will have Swedish as their OS language. Includes: - Special character issue fixed - QWERTY layer that can be toggled if requiered (also presumes Swedish software layout) * Add special characters and media keys * Add ctrl, alt, etc. to functional layer
Diffstat (limited to 'layouts/community/ergodox')
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/keymap.c214
-rw-r--r--layouts/community/ergodox/dvorak_svorak_a5/readme.md42
2 files changed, 256 insertions, 0 deletions
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/keymap.c b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
new file mode 100644
index 000000000..2668fce86
--- /dev/null
+++ b/layouts/community/ergodox/dvorak_svorak_a5/keymap.c
@@ -0,0 +1,214 @@
1#include QMK_KEYBOARD_H
2#include "debug.h"
3#include "action_layer.h"
4#include "keymap_swedish.h"
5
6#define BASE 0 // default layer
7#define SYMB 1 // symbols
8#define MOUS 2 // mouse keys
9#define QWRT 3 // qwerty layout
10
11const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
12/* Keymap 0: Basic layer
13 *
14 * ,--------------------------------------------------. ,--------------------------------------------------.
15 * | | 1 | 2 | 3 | 4 | 5 | ~MOUS| | QWRT | 6 | 7 | 8 | 9 | 0 | + |
16 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
17 * | | Å | Ä | Ö | P | Y | | | Del | F | G | C | R | L | , |
18 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
19 * | Escape | A | O | E | U | I |------| |------| D | H | T | N | S | -/_ |
20 * |--------+------+------+------+------+------| | | RCTRL|------+------+------+------+------+--------|
21 * | LShift | . | Q | J | K | X | | | | B | M | W | V | Z | RShift |
22 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
23 * | LCTRL | | | LAlt | Super| | ~SYMB| Left | Down | Up | Right |
24 * `-----------------------------------' `----------------------------------'
25 * ,-------------. ,-------------.
26 * | Ins | Del | | HOME | END |
27 * ,------|------|------| |------+--------+-------.
28 * | | | | | PgUp | | |
29 * | BSP | Tab |------| |------| Enter | Space |
30 * | | | | | PgDn | | |
31 * `--------------------' `-----------------------'
32 */
33[BASE] = LAYOUT_ergodox( // layer 0 : default
34 // left hand
35 KC_NO, KC_1, KC_2, KC_3, KC_4, KC_5, MO(MOUS),
36 KC_TAB, NO_AA, NO_AE, NO_OSLH, KC_P, KC_Y, KC_NO,
37 KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I,
38 KC_LSFT, KC_DOT, KC_Q, KC_J, KC_K, KC_X, KC_NO,
39 KC_LCTRL, KC_NO, KC_NO, KC_LALT, KC_LCMD,
40 KC_INSERT, KC_DEL,
41 KC_NO,
42 KC_BSPC, KC_TAB, KC_NO,
43 // right hand
44 TG(QWRT), KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
45 KC_DEL, KC_F, KC_G, KC_C, KC_R, KC_L, KC_COMM,
46 KC_D, KC_H, KC_T, KC_N, KC_S, NO_MINS,
47 KC_RCTRL, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT,
48 MO(SYMB), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
49 KC_HOME, KC_END,
50 KC_PGUP,
51 KC_PGDN, KC_ENT, KC_SPACE
52 ),
53/* Keymap 1: Symbol Layer
54 *
55 * ,--------------------------------------------------. ,--------------------------------------------------.
56 * | | | | | | | | | | | | | | | |
57 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
58 * | | { | } | [ | ] | $ | | | | " | ? | & | < | > | |
59 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
60 * | | ; | / | ( | ) | | |------| |------| # | ^ | # | " | ~ | |
61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
62 * | | : | = | @ | ! | \ | | | | % | ´ | ' | * | | |
63 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
64 * | | | | | | | | | | | |
65 * `----------------------------------' `----------------------------------'
66 * ,-------------. ,-------------.
67 * | | | | | |
68 * ,------|------|------| |------+------+------.
69 * | | | | | | | |
70 * | BSP | |------| |------| | |
71 * | | | | | | | |
72 * `--------------------' `--------------------'
73 */
74// SYMBOLS
75[SYMB] = LAYOUT_ergodox(
76 // left hand
77 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
78 KC_NO, ALGR(KC_7), ALGR(KC_0), ALGR(KC_8), ALGR(KC_9), ALGR(KC_4), KC_NO,
79 KC_NO, LSFT(KC_COMM), KC_KP_SLASH, LSFT(KC_8), LSFT(KC_9), ALGR(KC_NUBS),
80 KC_NO, LSFT(KC_DOT), LSFT(KC_0), ALGR(KC_2), KC_EXLM, ALGR(KC_MINS), KC_NO,
81 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
82 KC_NO, KC_NO,
83 KC_NO,
84 KC_TRNS, KC_NO, KC_NO,
85 // right hand
86 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
87 KC_NO, LSFT(KC_2), NO_QUES, LSFT(KC_6), NO_LESS, NO_GRTR, KC_NO,
88 KC_HASH, NO_CIRC, KC_HASH, LSFT(KC_2), NO_TILD, KC_NO,
89 KC_NO, KC_PERC, NO_ACUT, NO_APOS, NO_ASTR, NO_GRV, KC_NO,
90 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
91 KC_NO, KC_NO,
92 KC_NO,
93 KC_NO, KC_NO, KC_NO
94),
95/* Keymap 2: Media and mouse keys
96 *
97 * ,--------------------------------------------------. ,--------------------------------------------------.
98 * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
99 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
100 * | | F11 | F12 | | | | | | | | | | | | |
101 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
102 * | | | | | | |------| |------| | | | | | Vol Up |
103 * |--------+------+------+------+------+------| | | RCTRL|------+------+------+------+------+--------|
104 * | | | | | | | | | | | | | B1 | B2 |Vol Down|
105 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
106 * | LCTRL| | | LALT | | | | M_L | M_D | M_U | M_R |
107 * `----------------------------------' `----------------------------------'
108 * ,-------------. ,-------------.
109 * | | | | | |
110 * ,------|------|------| |------+------+------.
111 * | | | | | | | |
112 * | | |------| |------| | Play |
113 * | | | | | | | Pause|
114 * `--------------------' `--------------------'
115 */
116// MEDIA AND MOUSE
117[MOUS] = LAYOUT_ergodox(
118 KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO,
119 KC_NO, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO,
120 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
121 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
122 KC_TRNS, KC_NO, KC_NO, KC_TRNS, KC_NO,
123 KC_NO, KC_NO,
124 KC_NO,
125 KC_NO, KC_NO, KC_NO,
126 // right hand
127 KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO,
128 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
129 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLU,
130 KC_TRNS, KC_NO, KC_NO, KC_NO, KC_BTN1, KC_BTN2, KC_VOLD,
131 KC_NO, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R,
132 KC_NO, KC_NO,
133 KC_NO,
134 KC_NO, KC_NO, KC_MPLY
135),
136/* Keymap 3: QWERTY Layer
137 *
138 * ,--------------------------------------------------. ,--------------------------------------------------.
139 * | Print | ! | " | # | # | % | | |Middle| & | / | ( | ) | = | ? |
140 * | Screen | 1 | 2 @ | 3 £ | 4 $ | 5 | F11 | |Mouse | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
141 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
142 * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Å |
143 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
144 * | CapsLk | A | S | D | F | G |------| |------| H | J | K | L | Ö | Ä |
145 * |--------+------+------+------+------+------| ` | | Del |------+------+------+------+------+--------|
146 * | LShft | Z | X | C | V | B | ' | | | N | M | , | . | - | RShift |
147 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
148 * | LCtl | ^ | * | LAlt | LGui | | AltGr| Down | Up | Left | Right|
149 * | (') | " ~ | ' ´ | | | | | | | | |
150 * `----------------------------------' `----------------------------------'
151 * ,-------------. ,--------------.
152 * | LCtl | LAlt | | Home | End |
153 * ,------|------|------| |------+-------+------.
154 * | | | ~ | | PgUp | | |
155 * | BSP | TAB |------| |------| Enter | Space|
156 * | | | Esc | | PgDn | | |
157 * `--------------------' `---------------------'
158 */
159[QWRT] = LAYOUT_ergodox(
160 // left hand
161 KC_PSCR, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS,
162 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_TRNS,
163 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G,
164 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, NO_ACUT,
165 CTL_T(NO_APOS), NO_CIRC, NO_ASTR, KC_LALT, KC_LGUI,
166 KC_LCTRL, KC_LALT,
167 NO_TILD,
168 KC_BSPC, KC_TAB, KC_ESC,
169 // right hand
170 KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
171 KC_TRNS, KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
172 KC_H, KC_J, KC_K, KC_L, NO_OSLH, NO_AE,
173 KC_DELT, KC_N, KC_M, KC_COMM, KC_DOT, NO_MINS, KC_RSFT,
174 NO_ALGR, KC_DOWN, KC_UP, KC_LEFT, KC_RGHT,
175 KC_HOME, KC_END,
176 KC_PGUP,
177 KC_PGDN, KC_ENT, KC_SPACE
178),
179};
180
181const uint16_t PROGMEM fn_actions[] = {
182 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
183};
184
185
186// Runs just one time when the keyboard initializes.
187void matrix_init_user(void) {
188
189};
190
191// Runs constantly in the background, in a loop.
192void matrix_scan_user(void) {
193
194 uint8_t layer = biton32(layer_state);
195
196 ergodox_board_led_off();
197 ergodox_right_led_1_off();
198 ergodox_right_led_2_off();
199 ergodox_right_led_3_off();
200 switch (layer) {
201 case 1:
202 ergodox_right_led_1_on();
203 break;
204 case 2:
205 ergodox_right_led_2_on();
206 break;
207 case 3:
208 ergodox_right_led_3_on();
209 break;
210 default:
211 break;
212 }
213
214};
diff --git a/layouts/community/ergodox/dvorak_svorak_a5/readme.md b/layouts/community/ergodox/dvorak_svorak_a5/readme.md
new file mode 100644
index 000000000..c4b918416
--- /dev/null
+++ b/layouts/community/ergodox/dvorak_svorak_a5/readme.md
@@ -0,0 +1,42 @@
1# ErgoDox EZ Svorak A5
2
3This layout is supposed to be an implementation of the [Svorak A5
4layout](http://aoeu.info/s/dvorak/svorak). Unfortunately, the Ergodox EZ lacks
5one column for the right hand, why the three buttons furthest to the right, on
6the right half, are missing. I have tried to move them around and have yet to
7find a perfect position for them.
8
9
10## Note
11
12The keyboard assumes that the operating system interprets your keyboard as
13Swedish. If you get weird issues (like, most letters work, but not all special
14characters) please make sure your operating system uses a Swedish keyboard
15layout.
16
17
18## Flashing
19
20In order to compile and flash your Ergodox EZ, invoke the following at the root
21of the repository.
22
23`make ergodox_ez:dvorak_svorak_a5:teensy`
24
25I haven't gotten the above to work on Windows. Instead I use
26[Msys2](https://www.msys2.org/) to compile the .hex-file (`make ergodox_ez:dvorak_svorak_a5`)
27and [Teensy Loader](https://www.pjrc.com/teensy/loader_win10.html) to flash the
28board.
29
30
31## Changelog
32
33* 2018-08-09
34 * Initial release
35* 2018-08-10
36 * Make special characters work in Windows
37 * Add QWERTY layer
38
39# Author
40Erik Thorsell
41erikthorsell @ github and twitter
42