aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErez Zukerman <bulk@ezuk.org>2017-02-01 20:11:37 -0500
committerGitHub <noreply@github.com>2017-02-01 20:11:37 -0500
commita5d10e8c2e5d314083a2529460683210b00bf98a (patch)
treedd7348679e3c39dad3ca9ee3be68d7caa1c29e67
parent748316fc43e645baa12464c23f5ce703e92bf3e3 (diff)
parent02a95ee08c005cd7b823cab9e0791973d680b0d8 (diff)
downloadqmk_firmware-a5d10e8c2e5d314083a2529460683210b00bf98a.tar.gz
qmk_firmware-a5d10e8c2e5d314083a2529460683210b00bf98a.zip
Merge pull request #1054 from deadcyclo/master
Adds support for ergodox shine and unicode and emoji support to the deadcyclo layout
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/Makefile1
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.pngbin79741 -> 79488 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.pngbin55349 -> 79904 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.pngbin50926 -> 62258 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.pngbin43551 -> 58886 bytes
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/keymap.c426
-rw-r--r--keyboards/ergodox/keymaps/deadcyclo/readme.md60
7 files changed, 384 insertions, 103 deletions
diff --git a/keyboards/ergodox/keymaps/deadcyclo/Makefile b/keyboards/ergodox/keymaps/deadcyclo/Makefile
new file mode 100644
index 000000000..039f07c8e
--- /dev/null
+++ b/keyboards/ergodox/keymaps/deadcyclo/Makefile
@@ -0,0 +1 @@
UNICODE_ENABLE = yes
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
index 4208c5189..2c03af581 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-base-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
index ccda70e39..5adb7ac77 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-1-symbols.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
index 481e63e32..a267ff23d 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-2-media-and-mouse.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
index 9ebba6734..c8c90cf5c 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
+++ b/keyboards/ergodox/keymaps/deadcyclo/images/deadcyclo-layer-3-navigation.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/deadcyclo/keymap.c b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
index d75c805bf..5774511cc 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/keymap.c
+++ b/keyboards/ergodox/keymaps/deadcyclo/keymap.c
@@ -8,15 +8,86 @@
8#define MDIA 2 // media keys 8#define MDIA 2 // media keys
9#define NAVG 3 // navigation 9#define NAVG 3 // navigation
10 10
11enum custom_keycodes { 11enum macros {
12 PLACEHOLDER = SAFE_RANGE, // can always be here 12 RUN
13};
14
15enum function_ids {
16 EMOJI,
17 EMOJI2,
13 EPRM, 18 EPRM,
14 VRSN, 19 VRSN,
15 RGB_SLD 20 RGB_SLD,
21 GO_GROUP
16}; 22};
17 23
18// TODO: Get rid of of keys I don't want. Make others that I do. Set up lots of makros (Using hyper (and meh)) keys (where to put them?) 24/* opt can only be 0-15 */
25enum emojis {
26 SHRUG,
27 YAY,
28 HUG,
29 SMILE,
30 SMILE2,
31 HMM1,
32 HMM2,
33 BEAR1,
34 BEAR2,
35 FUU,
36 EGGY1,
37 EGGY2,
38 FACE1,
39 FACE2,
40 UHU,
41 SMRK1
42};
43
44enum emojis2 {
45 SMRK2,
46 LOVE
47};
48
49enum progmem_ids {
50 EMOJI_SHRUG,
51 EMOJI_YAY,
52 EMOJI_HUG,
53 EMOJI_SMILE,
54 EMOJI_SMILE2,
55 EMOJI_HMM1,
56 EMOJI_HMM2,
57 EMOJI_BEAR1,
58 EMOJI_BEAR2,
59 EMOJI_FUU,
60 EMOJI_EGGY1,
61 EMOJI_EGGY2,
62 EMOJI_FACE1,
63 EMOJI_FACE2,
64 EMOJI_UHU,
65 EMOJI_SMRK1,
66 EMOJI_SMRK2,
67 EMOJI_LOVE,
68 F_EPRM,
69 F_VRSN,
70 F_RGB_SLD,
71 I3_GO_GROUP_10,
72 I3_GO_GROUP_1,
73 I3_GO_GROUP_2,
74 I3_GO_GROUP_3,
75 I3_GO_GROUP_4,
76 I3_GO_GROUP_5,
77 I3_GO_GROUP_6,
78 I3_GO_GROUP_7,
79 I3_GO_GROUP_8,
80 I3_GO_GROUP_9,
81};
82
83// TODO: Finish the macros for i3 (Macros should potentially be own function instead to make things easier? some of them at least, f. ex. the ones that use 1-0 keys so we can have a single switch)
84
85// TODO: Do stuff with hyper and meh keys
86// TODO: Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
87// TODO: Make macros for gnu screen and i3wm
19// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers 88// TODO: Need to change hotkeys for lastpass, and potentially make my own keys for them on one of my layers
89// TODO: Look into using tap dance
90// TODO: Use leader key for stuff. See https://github.com/qmk/qmk_firmware/wiki
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 91const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21/* Keymap 0: Basic layer 92/* Keymap 0: Basic layer
22 * 93 *
@@ -29,7 +100,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
29 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------| 100 * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
30 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift | 101 * | LShift |Z/Ctrl| X | C | V | B | | | | N | M | , | . |//Ctrl| RShift |
31 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 102 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
32 * |Grv/L1| '" |AltShf| Lalt | Ralt | | Lalt | Ralt | [ | ] | ~/L1 | 103 * |Grv/L1| UNI |AltShf| Lalt | Ralt | | Lalt | Ralt | LEAD | UNI | ~/L1 |
33 * `----------------------------------' `----------------------------------' 104 * `----------------------------------' `----------------------------------'
34 * ,-------------. ,-------------. 105 * ,-------------. ,-------------.
35 * | App | Home | | PgUp | Ins | 106 * | App | Home | | PgUp | Ins |
@@ -43,11 +114,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
43// Otherwise, it needs KC_* 114// Otherwise, it needs KC_*
44[BASE] = KEYMAP( // layer 0 : default 115[BASE] = KEYMAP( // layer 0 : default
45 // left hand 116 // left hand
46 LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, 117 LT(NAVG,KC_ESC), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
47 LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), 118 LT(SYMB,KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
48 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, 119 KC_LCTL, LT(MDIA, KC_A), KC_S, KC_D, KC_F, KC_G,
49 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO), 120 KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
50 LT(SYMB,KC_GRV),KC_QUOT, LALT(KC_LSFT), KC_RALT,KC_LALT, 121 LT(SYMB,KC_GRV),LCTL(LSFT(KC_U)), LALT(KC_LSFT), KC_RALT,KC_LALT,
51 ALT_T(KC_APP), KC_HOME, 122 ALT_T(KC_APP), KC_HOME,
52 KC_END, 123 KC_END,
53 KC_SPC,KC_TAB,KC_LBRC, 124 KC_SPC,KC_TAB,KC_LBRC,
@@ -56,12 +127,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
56 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS), 127 TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, LT(SYMB, KC_BSLS),
57 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT), 128 KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),CTL_T(KC_QUOT),
58 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, 129 MEH_T(KC_NO),KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT,
59 KC_LALT, KC_RALT,KC_LBRC,KC_RBRC, LT(SYMB,KC_TILD), 130 KC_LALT, KC_RALT,KC_LEAD,LCTL(LSFT(KC_U)), LT(SYMB,KC_TILD),
60 KC_PGUP, KC_INS, 131 KC_PGUP, KC_INS,
61 KC_PGDN, 132 KC_PGDN,
62 KC_RBRC,KC_BSPC, KC_ENT 133 KC_RBRC,KC_BSPC, KC_ENT
63 ), 134 ),
64/* Keymap 1: Symbol Layer 135/* Keymap 1: Symbol Layer LCTL(LSFT(KC_U))
65 * 136 *
66 * ,--------------------------------------------------. ,--------------------------------------------------. 137 * ,--------------------------------------------------. ,--------------------------------------------------.
67 * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 | 138 * | | F1 | F2 | F3 | F4 | F5 | F6 | | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
@@ -75,11 +146,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
75 * | | | | | | | | . | 0 | = | | 146 * | | | | | | | | . | 0 | = | |
76 * `----------------------------------' `----------------------------------' 147 * `----------------------------------' `----------------------------------'
77 * ,-------------. ,-------------. 148 * ,-------------. ,-------------.
78 * | | | | | | 149 * |Toggle|Animat| | Hue+ | Hue- |
79 * ,------|------|------| |------+------+------. 150 * ,------|------|------| |------+------+------.
80 * | | | | | | | | 151 * |Bright|Bright|Solid | | | | |
81 * | | |------| |------| DEL | | 152 * |ness- |ness+ |------| |------| DEL | |
82 * | | | | | | | | 153 * | | | | | EPRM | | |
83 * `--------------------' `--------------------' 154 * `--------------------' `--------------------'
84 */ 155 */
85// SYMBOLS 156// SYMBOLS
@@ -90,27 +161,27 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
90 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV, 161 KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
91 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS, 162 KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
92 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 163 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
93 KC_TRNS,KC_TRNS, 164 RGB_TOG,RGB_MOD,
94 KC_TRNS, 165 F(F_RGB_SLD),
95 KC_TRNS,KC_TRNS,KC_TRNS, 166 RGB_VAD,RGB_VAI,KC_TRNS,
96 // right hand 167 // right hand
97 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 168 KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
98 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS, 169 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_TRNS,
99 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS, 170 KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
100 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS, 171 KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
101 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS, 172 KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
102 KC_TRNS, KC_TRNS, 173 RGB_HUD, RGB_HUI,
103 KC_TRNS, 174 KC_TRNS,
104 KC_TRNS, KC_DEL, KC_TRNS 175 F(F_EPRM), KC_DEL, KC_TRNS
105), 176),
106/* Keymap 2: Media and mouse keys 177/* Keymap 2: Media, mouse and navigation
107 * 178 *
108 * ,--------------------------------------------------. ,--------------------------------------------------. 179 * ,--------------------------------------------------. ,--------------------------------------------------.
109 * | | | | | | | | | | | | | | | | 180 * | | gg(1)| | | | | | | | | | | | | |
110 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 181 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
111 * | | | | MsUp | | | | | | | | | | | | 182 * | | | | MsUp | RUN | | | | | | | Up | | | |
112 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 183 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
113 * | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play | 184 * | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | Play |
114 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 185 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
115 * | | | | | | | | | | | | Prev | Next | | | 186 * | | | | | | | | | | | | Prev | Next | | |
116 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 187 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
@@ -124,10 +195,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
124 * | | | | | | | | 195 * | | | | | | | |
125 * `--------------------' `--------------------' 196 * `--------------------' `--------------------'
126 */ 197 */
127// MEDIA AND MOUSE 198// MEDIA , MOUSE and NAVIGATION
128[MDIA] = KEYMAP( 199[MDIA] = KEYMAP(
129 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 200 KC_TRNS, F(I3_GO_GROUP_1), F(I3_GO_GROUP_2), F(I3_GO_GROUP_3), F(I3_GO_GROUP_4), F(I3_GO_GROUP_5), F(I3_GO_GROUP_6),
130 KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, KC_TRNS, KC_TRNS, KC_TRNS, 201KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, M(RUN), KC_TRNS, KC_TRNS,
131 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, 202 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
132 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 203 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
133 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2, 204 KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
@@ -135,116 +206,280 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
135 KC_TRNS, 206 KC_TRNS,
136 KC_TRNS, KC_TRNS, KC_TRNS, 207 KC_TRNS, KC_TRNS, KC_TRNS,
137 // right hand 208 // right hand
138 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 209 F(I3_GO_GROUP_6), F(I3_GO_GROUP_7), F(I3_GO_GROUP_8), F(I3_GO_GROUP_9), F(I3_GO_GROUP_10), KC_TRNS, KC_TRNS,
139 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 210 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
140 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, 211 KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_MPLY,
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, 212 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
142 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, 213 KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
143 KC_TRNS, KC_TRNS, 214 KC_TRNS, KC_TRNS,
144 KC_TRNS, 215 KC_TRNS,
145 KC_TRNS, KC_TRNS, KC_WBAK 216 KC_TRNS, KC_TRNS, KC_WBAK
146), 217),
147 218
148/* Keymap 3: Navigation TODO: Printscreen, pg up down, home, end, others? Insert for example 219/* Keymap 3: Unicode
149 * 220 *
150 * ,--------------------------------------------------. ,--------------------------------------------------. 221 * ,--------------------------------------------------. ,--------------------------------------------------.
151 * | | VER | | | | | | | | | | | | | | 222 * | | ┌ | ┐ | └ | ┘ | │ | ─ | | ╔ | ╗ | ╚ | ╝ | ║ | ═ | |
152 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 223 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
153 * | | | | up | | | | | | | | | | | | 224 * | | shrug| yay | hug | smile|smile2| | | | ■ | λ | → | ➙ | ▻ | █ |
154 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 225 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
155 * | | | left | down | right| |------| |------| | | | | | | 226 * | | hmm1 | hmm2 | bear1| bear2| fuu |------| |------| ☺ | ☻ | ☹ | ♡ | ♥ | ░ |
156 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 227 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
157 * | | | | | | | | | | | | | | | | 228 * | | eggy1| eggy2| face1| face2| uhu | | | | ❤ | ☐ | ☑ | ☒ | ✓ | ▄ |
158 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 229 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
159 * | | | | | | | | | | | | 230 * | | smrk1| smrk2| love | VER | | | | | | |
160 * `----------------------------------' `----------------------------------' 231 * `----------------------------------' `----------------------------------'
161 * ,-------------. ,-------------. 232 * ,-------------. ,-------------.
162 * | | | | | | 233 * | | | | | |
163 * ,------|------|------| |------+------+------. 234 * ,------|------|------| |------+------+------.
164 * | | | | | | | | 235 * | | | | | | | |
165 * | | |------| |------| | | 236 * | | |------| |------| | |
166 * | | | | | | | | 237 * | | | | | | | |
167 * `--------------------' `--------------------' 238 * `--------------------' `--------------------'
168 */ 239 */
169// NAVIGATION 240// Unicode
170[NAVG] = KEYMAP( 241[NAVG] = KEYMAP(
171 KC_TRNS, VRSN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 242 KC_TRNS, UC(0x250c), UC(0x2510), UC(0x2514), UC(0x2518), UC(0x2502), UC(0x2500),
172 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, 243 KC_TRNS, F(EMOJI_SHRUG), F(EMOJI_YAY), F(EMOJI_HUG), F(EMOJI_SMILE), F(EMOJI_SMILE2), KC_TRNS,
173 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, 244 KC_TRNS, F(EMOJI_HMM1), F(EMOJI_HMM2), F(EMOJI_BEAR1), F(EMOJI_BEAR2), F(EMOJI_FUU),
174 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 245 KC_TRNS, F(EMOJI_EGGY1), F(EMOJI_EGGY2), F(EMOJI_FACE1), F(EMOJI_FACE2), F(EMOJI_UHU), KC_TRNS,
175 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 246 KC_TRNS, F(EMOJI_SMRK1), F(EMOJI_SMRK2), F(EMOJI_LOVE), F(F_VRSN),
176 KC_TRNS, KC_TRNS, 247 KC_TRNS, KC_TRNS,
177 KC_TRNS, 248 KC_TRNS,
178 KC_TRNS, KC_TRNS, KC_TRNS, 249 KC_TRNS, KC_TRNS, KC_TRNS,
179 // right hand 250 // right hand
180 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 251 UC(0x2554), UC(0x2557), UC(0x255a), UC(0x255d), UC(0x2551), UC(0x2550), KC_TRNS,
181 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 252 KC_TRNS, UC(0x25a0), UC(0x03bb), UC(0x2192), UC(0x2799), UC(0x25bb), UC(0x2588),
182 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 253 UC(0x263a), UC(0x263b), UC(0x2639), UC(0x2661), UC(0x2665), UC(0x2591),
183 KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_TRNS, KC_TRNS, KC_TRNS, 254 KC_TRNS, UC(0x2764), UC(0x2610), UC(0x2611), UC(0x2612), UC(0x2713), UC(0x2584),
184 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 255 UC(0x2714), UC(0x2717), UC(0x2718), UC(0x25cf), UC(0x2580),
185 KC_TRNS, KC_TRNS, 256 UC(0x2592), UC(0x2593),
186 KC_TRNS, 257 KC_TRNS,
187 KC_TRNS, KC_TRNS, KC_TRNS 258 KC_TRNS, KC_TRNS, KC_TRNS
188), 259),
189}; 260};
190 261
191const uint16_t PROGMEM fn_actions[] = { 262const uint16_t PROGMEM fn_actions[] = {
192 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols) 263 [EMOJI_SHRUG] = ACTION_FUNCTION_OPT(EMOJI, SHRUG),
264 [EMOJI_YAY] = ACTION_FUNCTION_OPT(EMOJI, YAY),
265 [EMOJI_HUG] = ACTION_FUNCTION_OPT(EMOJI,HUG),
266 [EMOJI_SMILE] = ACTION_FUNCTION_OPT(EMOJI,SMILE),
267 [EMOJI_SMILE2] = ACTION_FUNCTION_OPT(EMOJI,SMILE2),
268 [EMOJI_HMM1] = ACTION_FUNCTION_OPT(EMOJI,HMM1),
269 [EMOJI_HMM2] = ACTION_FUNCTION_OPT(EMOJI,HMM2),
270 [EMOJI_BEAR1] = ACTION_FUNCTION_OPT(EMOJI,BEAR1),
271 [EMOJI_BEAR2] = ACTION_FUNCTION_OPT(EMOJI,BEAR2),
272 [EMOJI_FUU] = ACTION_FUNCTION_OPT(EMOJI,FUU),
273 [EMOJI_EGGY1] = ACTION_FUNCTION_OPT(EMOJI,EGGY1),
274 [EMOJI_EGGY2] = ACTION_FUNCTION_OPT(EMOJI,EGGY2),
275 [EMOJI_FACE1] = ACTION_FUNCTION_OPT(EMOJI,FACE1),
276 [EMOJI_FACE2] = ACTION_FUNCTION_OPT(EMOJI,FACE2),
277 [EMOJI_UHU] = ACTION_FUNCTION_OPT(EMOJI,UHU),
278 [EMOJI_SMRK1] = ACTION_FUNCTION_OPT(EMOJI,SMRK1),
279 [EMOJI_SMRK2] = ACTION_FUNCTION_OPT(EMOJI2,SMRK2),
280 [EMOJI_LOVE] = ACTION_FUNCTION_OPT(EMOJI2,LOVE),
281 [F_EPRM] = ACTION_FUNCTION(EPRM),
282 [F_VRSN] = ACTION_FUNCTION(VRSN),
283 [F_RGB_SLD] = ACTION_FUNCTION(RGB_SLD),
284 [I3_GO_GROUP_10]= ACTION_FUNCTION_OPT(GO_GROUP,0),
285 [I3_GO_GROUP_1] = ACTION_FUNCTION_OPT(GO_GROUP,1),
286 [I3_GO_GROUP_2] = ACTION_FUNCTION_OPT(GO_GROUP,2),
287 [I3_GO_GROUP_3] = ACTION_FUNCTION_OPT(GO_GROUP,3),
288 [I3_GO_GROUP_4] = ACTION_FUNCTION_OPT(GO_GROUP,4),
289 [I3_GO_GROUP_5] = ACTION_FUNCTION_OPT(GO_GROUP,5),
290 [I3_GO_GROUP_6] = ACTION_FUNCTION_OPT(GO_GROUP,6),
291 [I3_GO_GROUP_7] = ACTION_FUNCTION_OPT(GO_GROUP,7),
292 [I3_GO_GROUP_8] = ACTION_FUNCTION_OPT(GO_GROUP,8),
293 [I3_GO_GROUP_9] = ACTION_FUNCTION_OPT(GO_GROUP,9),
193}; 294};
194 295
195const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 296#define TAP_ONCE(code) \
196{ 297 register_code (code); \
197 // MACRODOWN only works in this function 298 unregister_code (code)
198 switch(id) {
199 case 0:
200 if (record->event.pressed) {
201 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
202 }
203 break;
204 case 1:
205 if (record->event.pressed) { // For resetting EEPROM
206 eeconfig_init();
207 }
208 break;
209 }
210 return MACRO_NONE;
211};
212 299
213bool process_record_user(uint16_t keycode, keyrecord_t *record) { 300void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
214 switch (keycode) { 301 if (record->event.pressed) {
215 // dynamically generate these. 302 switch(id) {
216 case EPRM: 303 case EPRM:
217 if (record->event.pressed) { 304 eeconfig_init();
218 eeconfig_init();
219 }
220 return false;
221 break; 305 break;
222 case VRSN: 306 case VRSN:
223 if (record->event.pressed) { 307 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
224 SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
225 }
226 return false;
227 break; 308 break;
228 case RGB_SLD: 309 case RGB_SLD:
229 if (record->event.pressed) { 310#ifdef RGBLIGHT_ENABLE
230 #ifdef RGBLIGHT_ENABLE 311 rgblight_mode(1);
231 rgblight_mode(1); 312#endif
232 #endif 313 break;
314 case GO_GROUP:
315 register_code(KC_LCTL); TAP_ONCE(KC_I); unregister_code(KC_LCTL);
316 TAP_ONCE(KC_G);
317 if (opt == 0) {
318 TAP_ONCE(39);
319 } else {
320 TAP_ONCE(29+opt);
321 }
322 break;
323 case EMOJI:
324 switch(opt) {
325 case SHRUG:
326 unicode_input_start(); register_hex(0xaf); unicode_input_finish();
327 TAP_ONCE (KC_BSLS);
328 register_code (KC_RSFT); TAP_ONCE (KC_MINS); TAP_ONCE (KC_9); unregister_code (KC_RSFT);
329 unicode_input_start (); register_hex(0x30c4); unicode_input_finish();
330 register_code (KC_RSFT); TAP_ONCE (KC_0); TAP_ONCE (KC_MINS); unregister_code (KC_RSFT);
331 TAP_ONCE (KC_SLSH);
332 unicode_input_start (); register_hex(0xaf); unicode_input_finish();
333 break;
334 case YAY:
335 SEND_STRING ("\\o/");
336 break;
337 case HUG:
338 unicode_input_start(); register_hex(0x0f3c); unicode_input_finish();
339 TAP_ONCE (KC_SPC);
340 unicode_input_start(); register_hex(0x3064); unicode_input_finish();
341 TAP_ONCE (KC_SPC);
342 unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
343 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
344 unicode_input_start(); register_hex(0x25d5); unicode_input_finish();
345 TAP_ONCE (KC_SPC);
346 unicode_input_start(); register_hex(0x0f3d); unicode_input_finish();
347 unicode_input_start(); register_hex(0x3064); unicode_input_finish();
348 break;
349 case SMILE:
350 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
351 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
352 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
353 break;
354 case SMILE2:
355 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
356 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
357 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
358 unicode_input_start(); register_hex(0x0298); unicode_input_finish();
359 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
360 break;
361 case HMM1:
362 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
363 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
364 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
365 break;
366 case HMM2:
367 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
368 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
369 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
370 unicode_input_start(); register_hex(0x0ca0); unicode_input_finish();
371 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
372 break;
373 case BEAR1:
374 unicode_input_start(); register_hex(0x0295); unicode_input_finish();
375 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
376 unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
377 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
378 unicode_input_start(); register_hex(0x0294); unicode_input_finish();
379 break;
380 case BEAR2:
381 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
382 unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
383 unicode_input_start(); register_hex(0x1d25); unicode_input_finish();
384 unicode_input_start(); register_hex(0x1d54); unicode_input_finish();
385 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
386 break;
387 case FUU:
388 unicode_input_start(); register_hex(0x256d); unicode_input_finish();
389 unicode_input_start(); register_hex(0x2229); unicode_input_finish();
390 unicode_input_start(); register_hex(0x256e); unicode_input_finish();
391 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
392 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
393 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
394 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
395 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
396 unicode_input_start(); register_hex(0x256d); unicode_input_finish();
397 unicode_input_start(); register_hex(0x2229); unicode_input_finish();
398 unicode_input_start(); register_hex(0x256e); unicode_input_finish();
399 break;
400 case EGGY1:
401 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
402 unicode_input_start(); register_hex(0x256f); unicode_input_finish();
403 unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
404 unicode_input_start(); register_hex(0x25a1); unicode_input_finish();
405 unicode_input_start(); register_hex(0x00b0); unicode_input_finish();
406 unicode_input_start(); register_hex(0xff09); unicode_input_finish();
407 unicode_input_start(); register_hex(0x256f); unicode_input_finish();
408 break;
409 case EGGY2:
410 unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
411 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
412 unicode_input_start(); register_hex(0x0020); unicode_input_finish();
413 unicode_input_start(); register_hex(0x309c); unicode_input_finish();
414 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
415 unicode_input_start(); register_hex(0x309c); unicode_input_finish();
416 unicode_input_start(); register_hex(0x30ce); unicode_input_finish();
417 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
418 break;
419 case FACE1:
420 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
421 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
422 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
423 unicode_input_start(); register_hex(0x002d); unicode_input_finish();
424 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
425 break;
426 case FACE2:
427 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
428 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
429 unicode_input_start(); register_hex(0x005f); unicode_input_finish();
430 unicode_input_start(); register_hex(0x2022); unicode_input_finish();
431 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
432 break;
433 case UHU:
434 unicode_input_start(); register_hex(0x2299); unicode_input_finish();
435 unicode_input_start(); register_hex(0xfe4f); unicode_input_finish();
436 unicode_input_start(); register_hex(0x2299); unicode_input_finish();
437 break;
438 case SMRK1:
439 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
440 unicode_input_start(); register_hex(0x032e); unicode_input_finish();
441 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
442 break;
233 } 443 }
234 return false;
235 break; 444 break;
445 case EMOJI2:
446 switch(opt) {
447 case SMRK2:
448 unicode_input_start(); register_hex(0x0028); unicode_input_finish();
449 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
450 unicode_input_start(); register_hex(0x032e); unicode_input_finish();
451 unicode_input_start(); register_hex(0x005e); unicode_input_finish();
452 unicode_input_start(); register_hex(0x0029); unicode_input_finish();
453 break;
454 case LOVE:
455 unicode_input_start(); register_hex(0x2665); unicode_input_finish();
456 unicode_input_start(); register_hex(0x203f); unicode_input_finish();
457 unicode_input_start(); register_hex(0x2665); unicode_input_finish();
458 break;
459 }
460 break;
461 }
236 } 462 }
237 return true;
238} 463}
239 464
465const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
466 if (record->event.pressed) {
467 switch(id) {
468 case RUN:
469 return MACRO( D(LCTL), T(I), U(LCTL), T(R), END );
470 break;
471 }
472 }
473 return MACRO_NONE;
474};
475
240// Runs just one time when the keyboard initializes. 476// Runs just one time when the keyboard initializes.
241void matrix_init_user(void) { 477void matrix_init_user(void) {
242 478 set_unicode_input_mode(UC_LNX);
243}; 479};
244 480
245// Runs constantly in the background, in a loop. 481// Runs constantly in the background, in a loop.
246void matrix_scan_user(void) { 482void matrix_scan_user(void) {
247
248 uint8_t layer = biton32(layer_state); 483 uint8_t layer = biton32(layer_state);
249 484
250 ergodox_board_led_off(); 485 ergodox_board_led_off();
@@ -254,12 +489,21 @@ void matrix_scan_user(void) {
254 switch (layer) { 489 switch (layer) {
255 case 1: 490 case 1:
256 ergodox_right_led_1_on(); 491 ergodox_right_led_1_on();
492 #ifdef RGBLIGHT_ENABLE
493 rgblight_setrgb(0xff,0x00,0x00);
494 #endif
257 break; 495 break;
258 case 2: 496 case 2:
259 ergodox_right_led_2_on(); 497 ergodox_right_led_2_on();
498 #ifdef RGBLIGHT_ENABLE
499 rgblight_setrgb(0x00,0xff,0x00);
500 #endif
260 break; 501 break;
261 case 3: 502 case 3:
262 ergodox_right_led_3_on(); 503 ergodox_right_led_3_on();
504 #ifdef RGBLIGHT_ENABLE
505 rgblight_setrgb(0x00,0x00,0xff);
506 #endif
263 break; 507 break;
264 case 4: 508 case 4:
265 ergodox_right_led_1_on(); // TODO: Make a fourth layer 509 ergodox_right_led_1_on(); // TODO: Make a fourth layer
diff --git a/keyboards/ergodox/keymaps/deadcyclo/readme.md b/keyboards/ergodox/keymaps/deadcyclo/readme.md
index 809dd6eb5..fa41f0ec1 100644
--- a/keyboards/ergodox/keymaps/deadcyclo/readme.md
+++ b/keyboards/ergodox/keymaps/deadcyclo/readme.md
@@ -1,9 +1,11 @@
1# ErgoDox EZ 1337 configuration 1# ErgoDox EZ 1337 configuration
2 2
3Custom layout based on the default layout. Intended for interational users of us intl-altgr layout. Note that 3Custom layout based on the default layout. Intended for interational
4some common keys might be missing, as this layout is intented to be used on *nix systems by users familiar 4users of us intl-altgr layout. Note that some common keys might be
5with their system. The layout is geared towards avoiding using the rat (mouse for those of you who are 5missing, as this layout is intented to be used on *nix systems by
6unfamiliar with tiling window managers) as much as possibly. 6users familiar with their system. The layout is geared towards
7avoiding using the rat (mouse for those of you who are unfamiliar with
8tiling window managers) as much as possibly.
7 9
8# Layouts 10# Layouts
9 11
@@ -13,24 +15,58 @@ All layer images created using [keyboard-layout-editor](http://www.keyboard-layo
13 15
14[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366) 16[![Base layer](images/deadcyclo-base-layout.png)](http://www.keyboard-layout-editor.com/#/gists/0321b18620180a3e46c498206eb65366)
15 17
16## Layer 1 - Symbols 18The base layer here is marked with the us international alt-gr layout,
19including characters bound to what on an iso keyboard would be alt-gr
20and on an ansi keyboard right alt.
17 21
18[![Layer 1 - Symbols](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73) 22Regular (and irregular) modifier keys are marked with a yellowish
23gray. Layer moderators are marked with blue, red and green, which are
24the same colors each layer displays on the LEDs when active.
19 25
20## Layer 2 - Media and Mouse 26All of the layer switch keys, except for the two center keys marked L1
27TOG, are dual purpose. Hence for example the top left key produces ESC
28if tapped, and temporarilly toggles L3 when hold down. The two center
29L1 TOG keys toggle L1 on and off for more permanent layer toggling.
21 30
22[![Layer 2 - Media and Mouse](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731) 31The UNI keys enter the linux ibus unicode composer mode
32(ie. Ctrl+Shift+u). Use this to enter unicode characters. Hit the key,
33type in the unicode hex value, and hit enter.
23 34
24## Layer 3 - Navigation 35## Layer 1 - Symbols and RGB
25 36
26[![Layer 3 - Navigation](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289) 37[![Layer 1 - Symbols and RGB](images/deadcyclo-layer-1-symbols.png)](http://www.keyboard-layout-editor.com/#/gists/96714e198054c9115bafb5267cc6bc73)
38
39The Symbols and RGB layer contains function keys, commonly used
40symbols, a numpad and if you have the new Ergodox Ez shine keys for
41controlling various RGB-led functions. In addition, it provides an up
42and a down key for easy scrolling. RGB controller keys are yellow.
43
44## Layer 2 - Media, Mouse and Navigation
45
46[![Layer 2 - Media, Mouse and Navigation](images/deadcyclo-layer-2-media-and-mouse.png)](http://www.keyboard-layout-editor.com/#/gists/824759486e378bcec30784309a7e5731)
47
48The Media, Mouse and unicode layer contains special keys for moving
49the mouse and clicking on it with the keyboard. In addition it
50provides standard media control keys, and default arrow keys.
51
52## Layer 3 - Unicode
53
54[![Layer 3 - Unicode](images/deadcyclo-layer-3-navigation.png)](http://www.keyboard-layout-editor.com/#/gists/67d9613dcd873c68693d11863d0fd289)
55
56The unicode layer provides keys for directly typing unicode (utf-8)
27 57
28# Changelog 58# Changelog
29 59
30- 02.01.2017 Added delete key on second layer 60- 02.01.2017 Added delete key on second layer
31- 10.01.2017 Added layer images to readme 61- 10.01.2017 Added layer images to readme
62- 24.01.2017 Added support for Ergodox Shine. Added secondary L2 switch key on left hand
63- 24.01.2017 Added unicode keys. Added shrug hug and yay. Moved Navigation to layer 2
64- 25.01.2017 Added lots of new emojis and some unicode keys
65- 27.01.2017 Added new unicode keys and shortcut for ibus unicode composer key (CTRL+SHIFT+U)
32 66
33# TODO 67# TODO
34 68
35- Add unicode support (direct input and indirect? see algernon layout for examples) 69- Add macros for lots of stuff. (Lastpass cli, pushbullet cli, other push service cli, linode cli, more?)
36- Add descriptions below each layer image of any special functions/keys 70- Make macros for gnu screen and i3wm
71- Look into the app launch macros in algernon keymap
72