summaryrefslogtreecommitdiffstats
path: root/keyboards/ergodox
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox')
-rw-r--r--keyboards/ergodox/ez/config.h2
-rw-r--r--keyboards/ergodox/ez/ez.c8
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/README.md7
-rw-r--r--keyboards/ergodox/keymaps/dvorak_programmer/keymap.c54
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json419
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout.pngbin0 -> 75633 bytes
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json436
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.pngbin0 -> 58099 bytes
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/keymap.c287
-rw-r--r--keyboards/ergodox/keymaps/swissgerman/readme.md15
10 files changed, 1210 insertions, 18 deletions
diff --git a/keyboards/ergodox/ez/config.h b/keyboards/ergodox/ez/config.h
index 6a8c66d7d4..e4f95c302c 100644
--- a/keyboards/ergodox/ez/config.h
+++ b/keyboards/ergodox/ez/config.h
@@ -49,7 +49,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_SAT_STEP 255
#define RGBLIGHT_VAL_STEP 12
-#define RGB_MIDI
+// #define RGB_MIDI
#define RGBW_BB_TWI
#define RGBW 1
diff --git a/keyboards/ergodox/ez/ez.c b/keyboards/ergodox/ez/ez.c
index 039e4c6bb1..3e19f23028 100644
--- a/keyboards/ergodox/ez/ez.c
+++ b/keyboards/ergodox/ez/ez.c
@@ -52,9 +52,9 @@ uint8_t init_mcp23018(void) {
// I2C subsystem
- uint8_t sreg_prev;
- sreg_prev=SREG;
- cli();
+ // uint8_t sreg_prev;
+ // sreg_prev=SREG;
+ // cli();
if (i2c_initialized == 0) {
i2c_init(); // on pins D(1,0)
i2c_initialized++;
@@ -83,7 +83,7 @@ uint8_t init_mcp23018(void) {
out:
i2c_stop();
- SREG=sreg_prev;
+ // SREG=sreg_prev;
return mcp23018_status;
}
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/README.md b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
index 3e4a2545b8..54da74f7f2 100644
--- a/keyboards/ergodox/keymaps/dvorak_programmer/README.md
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/README.md
@@ -7,18 +7,23 @@ Layers
------
* BASE: this is where you type.
+* SHELL_LAYER: this is a permanent layer which I use when I don't need the F keys and gives me bash shortcuts on the top row.
* SHELL_NAV: hold down the Tab key to access shell/terminal navigation shorcuts such as forward/backward word, history, Ctrl+C, screen tab movement.
* KEY_NAV: arrow key movement with backward/forward word support, and copy/paste.
* KEY_SEL: same as above, but every movement shift-selects.
* NUMBER: keypad layer.
* SYMBOL: all the symbols.
-* BRACKET: special brackets-only layer for programming
+* BRACKET: special brackets-only layer for programming. Activated by pressing left capslock (OSL)
* SHORTCUTS: sends Hyper keys for Autohotkey to interpret. I use this to switch between specific apps.
* MOUSE: use mouse keys
Updates
-------
+2017/01/22:
+* Made brackets toggle an OSL on the left capslock
+* Added SHELL_LAYER
+
2016/12/10:
* toggle for brackets layer is now on left thumb cluster.
diff --git a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
index f3d02f688d..7ed0c7f125 100644
--- a/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
+++ b/keyboards/ergodox/keymaps/dvorak_programmer/keymap.c
@@ -6,7 +6,8 @@
#include "action_code.h"
#define BASE 0 // default layer
-#define SHELL_NAV 1
+#define SHELL_LAYER 1
+#define SHELL_NAV 2
#define KEY_NAV 3 // key navigation layer
#define KEY_SEL 4 // key selection layer
#define NUMBER 5 // number layer
@@ -58,12 +59,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
- LT(MOUSE,KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
- MO(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
- KC_FN3, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
+ LT(SHELL_NAV,KC_TAB), KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, MO(KEY_SEL),
+ OSL(BRACKETS), KC_A, KC_O, KC_E, KC_U, KC_I,
+ OSM(MOD_LSFT), KC_SCLN, KC_Q, KC_J, KC_K, KC_X, MO(KEY_NAV),
OSL(SHORTCUTS),KC_FN4, KC_FN5,OSL(SYMBOL),MO(NUMBER),
// thumb cluster
- MO(BRACKETS), RCTL(KC_S),
+ MO(MOUSE), RCTL(KC_S),
RCTL(KC_DEL),
KC_BSPC,RCTL(KC_BSPC),KC_DEL,
// right hand
@@ -80,6 +81,33 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
),
+
+// permanent shell layer - meant to be used while in a terminal. only the top keys are overriden
+[SHELL_LAYER] = KEYMAP(
+ // left hand
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,LALT(KC_DOT),RCTL(KC_R),RCTL(KC_C),
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ RCTL(KC_W), LALT(KC_B),LALT(KC_F), KC_LEFT, KC_RIGHT, LALT(KC_D), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ // bottom row
+ KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
+ // thumb cluster
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+
// shell navigation layer
[SHELL_NAV] = KEYMAP(
// left hand
@@ -209,12 +237,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BRACKETS] = KEYMAP(
// left hand
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
- KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,M(OPEN_CLOSE_CURLY), M(OPEN_CLOSE_PAREN),M(OPEN_CLOSE_BRACKET), KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_LPRN, KC_RPRN, KC_LBRC, KC_RBRC, KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_LCBR, KC_RCBR, KC_TRNS,KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
@@ -246,7 +274,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
MEH(KC_S), MEH(KC_T), MEH(KC_U), MEH(KC_V), MEH(KC_X),
MEH(KC_6), MEH(KC_7),
MEH(KC_8),
- MEH(KC_9), MEH(KC_Y), MEH(KC_Z)
+ MEH(KC_9), TO(BASE), TO(SHELL_LAYER)
),
@@ -406,6 +434,8 @@ void matrix_scan_user(void) {
switch (layer) {
case NUMBER:
case SYMBOL:
+ case BRACKETS:
+ //case SHELL_LAYER:
ergodox_right_led_2_on();
break;
case KEY_NAV:
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json
new file mode 100644
index 0000000000..6958952b48
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.json
@@ -0,0 +1,419 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "Ergodox Swiss German Layout - Base Layer",
+ "author": "Andreas Schmidt (https://github.com/remigius42)"
+ },
+ [
+ {
+ "x": 3.5
+ },
+ "#\n3",
+ {
+ "x": 10.5
+ },
+ "*\n8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@\n2",
+ {
+ "x": 1
+ },
+ "$\n4",
+ {
+ "x": 8.5
+ },
+ "&\n7",
+ {
+ "x": 1
+ },
+ "(\n9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "%\n5",
+ {
+ "a": 7
+ },
+ "<i class='fa fa-arrow-left'></i>",
+ {
+ "x": 4.5
+ },
+ "<i class='fa fa-arrow-right'></i>",
+ {
+ "a": 4
+ },
+ "^\n6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "w": 1.5
+ },
+ "°\n§",
+ "!\n1",
+ {
+ "x": 14.5
+ },
+ ")\n0",
+ {
+ "w": 1.5
+ },
+ "?\n'\n\n'"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "E",
+ {
+ "x": 10.5
+ },
+ "I"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "W",
+ {
+ "x": 1
+ },
+ "R",
+ {
+ "x": 8.5
+ },
+ "U",
+ {
+ "x": 1
+ },
+ "O"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "T",
+ {
+ "c": "#b56b6b",
+ "a": 6,
+ "h": 1.5
+ },
+ "Toggle Code Layer",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Toggle Code Layer",
+ {
+ "c": "#cccccc",
+ "a": 4
+ },
+ "Y"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Delete",
+ {
+ "a": 4
+ },
+ "Q",
+ {
+ "x": 14.5
+ },
+ "P",
+ {
+ "w": 1.5
+ },
+ "è\nü\n\n["
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "D",
+ {
+ "x": 10.5
+ },
+ "K"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "S",
+ {
+ "x": 1
+ },
+ "F",
+ {
+ "x": 8.5
+ },
+ "J",
+ {
+ "x": 1
+ },
+ "L"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "G",
+ {
+ "x": 6.5
+ },
+ "H"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Backspace",
+ {
+ "c": "#79c777",
+ "a": 4
+ },
+ "A\n\nLyr3",
+ {
+ "x": 14.5
+ },
+ "é\nö\nLyr3",
+ {
+ "c": "#748adb",
+ "w": 1.5
+ },
+ "à\nä\nCmd\n{"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "c": "#cccccc",
+ "a": 6,
+ "h": 1.5
+ },
+ "Hyper",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "Meh"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "a": 4
+ },
+ "C",
+ {
+ "x": 10.5
+ },
+ ";\n,"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "c": "#748adb"
+ },
+ "X\n\nAlt",
+ {
+ "x": 1,
+ "c": "#cccccc"
+ },
+ "V",
+ {
+ "x": 8.5
+ },
+ "M",
+ {
+ "x": 1,
+ "c": "#748adb"
+ },
+ ":\n.\nAlt"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "c": "#cccccc"
+ },
+ "B",
+ {
+ "x": 6.5
+ },
+ "N"
+ ],
+ [
+ {
+ "y": -0.875,
+ "a": 6,
+ "w": 1.5
+ },
+ "Shift",
+ {
+ "c": "#748adb",
+ "a": 4
+ },
+ "Z\n\nCtrl",
+ {
+ "x": 14.5
+ },
+ "_\n-\nCtrl",
+ {
+ "c": "#cccccc",
+ "a": 6,
+ "w": 1.5
+ },
+ "Shift"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-left'></i>",
+ {
+ "x": 10.5
+ },
+ "<i class='fa fa-arrow-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "a": 4
+ },
+ "£\n$\n\n}",
+ {
+ "x": 1,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-right'></i>",
+ {
+ "x": 10.5,
+ "a": 6
+ },
+ "AltGr"
+ ],
+ [
+ {
+ "y": -0.9950000000000001,
+ "x": 14,
+ "a": 7
+ },
+ "<i class='fa fa-arrow-up'></i>"
+ ],
+ [
+ {
+ "y": -0.7549999999999999,
+ "x": 0.5,
+ "c": "#b56b6b",
+ "a": 4
+ },
+ ">\n<\nCode Layer\n\\",
+ {
+ "c": "#cccccc"
+ },
+ "`\n^\n\n~",
+ {
+ "x": 14.5
+ },
+ "!\n¨\n\n]",
+ {
+ "c": "#b56b6b"
+ },
+ "\n\nCode Layer"
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1,
+ "c": "#748adb"
+ },
+ "Apps\nAlt",
+ {
+ "c": "#cccccc",
+ "a": 6
+ },
+ "Win / Cmd"
+ ],
+ [
+ {
+ "h": 2
+ },
+ "Space",
+ {
+ "h": 2
+ },
+ "Back Space",
+ "Home"
+ ],
+ [
+ {
+ "x": 2
+ },
+ "End"
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "Alt",
+ {
+ "c": "#748adb",
+ "a": 4
+ },
+ "Esc\nCtrl"
+ ],
+ [
+ {
+ "x": -3,
+ "c": "#cccccc",
+ "a": 6
+ },
+ "Pg Up",
+ {
+ "h": 2
+ },
+ "Tab",
+ {
+ "h": 2
+ },
+ "Enter"
+ ],
+ [
+ {
+ "x": -3
+ },
+ "Pg Dn"
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png
new file mode 100644
index 0000000000..aff6af8513
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json
new file mode 100644
index 0000000000..38a728514f
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.json
@@ -0,0 +1,436 @@
+[
+ {
+ "backcolor": "#ffffff",
+ "name": "Ergodox Swiss German Layout - Symbol & Media Layer",
+ "author": "Andreas Schmidt (https://github.com/remigius42)"
+ },
+ [
+ {
+ "x": 3.5,
+ "t": "#b81c1c"
+ },
+ "F3",
+ {
+ "x": 10.5
+ },
+ "F8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "F2",
+ {
+ "x": 1
+ },
+ "F4",
+ {
+ "x": 8.5
+ },
+ "F7",
+ {
+ "x": 1
+ },
+ "F9"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "F5",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "x": 4.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "F6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000\n\n\n#529151",
+ "w": 1.5
+ },
+ "\n\n\nFlash",
+ {
+ "t": "#b81c1c"
+ },
+ "F1",
+ {
+ "x": 14.5
+ },
+ "F10",
+ {
+ "t": "#b81c1c\n\n\n#529151",
+ "w": 1.5
+ },
+ "F11\n\n\nFlash"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5
+ },
+ "{\n\n\n<i class='fa fa-arrow-circle-up'></i>",
+ {
+ "x": 10.5,
+ "t": "#b81c1c"
+ },
+ "8"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "@",
+ {
+ "x": 1
+ },
+ "}",
+ {
+ "x": 8.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "7\n\n\nHTML ul",
+ {
+ "x": 1
+ },
+ "9\n\n\nHTML ol"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#b81c1c"
+ },
+ "|",
+ {
+ "t": "#000000",
+ "a": 7,
+ "h": 1.5
+ },
+ "",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "<i class='fa fa-arrow-up'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "!",
+ {
+ "x": 14.5
+ },
+ "*",
+ {
+ "w": 1.5
+ },
+ "F12"
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "(\n\n\n<i class='fa fa-arrow-circle-down'></i>",
+ {
+ "x": 10.5
+ },
+ "5\n\n\nHTML li"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5
+ },
+ "$\n\n\n<i class='fa fa-arrow-circle-left'></i>",
+ {
+ "x": 1
+ },
+ ")\n\n\n<i class='fa fa-arrow-circle-right'></i>",
+ {
+ "x": 8.5,
+ "t": "#b81c1c"
+ },
+ "4",
+ {
+ "x": 1
+ },
+ "6"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5
+ },
+ "`",
+ {
+ "x": 6.5
+ },
+ "<i class='fa fa-arrow-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "#",
+ {
+ "x": 14.5
+ },
+ "+",
+ {
+ "t": "#000000\n\n\n#529151",
+ "w": 1.5
+ },
+ "\n\n\n<i class='fa fa-play'></i><i class='fa fa-pause'></i>"
+ ],
+ [
+ {
+ "y": -0.625,
+ "x": 6.5,
+ "t": "#000000",
+ "a": 7,
+ "h": 1.5
+ },
+ "",
+ {
+ "x": 4.5,
+ "h": 1.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 3.5,
+ "t": "#b81c1c\n\n\n#529151",
+ "a": 4
+ },
+ "[\n\n\nHTML code",
+ {
+ "x": 10.5
+ },
+ "2\n\n\n<i class='fa fa-fast-backward'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "t": "#b81c1c"
+ },
+ "^",
+ {
+ "x": 1,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "]\n\n\nHTML br",
+ {
+ "x": 8.5,
+ "t": "#b81c1c"
+ },
+ "1",
+ {
+ "x": 1,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "3\n\n\n<i class='fa fa-fast-forward'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 5.5,
+ "t": "#b81c1c"
+ },
+ "~",
+ {
+ "x": 6.5
+ },
+ "&"
+ ],
+ [
+ {
+ "y": -0.875,
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "%",
+ {
+ "x": 14.5
+ },
+ "\\",
+ {
+ "t": "#000000",
+ "a": 7,
+ "w": 1.5
+ },
+ ""
+ ],
+ [
+ {
+ "y": -0.375,
+ "x": 3.5,
+ "t": "#000000\n\n\n#529151",
+ "a": 4
+ },
+ "\n\n\nleft click",
+ {
+ "x": 10.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ ".\n\n\n<i class='fa fa-volume-down'></i>"
+ ],
+ [
+ {
+ "y": -0.875,
+ "x": 2.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "x": 1,
+ "t": "#000000\n\n\n#529151",
+ "a": 4
+ },
+ "\n\n\nright click",
+ {
+ "x": 8.5,
+ "t": "#b81c1c\n\n\n#529151"
+ },
+ "?\n\n\n<i class='fa fa-volume-up'></i>",
+ {
+ "x": 1,
+ "t": "#b81c1c"
+ },
+ "0"
+ ],
+ [
+ {
+ "y": -0.75,
+ "x": 0.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ {
+ "t": "#b81c1c",
+ "a": 4
+ },
+ "EPRM RST",
+ {
+ "x": 14.5,
+ "t": "#000000",
+ "a": 7
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "r": 30,
+ "rx": 6.5,
+ "ry": 4.25,
+ "y": -1,
+ "x": 1
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "t": "#000000\n\n\n#529151",
+ "a": 4,
+ "h": 2
+ },
+ "\n\n\nEnter",
+ {
+ "t": "#000000",
+ "a": 7,
+ "h": 2
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "x": 2
+ },
+ ""
+ ],
+ [
+ {
+ "r": -30,
+ "rx": 13,
+ "y": -1,
+ "x": -3
+ },
+ "",
+ ""
+ ],
+ [
+ {
+ "x": -3
+ },
+ "",
+ {
+ "h": 2
+ },
+ "",
+ {
+ "t": "#000000\n\n\n#529151",
+ "a": 4,
+ "h": 2
+ },
+ "\n\n\nWeb back"
+ ],
+ [
+ {
+ "x": -3,
+ "t": "#000000",
+ "a": 7
+ },
+ ""
+ ]
+]
diff --git a/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png
new file mode 100644
index 0000000000..54c4a7587c
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keyboard-layout_1_2.png
Binary files differ
diff --git a/keyboards/ergodox/keymaps/swissgerman/keymap.c b/keyboards/ergodox/keymaps/swissgerman/keymap.c
new file mode 100644
index 0000000000..2291fb651a
--- /dev/null
+++ b/keyboards/ergodox/keymaps/swissgerman/keymap.c
@@ -0,0 +1,287 @@
+#include "ergodox.h"
+#include "debug.h"
+#include "action_layer.h"
+#include "version.h"
+#include "string.h"
+
+#ifdef SUBPROJECT_infinity
+#include "visualizer/lcd_backlight.h"
+#endif
+
+
+#define BASE 0 // default layer
+#define SYMB 1 // symbols
+#define MDIA 2 // media keys
+
+#define EPRM M(1) // Macro 1: Reset EEPROM
+#define HTML_LI M(10)
+#define HTML_UL M(11)
+#define HTML_OL M(12)
+#define HTML_CODE M(13)
+#define HTML_BR M(14)
+
+#define SEND_TAG(TAG) do {\
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING(TAG); \
+ send_larger_than(); \
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING("&"); \
+ SEND_STRING(TAG); \
+ send_larger_than(); \
+ go_back_based_on_tag(TAG); \
+ } while (0)
+
+#define SEND_SHORT_TAG(TAG) do {\
+ send_key(KC_NONUS_BSLASH); \
+ SEND_STRING(TAG); \
+ SEND_STRING("&"); \
+ send_larger_than(); \
+ } while (0)
+
+void send_key(uint16_t keycode);
+void go_back_based_on_tag(char* tag);
+void send_larger_than(void);
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Keymap 0: Basic layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | § | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | ' |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Del | Q | W | E | R | T | L1 | | L1 | Z | U | I | O | P | ü |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | BkSp | A /L2| S | D | F | G |------| |------| H | J | K | L |ö / L2|ä / Cmd |
+ * |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
+ * | LShift |Y/Ctrl|X/Alt | C | V | B | | | | N | M | , |./Alt |-/Ctrl| RShift |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * |< / L1| ^ | $ | Left | Right| | Up | Down |AltGr | ¨ | ~L1 |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | App | LGui | | Alt |Ctrl/Esc|
+ * ,------|------|------| |------+--------+------.
+ * | | | Home | | PgUp | | |
+ * | Space|Backsp|------| |------| Tab |Enter |
+ * | |ace | End | | PgDn | | |
+ * `--------------------' `----------------------'
+ */
+// If it accepts an argument (i.e, is a function), it doesn't need KC_.
+// Otherwise, it needs KC_*
+[BASE] = KEYMAP( // layer 0 : default
+ // left hand
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
+ KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
+ KC_BSPC, LT(MDIA, KC_A),KC_S, KC_D, KC_F, KC_G,
+ KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), KC_C, KC_V, KC_B, ALL_T(KC_NO),
+ LT(SYMB,KC_NONUS_BSLASH), KC_EQL, KC_BSLS, KC_LEFT,KC_RGHT,
+ ALT_T(KC_APP), KC_LGUI,
+ KC_HOME,
+ KC_SPC,KC_BSPC,KC_END,
+ // right hand
+ KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
+ TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),GUI_T(KC_QUOT),
+ MEH_T(KC_NO),KC_N, KC_M, KC_COMM,ALT_T(KC_DOT), CTL_T(KC_SLSH), KC_RSFT,
+ KC_UP, KC_DOWN,KC_RALT,KC_RBRC, KC_FN1,
+ KC_LALT,CTL_T(KC_ESC),
+ KC_PGUP,
+ KC_PGDN,KC_TAB, KC_ENT
+ ),
+/* Keymap 1: Symbol Layer
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
+ * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
+ * | | EPRM | | | | | ? | . | 0 | = | |
+ * `----------------------------------' `----------------------------------'
+ * ,-------------. ,-------------.
+ * | | | | | |
+ * ,------|------|------| |------+------+------.
+ * | | | | | | | |
+ * | | |------| |------| | |
+ * | | | | | | | |
+ * `--------------------' `--------------------'
+ */
+// SYMBOLS
+[SYMB] = KEYMAP(
+ // left hand
+ M(0), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
+ KC_TRNS,ACTION_MODS_KEY(MOD_LSFT, KC_RBRC), ACTION_MODS_KEY(MOD_RALT, KC_2), ACTION_MODS_KEY(MOD_RALT, KC_QUOT), ACTION_MODS_KEY(MOD_RALT, KC_BSLS),ACTION_MODS_KEY(MOD_RALT,KC_7),KC_TRNS,
+ KC_TRNS,ACTION_MODS_KEY(MOD_RALT,KC_3),KC_BSLS, ACTION_MODS_KEY(MOD_LSFT, KC_8), ACTION_MODS_KEY(MOD_RSFT, KC_9),ACTION_MODS_KEY(MOD_LSFT,KC_EQL),
+ KC_TRNS,ACTION_MODS_KEY(MOD_LSFT,KC_5),KC_EQL, ACTION_MODS_KEY(MOD_RALT, KC_LBRC), ACTION_MODS_KEY(MOD_RALT, KC_RBRC),ACTION_MODS_KEY(MOD_RALT,KC_EQL),KC_TRNS,
+ KC_TRNS,EPRM,KC_TRNS,KC_NONUS_BSLASH, ACTION_MODS_KEY(MOD_LSFT, KC_NONUS_BSLASH)/*KC_TRNS,KC_TRNS*/,
+ KC_TRNS,KC_TRNS,
+ KC_TRNS,
+ KC_TRNS,KC_TRNS,KC_TRNS,
+ // right hand
+ KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
+ KC_TRNS, KC_UP, KC_7, KC_8, KC_9, ACTION_MODS_KEY(MOD_RSFT,KC_3), KC_F12,
+ KC_DOWN, KC_4, KC_5, KC_6, ACTION_MODS_KEY(MOD_RSFT,KC_1), KC_TRNS,
+ KC_TRNS, ACTION_MODS_KEY(MOD_RSFT,KC_6), KC_1, KC_2, KC_3, ACTION_MODS_KEY(MOD_RALT,KC_NONUS_BSLASH), KC_TRNS,
+ ACTION_MODS_KEY(MOD_RSFT,KC_MINS),KC_DOT, KC_0, KC_EQL, KC_TRNS,
+ KC_TRNS, KC_TRNS,
+ KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+),
+/* Keymap 2: Media and mouse keys
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | RESET |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | | | | MsUp | | | | | | |H_UL | |H_OL | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | |MsLeft|MsDown|MsRght| |------| |------| | | |H_LI | | Play |