aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/keymap.c703
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.pngbin263677 -> 189394 bytes
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c376
-rw-r--r--keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.pngbin0 -> 187629 bytes
-rw-r--r--quantum/keymap_extras/keymap_german_osx.h4
5 files changed, 689 insertions, 394 deletions
diff --git a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
index dc47b8c1e..174f26cbe 100644
--- a/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
+++ b/keyboard/ergodox_ez/keymaps/osx_de/keymap.c
@@ -1,417 +1,329 @@
1#include "ergodox_ez.h" 1#include "ergodox_ez.h"
2#include "debug.h" 2#include "debug.h"
3#include "action_layer.h" 3#include "action_layer.h"
4#include "keymap_extras/keymap_french.h"
5#include "keymap_extras/keymap_neo2.h"
6#include "keymap_extras/keymap_uk.h"
7#include "keymap_extras/keymap_colemak.h"
8#include "keymap_extras/keymap_french_osx.h"
9#include "keymap_extras/keymap_nordic.h"
10#include "keymap_extras/keymap_dvorak.h"
11#include "keymap_extras/keymap_german.h"
12#include "keymap_extras/keymap_norwegian.c"
13#include "keymap_extras/keymap_fr_ch.h"
4#include "keymap_extras/keymap_german_osx.h" 14#include "keymap_extras/keymap_german_osx.h"
15#include "keymap_extras/keymap_spanish.h"
16#include "keymap_extras/keymap_bepo.h"
5 17
6#define BASE 0 // default layer 18#define BASE 0
7#define SYMB 1 // symbols 19#define SYMB 1
8#define MDIA 2 // media keys 20#define MDIA 2
9#define SMLY 3 // media keys 21#define SMLY 3
10#define NUMB 4 // number keys 22#define NUMB 4
11#define EGOS 5 // Egoshooter layer 23#define EGOS 5
12
13#define M_CTRL_CMDV 1
14#define M_CTRL_CMDC 2
15#define M_MEH_SH_ACUT 3
16#define M_DE_OSX_PLUS_CTRLALT 12
17#define M_DE_OSX_CIRC_CTRLCMD 13
18#define M_TOGGLE_5 14
19#define M_CTL_SFT_HASH 15
20#define M_LGUI_SHFT 16
21
22#define SM_SMILE 4
23#define SM_SMIRK 5
24#define SM_FROWN 6
25#define SM_CRY 7
26#define SM_KISS 8
27#define SM_HEART 9
28#define SM_LAUGH 10
29#define SM_SAD 11
30 24
25#define M_CTRL_CMDV 0
26#define M_CTRL_CMDC 1
27#define M_MEH_SH_ACUT 2
28#define M_LGUI_SHFT 3
29#define M_CTL_SFT_HASH 4
30#define M_DE_OSX_CIRC_CTRLCMD 5
31#define M_DE_OSX_PLUS_CTRLALT 6
32#define SM_SMILE 7
33#define SM_SMIRK 8
34#define SM_CRY 9
35#define SM_SAD 10
36#define SM_HEART 11
37#define SM_LAUGH 12
38#define SM_KISS 13
39#define SM_FROWN 14
40#define M_TOGGLE_5 15
31 41
42//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33/* Keymap 0: Basic layer 44[BASE]=KEYMAP(
34 * 45//left half
35 * ,-----------------------------------------------------. ,--------------------------------------------------. 46 KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH),
36 * | ESC | 1 | 2 | 3 | 4 | 5 |CTL_SFT/#| |CTL_SFT/#| 6 | 7 | 8 | 9 | 0 | ß | 47 KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI,
37 * |--------+------+------+------+------+----------------| |---------+------+------+------+------+------+--------| 48 KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G,
38 * | TAB | Q | W | E | R | T | CMD | | CMD | Z | U | I | O | P | ü | 49 KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT,
39 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 50 LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN,
40 * | LALT | A | S | D | F | G |---------| |---------| H | J | K | L | ö | ä/RALT| 51 M(M_MEH_SH_ACUT), TG(MDIA),
41 * |--------+------+------+------+------+------| LALT | | RALT |------+------+------+------+------+--------| 52 KC_HOME,
42 * | LShift |Y/Ctrl| X | C | V | B | | | | N | M | , | . |-/Ctrl| RShift | 53 KC_BSPC, KC_DEL, LT(SMLY,KC_END),
43 * `--------+------+------+------+------+----------------' `-------------+------+------+------+------+--------' 54 //right half
44 * |</L1| ^°/CTRL_CMD | +/CTRL_ALT | UP | DOWN| | Left | Right | CMD-SHFT| ALT-SHIFT | +/L1 | 55 M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS,
45 * `------------------------------------------' `---------------------------------------------' 56 KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE,
46 * ,-------------. ,---------------. 57 DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE),
47 * |`/Meh | Media| | NUM | ´/Hyper | 58 KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT,
48 * ,------|------|------| |------+--------+------. 59 KC_LEFT, KC_RIGHT, LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS),
49 * | | | Home | | PgUp | | | 60 TG(NUMB), ALL_T(DE_OSX_ACUT),
50 * | Back-| Del |------| |------| Enter | Space| 61 KC_PGUP,
51 * | Space| | End | | PgDn | | | 62 KC_PGDN, KC_ENT, KC_SPC),
52 * `--------------------' `----------------------' 63[SYMB]=KEYMAP(
53 */ 64//left half
54// If it accepts an argument (i.e, is a function), it doesn't need KC_. 65 KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
55// Otherwise, it needs KC_* 66 KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS,
56[BASE] = KEYMAP( // layer 0 : default 67 KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT,
57 // left hand 68 KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS,
58 KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(M_CTL_SFT_HASH), 69 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI, 70 KC_TRNS, KC_TRNS,
60 KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G, 71 KC_TRNS,
61 KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT, 72 KC_TRNS, KC_DEL, KC_TRNS,
62 LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), KC_UP, KC_DOWN, 73 //right half
63 M(M_MEH_SH_ACUT), TG(MDIA), 74 M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
64 KC_HOME, 75 KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM,
65 KC_BSPC,KC_DEL, LT(SMLY,KC_END), 76 DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH,
66 // right hand 77 KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4),
67 M(M_CTL_SFT_HASH), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS, 78 DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS,
68 KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE, 79 KC_F13, KC_F12,
69 DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE), 80 KC_F14,
70 KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM,DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT, 81 KC_F15, KC_TRNS, KC_TRNS),
71 KC_LEFT, KC_RIGHT,LGUI(KC_LSFT),LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS), 82[MDIA]=KEYMAP(
72 TG(NUMB), ALL_T(DE_OSX_ACUT), 83//left half
73 KC_PGUP, 84 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
74 KC_PGDN,KC_ENT, KC_SPC 85 KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
75 ), 86 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
76/* Keymap 1: Symbol Layer 87 KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
77 * 88 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
78 * ,--------------------------------------------------. ,--------------------------------------------------. 89 KC_TRNS, KC_TRNS,
79 * | | F1 | F2 | F3 | F4 | F5 | | | L5 | F6 | F7 | F8 | F9 | F10 | F11 | 90 KC_TRNS,
80 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 91 KC_TRNS, KC_TRNS, KC_TRNS,
81 * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! | 92 //right half
82 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 93 KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
83 * | | # | $ | \ | / | . |------| |------| / | ( | ) | { | } | # | 94 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
84 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 95 KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
85 * | | | ^ | % | | | ~ | | | | | | ~ | ^ | UP | | $ | 96 KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
86 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 97 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
87 * | | | | | | | ' | LEFT| DOWN | RIGHT | | 98 KC_TRNS, KC_TRNS,
88 * `----------------------------------' `----------------------------------' 99 KC_TRNS,
89 * ,-------------. ,-------------. 100 KC_TRNS, KC_TRNS, KC_WBAK),
90 * | | | | F13 | F12 | 101[SMLY]=KEYMAP(
91 * ,------|------|------| |------+------+------. 102//left half
92 * | | | | | F14 | | | 103 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
93 * | | |------| |------| | | 104 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
94 * | | | | | F15 | | | 105 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
95 * `--------------------' `--------------------' 106 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
96 */ 107 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
97// SYMBOLS 108 KC_TRNS, KC_TRNS,
98[SYMB] = KEYMAP( 109 KC_TRNS,
99 // left hand 110 KC_TRNS, KC_TRNS, KC_TRNS,
100 KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS, 111 //right half
101 KC_TRNS,DE_OSX_LESS,DE_OSX_MORE,DE_OSX_EXLM,DE_OSX_QST, KC_TRNS,KC_TRNS, 112 M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
102 KC_TRNS,DE_OSX_HASH,DE_OSX_DLR, DE_OSX_BSLS,DE_OSX_SLSH,KC_DOT, 113 KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
103 KC_TRNS,KC_TRNS,DE_OSX_LESS,DE_OSX_PERC,DE_OSX_PIPE,DE_OSX_TILD,KC_TRNS, 114 M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
104 KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, 115 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
105 KC_TRNS,KC_TRNS, 116 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
106 KC_TRNS, 117 KC_TRNS, KC_TRNS,
107 KC_TRNS,KC_DEL,KC_TRNS, 118 KC_TRNS,
108 // right hand 119 KC_TRNS, KC_TRNS, KC_TRNS),
109 M(M_TOGGLE_5), KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, 120[NUMB]=KEYMAP(
110 KC_TRNS, LALT(LSFT(KC_7)), LALT(KC_5), LALT(KC_6), DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, 121//left half
111 DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, LALT(KC_8), LALT(KC_9), DE_OSX_HASH, 122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
112 KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, DE_OSX_CIRC, KC_UP, DE_OSX_MINS, LSFT(KC_4), 123 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
113 DE_OSX_QUOT, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, 124 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
114 KC_F13, KC_F12, 125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
115 KC_F14, 126 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
116 KC_F15, KC_TRNS, KC_TRNS 127 KC_TRNS, KC_TRNS,
117), 128 KC_TRNS,
118/* Keymap 2: Media and mouse keys 129 KC_TRNS, KC_TRNS, KC_TRNS,
119 * 130 //right half
120 * ,--------------------------------------------------. ,--------------------------------------------------. 131 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
121 * | | | | | | | | | Mute | | | | | | EGOS | 132 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
122 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| 133 KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS,
123 * | | | Lclk | MsUp | Rclk | WlUp | | | | | | | | | | 134 KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
124 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 135 KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS,
125 * | | |MsLeft|MsDown|MsRght| WlDw |------| |------|VolUp | | | | | | 136 KC_TRNS, KC_TRNS,
126 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| 137 KC_TRNS,
127 * | | | | | | MClk | | | |VolDn | | Prev | Next | Up | | 138 KC_TRNS, KC_TRNS, KC_TRNS),
128 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' 139[EGOS]=KEYMAP(
129 * | | | | | | | | | Left | Down | Right | 140//left half
130 * `----------------------------------' `----------------------------------' 141 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
131 * ,-------------. ,-------------. 142 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
132 * | | | | | | 143 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
133 * ,------|------|------| |------+------+------. 144 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
134 * | | | | | | |Brwser| 145 KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
135 * | | |------| |------| |Back | 146 KC_F1, KC_F2,
136 * | | | | | | | | 147 KC_F3,
137 * `--------------------' `--------------------' 148 KC_SPC, KC_LCTL, KC_F4,
138 */ 149 //right half
139// MEDIA AND MOUSE 150 M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
140[MDIA] = KEYMAP( 151 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 152 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
142 KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS, 153 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
143 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, 154 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
144 KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS, 155 KC_TRNS, KC_TRNS,
145 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 156 KC_TRNS,
146 KC_TRNS, KC_TRNS, 157 KC_TRNS, KC_TRNS, KC_TRNS),
147 KC_TRNS,
148 KC_TRNS, KC_TRNS, KC_TRNS,
149 // right hand
150 KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
151 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
152 KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
153 KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
154 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
155 KC_TRNS, KC_TRNS,
156 KC_TRNS,
157 KC_TRNS, KC_TRNS, KC_WBAK
158),
159/* Keymap 3: Smiley layer
160 * making it easier to type smileys... tipp: on osx you can easily replace those smileys with the UTF-8 character using
161 * keyboard short commands...
162 *
163 * ,--------------------------------------------------. ,--------------------------------------------------.
164 * | | | | | | | | | :-) | ;-) | :-D | | | | |
165 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
166 * | | | | | | | | | | :-{ | :-( | | | | |
167 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
168 * | | | | | | |------| |------| <3 | :-* | | | | |
169 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
170 * | | | | | | | | | | | | | | | |
171 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
172 * | | | | | | | | | | | r|
173 * `----------------------------------' `----------------------------------'
174 * ,-------------. ,-------------.
175 * | | | | | |
176 * ,------|------|------| |------+--------+------.
177 * | | | | | | | |
178 * | | |------| |------| | |
179 * | | | | | | | |
180 * `--------------------' `----------------------'
181 */
182[SMLY] = KEYMAP(
183 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
184 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
185 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
186 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
187 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
188 KC_TRNS, KC_TRNS,
189 KC_TRNS,
190 KC_TRNS, KC_TRNS, KC_TRNS,
191 // right hand
192 M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
193 KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
194 M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
195 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
196 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
197 KC_TRNS, KC_TRNS,
198 KC_TRNS,
199 KC_TRNS, KC_TRNS, KC_TRNS
200),
201//number pad
202[NUMB] = KEYMAP(
203 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
204 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
205 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
206 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
207 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
208 KC_TRNS, KC_TRNS,
209 KC_TRNS,
210 KC_TRNS, KC_TRNS, KC_TRNS,
211 // right hand
212 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
213 KC_TRNS, KC_UP, KC_7, KC_8, KC_9, LSFT(KC_RBRC), KC_F12,
214 KC_DOWN, KC_4, KC_5, KC_6, KC_RBRC, DE_OSX_MINS,
215 KC_TRNS, LSFT(KC_6), KC_1, KC_2, KC_3, LSFT(KC_7), KC_TRNS,
216 KC_0,KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS,
217 KC_TRNS, KC_TRNS,
218 KC_TRNS,
219 KC_TRNS, KC_TRNS, KC_TRNS
220),
221
222/* Keymap 3: Egoshooter layer
223 *
224 * ,--------------------------------------------------. ,--------------------------------------------------.
225 * | | | | | | | | | L5 | | | | | | |
226 * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
227 * | | | | | | | | | | | | | | | |
228 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
229 * | SHIFT | | | | | |------| |------| | | | | | |
230 * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
231 * | | | | | | | | | | | | | | | |
232 * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
233 * | CTRL | | | | | | | | | | |
234 * `----------------------------------' `----------------------------------'
235 * ,-------------. ,-------------.
236 * | F1 | F2 | | | |
237 * ,------|------|------| |------+--------+------.
238 * | | | F3 | | | | |
239 * | SPACE| CTRL|------| |------| | |
240 * | | | F4 | | | | |
241 * `--------------------' `----------------------'
242 */
243[EGOS] = KEYMAP(
244 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
245 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
246 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
247 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
248 KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
249 KC_F1, KC_F2,
250 KC_F3,
251 KC_SPC, KC_LCTL, KC_F4,
252 // right hand
253 M(M_TOGGLE_5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
254 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
255 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
256 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
257 KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
258 KC_TRNS, KC_TRNS,
259 KC_TRNS,
260 KC_TRNS, KC_TRNS, KC_TRNS
261),
262}; 158};
263 159
264const uint16_t PROGMEM fn_actions[] = { 160const uint16_t PROGMEM fn_actions[] = {
265 [1] = ACTION_LAYER_TAP_TOGGLE(SYMB), // FN1 - Momentary Layer 1 (Symbols) 161
266 [2] = ACTION_LAYER_TAP_TOGGLE(SMLY) // FN2 - Momentary Layer 2 (Smiley)
267}; 162};
268 163
269const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) 164const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
270{ 165{
271 static uint16_t start; 166static uint16_t start;
272 // MACRODOWN only works in this function 167switch(id) {
273 switch(id) { 168case M_TOGGLE_5:
274 case M_CTRL_CMDV: 169//Macro: M_TOGGLE_5//-----------------------
275 //Macro description: long press CTRL, type CMD-V 170 if (record->event.pressed){
276 //Macro type: LT 171 layer_state ^= (1<<5);
277 if (record->event.pressed) { 172 layer_state &= (1<<5);
278 start = timer_read(); 173 }
279 return MACRO(D(LCTRL), END); 174
280 } else { 175break;
281 if (timer_elapsed(start) > 150) { 176case M_CTRL_CMDC:
282 return MACRO(U(LCTRL), END); 177//Macro: M_CTRL_CMDC//-----------------------
283 } else { 178if (record->event.pressed) {
284 return MACRO(U(LCTRL), D(LGUI), T(V), U(LGUI), END);
285 }
286 }
287 break;
288 //End Macro
289 case M_CTRL_CMDC:
290 //Macro description:
291 //Macro type: LT
292 if (record->event.pressed) {
293 start = timer_read(); 179 start = timer_read();
294 return MACRO(D(LCTRL),END); 180 return MACRO(D(LCTRL),END);
295 } else { 181 } else {
296 if (timer_elapsed(start) > 150){ 182 if (timer_elapsed(start) >150) {
297 return MACRO(U(LCTRL),END); 183 return MACRO(U(LCTRL),END);
298 } else { 184 } else {
299 return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END); 185 return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END);
300 } 186 }
301 } 187 }
302 break; 188
303 case M_MEH_SH_ACUT: 189break;
304 if (record->event.pressed) { 190case M_DE_OSX_PLUS_CTRLALT:
191//Macro: M_DE_OSX_PLUS_CTRLALT//-----------------------
192if (record->event.pressed) {
305 start = timer_read(); 193 start = timer_read();
306 return MACRO(D(LCTRL),D(LSFT),D(LALT),END); 194 return MACRO(D(LCTRL),D(LALT),END);
307 } else { 195 } else {
308 if (timer_elapsed(start) > 150){ 196 if (timer_elapsed(start) >150) {
309 return MACRO(U(LCTRL),U(LSFT),U(LALT),END); 197 return MACRO(U(LCTRL),U(LALT),END);
310 } else { 198 } else {
311 return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END); //cannot use DE_OSX_ACUT here, as macro needs KC_ prefix 199 return MACRO(U(LCTRL),U(LALT),T(RBRC),END);
312 } 200 }
313 } 201 }
314 break; 202
315 203break;
316 case M_LGUI_SHFT: 204case SM_KISS:
317 if (record->event.pressed){ 205//Macro: SM_KISS//-----------------------
206if (record->event.pressed) {
207 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END);
208 }
209
210break;
211case SM_FROWN:
212//Macro: SM_FROWN//-----------------------
213if (record->event.pressed) {
214 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END);
215 }
216
217break;
218case SM_CRY:
219//Macro: SM_CRY//-----------------------
220if (record->event.pressed) {
221 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
222 }
223
224break;
225case SM_SMILE:
226//Macro: SM_SMILE//-----------------------
227if (record->event.pressed) {
228 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
229 }
230
231break;
232case SM_SMIRK:
233//Macro: SM_SMIRK//-----------------------
234if (record->event.pressed) {
235 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
236 }
237
238break;
239case M_LGUI_SHFT:
240//Macro: M_LGUI_SHFT//-----------------------
241if (record->event.pressed){
318 return MACRO(D(LGUI),D(LSFT),END); 242 return MACRO(D(LGUI),D(LSFT),END);
319 }else{ 243 }else{
320 return MACRO(U(LGUI),U(LSFT),END); 244 return MACRO(U(LGUI),U(LSFT),END);
321 } 245 }
322 break; 246
323 case M_CTL_SFT_HASH: 247break;
324 if (record->event.pressed) { 248case SM_HEART:
325 start=timer_read(); 249//Macro: SM_HEART//-----------------------
326 return MACRO(D(LCTRL),D(LSFT),END); 250if (record->event.pressed) {
251 return MACRO(T(GRV),T(3),END);
252 }
253
254break;
255case SM_LAUGH:
256//Macro: SM_LAUGH//-----------------------
257if (record->event.pressed) {
258 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END);
259 }
260
261break;
262case M_CTL_SFT_HASH:
263//Macro: M_CTL_SFT_HASH//-----------------------
264if (record->event.pressed) {
265 start = timer_read();
266 return MACRO(D(LCTRL),D(LSFT),END);
327 } else { 267 } else {
328 if (timer_elapsed(start) > 150){ 268 if (timer_elapsed(start) >150) {
329 return MACRO(U(LCTRL),U(LSFT),END); 269 return MACRO(U(LCTRL),U(LSFT),END);
330 } else { 270 } else {
331 return MACRO(U(LCTRL),U(LSFT),T(BSLS),END); 271 return MACRO(U(LCTRL),U(LSFT),T(BSLS),END);
332 } 272 }
333 } 273 }
334 break; 274
335 case M_DE_OSX_CIRC_CTRLCMD: 275break;
336 if (record->event.pressed) { 276case SM_SAD:
277//Macro: SM_SAD//-----------------------
278if (record->event.pressed) {
279 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
280 }
281
282break;
283case M_DE_OSX_CIRC_CTRLCMD:
284//Macro: M_DE_OSX_CIRC_CTRLCMD//-----------------------
285if (record->event.pressed) {
337 start = timer_read(); 286 start = timer_read();
338 return MACRO(D(LCTRL),D(LGUI),END); 287 return MACRO(D(LCTRL),D(LGUI),END);
339 } else { 288 } else {
340 if (timer_elapsed(start) > 150){ 289 if (timer_elapsed(start) >150) {
341 return MACRO(U(LCTRL),U(LGUI),END); 290 return MACRO(U(LCTRL),U(LGUI),END);
342 } else { 291 } else {
343 return MACRO(U(LCTRL),U(LGUI),T(NUBS),END); 292 return MACRO(U(LCTRL),U(LGUI),T(NUBS),END);
344 } 293 }
345 } 294 }
346 break; 295
347 case M_DE_OSX_PLUS_CTRLALT: 296break;
348 if (record->event.pressed) { 297case M_CTRL_CMDV:
298//Macro: M_CTRL_CMDV//-----------------------
299if (record->event.pressed) {
349 start = timer_read(); 300 start = timer_read();
350 return MACRO(D(LCTRL),D(LALT),END); 301 return MACRO(D(LCTRL),END);
351 } else { 302 } else {
352 if (timer_elapsed(start) > 150){ 303 if (timer_elapsed(start) >150) {
353 return MACRO(U(LCTRL),U(LALT),END); 304 return MACRO(U(LCTRL),END);
354 } else { 305 } else {
355 return MACRO(U(LCTRL),U(LALT),T(RBRC),END); 306 return MACRO(U(LCTRL),D(LGUI),T(V),U(LGUI),END);
356 } 307 }
357 } 308 }
358 break;
359 case SM_SMILE:
360 //MAcro description: :-)
361 //Macro type: MACRO
362 if (record->event.pressed) {
363 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
364 }
365 break;
366 309
367 case SM_SMIRK: 310break;
368 if (record->event.pressed) { 311case M_MEH_SH_ACUT:
369 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END); 312//Macro: M_MEH_SH_ACUT//-----------------------
370 } 313if (record->event.pressed) {
371 break; 314 start = timer_read();
372 case SM_CRY: 315 return MACRO(D(LCTRL),D(LSFT),D(LALT),END);
373 if (record->event.pressed) { 316 } else {
374 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END); 317 if (timer_elapsed(start) >150) {
375 } 318 return MACRO(U(LCTRL),U(LSFT),U(LALT),END);
376 break; 319 } else {
377 320 return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END);
378 case SM_SAD: 321 }
379 if (record->event.pressed) {
380 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
381 }
382 break;
383
384 case SM_HEART:
385 if (record->event.pressed) {
386 return MACRO(T(GRV),T(3),END);
387 }
388 break;
389 case SM_LAUGH:
390 if (record->event.pressed) {
391 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END);
392 }
393 break;
394 case SM_KISS:
395 if (record->event.pressed) {
396 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END);
397 }
398 break;
399 case SM_FROWN:
400 if (record->event.pressed) {
401 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END);
402 } 322 }
403 break; 323
404 case M_TOGGLE_5: 324break;
405 //Macro description: Toggle LAyer 5 (Egoshooter) 325}
406 //Macro type: LToggle 326return MACRO_NONE;
407 if (record->event.pressed){
408 layer_state ^= (1<<5);
409 layer_state &= (1<<5);
410 }
411 break;
412 //Macro End
413 }
414 return MACRO_NONE;
415}; 327};
416 328
417// Runs just one time when the keyboard initializes. 329// Runs just one time when the keyboard initializes.
@@ -422,36 +334,43 @@ void matrix_init_user(void) {
422// Runs constantly in the background, in a loop. 334// Runs constantly in the background, in a loop.
423void matrix_scan_user(void) { 335void matrix_scan_user(void) {
424 336
425 uint8_t layer = biton32(layer_state); 337uint8_t layer = biton32(layer_state);
426 338
427 ergodox_board_led_off(); 339ergodox_board_led_off();
428 ergodox_right_led_1_off(); 340ergodox_right_led_1_off();
429 ergodox_right_led_2_off(); 341ergodox_right_led_2_off();
430 ergodox_right_led_3_off(); 342ergodox_right_led_3_off();
431 switch (layer) { 343switch (layer) {
432 // TODO: Make this relevant to the ErgoDox EZ. 344
433 case SYMB: 345 case SYMB:
434 ergodox_right_led_1_on(); 346 ergodox_right_led_1_on();
435 break; 347
436 case MDIA: 348
437 ergodox_right_led_2_on(); 349 break;
438 break; 350 case MDIA:
439 case SMLY: 351
440 ergodox_right_led_3_on(); 352 ergodox_right_led_2_on();
441 break; 353
442 case NUMB: 354 break;
443 ergodox_right_led_1_on(); 355 case SMLY:
444 ergodox_right_led_3_on(); 356
445 //ergodox_board_led_on(); 357
446 break; 358 ergodox_right_led_3_on();
447 case EGOS: 359 break;
448 ergodox_right_led_1_on(); 360 case NUMB:
449 ergodox_right_led_2_on(); 361 ergodox_right_led_1_on();
450 ergodox_right_led_3_on(); 362
451 break; 363 ergodox_right_led_3_on();
452 default: 364 break;
453 // none 365 case EGOS:
454 break; 366 ergodox_right_led_1_on();
455 } 367 ergodox_right_led_2_on();
368 ergodox_right_led_3_on();
369 break;
370default:
371// none
372break;
373}
456 374
457}; 375};
376
diff --git a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png
index 30355c55a..9249f3d2d 100644
--- a/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png
+++ b/keyboard/ergodox_ez/keymaps/osx_de/osx_de_highres.png
Binary files differ
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
new file mode 100644
index 000000000..dbc3eb990
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/keymap.c
@@ -0,0 +1,376 @@
1#include "ergodox_ez.h"
2#include "debug.h"
3#include "action_layer.h"
4#include "keymap_extras/keymap_french.h"
5#include "keymap_extras/keymap_neo2.h"
6#include "keymap_extras/keymap_uk.h"
7#include "keymap_extras/keymap_colemak.h"
8#include "keymap_extras/keymap_french_osx.h"
9#include "keymap_extras/keymap_nordic.h"
10#include "keymap_extras/keymap_dvorak.h"
11#include "keymap_extras/keymap_german.h"
12#include "keymap_extras/keymap_norwegian.c"
13#include "keymap_extras/keymap_fr_ch.h"
14#include "keymap_extras/keymap_german_osx.h"
15#include "keymap_extras/keymap_spanish.h"
16#include "keymap_extras/keymap_bepo.h"
17
18#define BASE 0
19#define SYMB 1
20#define MDIA 2
21#define SMLY 3
22#define NUMB 4
23#define EGOS 5
24
25#define M_TOGGLE_5 0
26#define M_CTRL_CMDC 1
27#define M_DE_OSX_PLUS_CTRLALT 2
28#define SM_KISS 3
29#define SM_FROWN 4
30#define SM_CRY 5
31#define SM_SMILE 6
32#define SM_SMIRK 7
33#define M_LGUI_SHFT 8
34#define SM_HEART 9
35#define SM_LAUGH 10
36#define M_CTL_SFT_HASH 11
37#define SM_SAD 12
38#define M_DE_OSX_CIRC_CTRLCMD 13
39#define M_CTRL_CMDV 14
40#define M_MEH_SH_ACUT 15
41
42//Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
43const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
44[BASE]=KEYMAP(
45//left half
46 KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, TG(NUMB),
47 KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI,
48 KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G,
49 KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT,
50 LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), M(M_CTL_SFT_HASH), KC_LCTRL,
51 KC_HOME, KC_END,
52 KC_PGUP,
53 KC_BSPC, KC_DEL, KC_PGDN,
54 //right half
55 TG(MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS,
56 KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE,
57 DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE),
58 KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT,
59 M(M_MEH_SH_ACUT), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS),
60 KC_LEFT, KC_RIGHT,
61 KC_UP,
62 KC_DOWN, KC_ENT, KC_SPC),
63[SYMB]=KEYMAP(
64//left half
65 KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5,
66 KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS,
67 KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT,
68 KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS,
69 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
70 KC_TRNS, KC_TRNS,
71 KC_TRNS,
72 KC_TRNS, KC_DEL, KC_TRNS,
73 //right half
74 KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
75 KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM,
76 DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH,
77 KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
78 DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS,
79 KC_F13, KC_F12,
80 KC_F14,
81 KC_F15, KC_TRNS, KC_TRNS),
82[MDIA]=KEYMAP(
83//left half
84 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
85 KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
86 KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
87 KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
88 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
89 KC_TRNS, KC_TRNS,
90 KC_TRNS,
91 KC_TRNS, KC_TRNS, KC_TRNS,
92 //right half
93 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY,
94 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
95 KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
96 KC_TRNS, KC_VOLD, KC_TRNS, KC_MPRV, KC_MNXT, KC_UP, KC_TRNS,
97 KC_MUTE, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
98 KC_TRNS, KC_TRNS,
99 KC_TRNS,
100 KC_TRNS, KC_TRNS, KC_WBAK),
101[SMLY]=KEYMAP(
102//left half
103 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
104 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
105 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
106 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
107 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
108 KC_TRNS, KC_TRNS,
109 KC_TRNS,
110 KC_TRNS, KC_TRNS, KC_TRNS,
111 //right half
112 M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
113 KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
114 M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
115 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
116 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
117 KC_TRNS, KC_TRNS,
118 KC_TRNS,
119 KC_TRNS, KC_TRNS, KC_TRNS),
120[NUMB]=KEYMAP(
121//left half
122 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
123 KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
124 KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
125 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
126 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
127 KC_TRNS, KC_TRNS,
128 KC_TRNS,
129 KC_TRNS, KC_TRNS, KC_TRNS,
130 //right half
131 KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
132 KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12,
133 DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS,
134 KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
135 KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS,
136 KC_TRNS, KC_TRNS,
137 KC_TRNS,
138 KC_TRNS, KC_TRNS, KC_TRNS),
139[EGOS]=KEYMAP(
140//left half
141 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
142 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
143 KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
144 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
145 KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
146 KC_F1, KC_F2,
147 KC_F3,
148 KC_SPC, KC_LCTL, KC_F4,
149 //right half
150 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
151 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
152 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
153 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
154 KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS,
155 KC_TRNS, KC_TRNS,
156 KC_TRNS,
157 KC_TRNS, KC_TRNS, KC_TRNS),
158};
159
160const uint16_t PROGMEM fn_actions[] = {
161
162};
163
164const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
165{
166static uint16_t start;
167switch(id) {
168case M_TOGGLE_5:
169//Macro: M_TOGGLE_5//-----------------------
170 if (record->event.pressed){
171 layer_state ^= (1<<5);
172 layer_state &= (1<<5);
173 }
174
175break;
176case M_CTRL_CMDC:
177//Macro: M_CTRL_CMDC//-----------------------
178if (record->event.pressed) {
179 start = timer_read();
180 return MACRO(D(LCTRL),END);
181 } else {
182 if (timer_elapsed(start) >150) {
183 return MACRO(U(LCTRL),END);
184 } else {
185 return MACRO(U(LCTRL),D(LGUI),T(C),U(LGUI),END);
186 }
187 }
188
189break;
190case M_DE_OSX_PLUS_CTRLALT:
191//Macro: M_DE_OSX_PLUS_CTRLALT//-----------------------
192if (record->event.pressed) {
193 start = timer_read();
194 return MACRO(D(LCTRL),D(LALT),END);
195 } else {
196 if (timer_elapsed(start) >150) {
197 return MACRO(U(LCTRL),U(LALT),END);
198 } else {
199 return MACRO(U(LCTRL),U(LALT),T(RBRC),END);
200 }
201 }
202
203break;
204case SM_KISS:
205//Macro: SM_KISS//-----------------------
206if (record->event.pressed) {
207 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(RBRC),U(LSFT),END);
208 }
209
210break;
211case SM_FROWN:
212//Macro: SM_FROWN//-----------------------
213if (record->event.pressed) {
214 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LALT),T(8),U(LALT),END);
215 }
216
217break;
218case SM_CRY:
219//Macro: SM_CRY//-----------------------
220if (record->event.pressed) {
221 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
222 }
223
224break;
225case SM_SMILE:
226//Macro: SM_SMILE//-----------------------
227if (record->event.pressed) {
228 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
229 }
230
231break;
232case SM_SMIRK:
233//Macro: SM_SMIRK//-----------------------
234if (record->event.pressed) {
235 return MACRO(D(LSFT),T(COMM),U(LSFT),T(SLSH),D(LSFT),T(9),U(LSFT),END);
236 }
237
238break;
239case M_LGUI_SHFT:
240//Macro: M_LGUI_SHFT//-----------------------
241if (record->event.pressed){
242 return MACRO(D(LGUI),D(LSFT),END);
243 }else{
244 return MACRO(U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),U(LGUI),U(LSFT),END);
245 }
246
247break;
248case SM_HEART:
249//Macro: SM_HEART//-----------------------
250if (record->event.pressed) {
251 return MACRO(T(GRV),T(3),END);
252 }
253
254break;
255case SM_LAUGH:
256//Macro: SM_LAUGH//-----------------------
257if (record->event.pressed) {
258 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(D),U(LSFT),END);
259 }
260
261break;
262case M_CTL_SFT_HASH:
263//Macro: M_CTL_SFT_HASH//-----------------------
264if (record->event.pressed) {
265 start = timer_read();
266 return MACRO(D(LCTRL),D(LSFT),END);
267 } else {
268 if (timer_elapsed(start) >150) {
269 return MACRO(U(LCTRL),U(LSFT),END);
270 } else {
271 return MACRO(U(LCTRL),U(LSFT),T(BSLS),END);
272 }
273 }
274
275break;
276case SM_SAD:
277//Macro: SM_SAD//-----------------------
278if (record->event.pressed) {
279 return MACRO(D(LSFT),T(DOT),U(LSFT),T(SLSH),D(LSFT),T(8),U(LSFT),END);
280 }
281
282break;
283case M_DE_OSX_CIRC_CTRLCMD:
284//Macro: M_DE_OSX_CIRC_CTRLCMD//-----------------------
285if (record->event.pressed) {
286 start = timer_read();
287 return MACRO(D(LCTRL),D(LGUI),END);
288 } else {
289 if (timer_elapsed(start) >150) {
290 return MACRO(U(LCTRL),U(LGUI),END);
291 } else {
292 return MACRO(U(LCTRL),U(LGUI),T(NUBS),END);
293 }
294 }
295
296break;
297case M_CTRL_CMDV:
298//Macro: M_CTRL_CMDV//-----------------------
299if (record->event.pressed) {
300 start = timer_read();
301 return MACRO(D(LCTRL),END);
302 } else {
303 if (timer_elapsed(start) >150) {
304 return MACRO(U(LCTRL),END);
305 } else {
306 return MACRO(U(LCTRL),D(LGUI),T(V),U(LGUI),END);
307 }
308 }
309
310break;
311case M_MEH_SH_ACUT:
312//Macro: M_MEH_SH_ACUT//-----------------------
313if (record->event.pressed) {
314 start = timer_read();
315 return MACRO(D(LCTRL),D(LSFT),D(LALT),END);
316 } else {
317 if (timer_elapsed(start) >150) {
318 return MACRO(U(LCTRL),U(LSFT),U(LALT),END);
319 } else {
320 return MACRO(U(LCTRL),U(LALT),T(EQL),U(LSFT),END);
321 }
322 }
323
324break;
325}
326return MACRO_NONE;
327};
328
329// Runs just one time when the keyboard initializes.
330void matrix_init_user(void) {
331
332};
333
334// Runs constantly in the background, in a loop.
335void matrix_scan_user(void) {
336
337uint8_t layer = biton32(layer_state);
338
339ergodox_board_led_off();
340ergodox_right_led_1_off();
341ergodox_right_led_2_off();
342ergodox_right_led_3_off();
343switch (layer) {
344
345 case SYMB:
346 ergodox_right_led_1_on();
347
348
349 break;
350 case MDIA:
351
352 ergodox_right_led_2_on();
353
354 break;
355 case SMLY:
356
357
358 ergodox_right_led_3_on();
359 break;
360 case NUMB:
361 ergodox_right_led_1_on();
362
363 ergodox_right_led_3_on();
364 break;
365 case EGOS:
366 ergodox_right_led_1_on();
367 ergodox_right_led_2_on();
368 ergodox_right_led_3_on();
369 break;
370default:
371// none
372break;
373}
374
375};
376
diff --git a/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
new file mode 100644
index 000000000..4ae517d8d
--- /dev/null
+++ b/keyboard/ergodox_ez/keymaps/osx_de_experimental/osx_de_experimental_highres.png
Binary files differ
diff --git a/quantum/keymap_extras/keymap_german_osx.h b/quantum/keymap_extras/keymap_german_osx.h
index d0b77fb80..ee725bad5 100644
--- a/quantum/keymap_extras/keymap_german_osx.h
+++ b/quantum/keymap_extras/keymap_german_osx.h
@@ -85,8 +85,8 @@
85#define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _ 85#define DE_OSX_UNDS LSFT(DE_OSX_MINS) // _
86 86
87// Alt-ed characters 87// Alt-ed characters
88#define DE_OSX_SQ2 LALT(KC_2) // ² 88//#define DE_OSX_SQ2 LALT(KC_2) // ²
89#define DE_OSX_SQ3 LALT(KC_3) // ³ 89//#define DE_OSX_SQ3 LALT(KC_3) // ³
90#define DE_OSX_LCBR LALT(KC_8) // { 90#define DE_OSX_LCBR LALT(KC_8) // {
91#define DE_OSX_LBRC LALT(KC_5) // [ 91#define DE_OSX_LBRC LALT(KC_5) // [
92#define DE_OSX_RBRC LALT(KC_6) // ] 92#define DE_OSX_RBRC LALT(KC_6) // ]