From 5c1cfc917ec9a31b340d19e9fd5d23fc59605b0b Mon Sep 17 00:00:00 2001
From: Julian Turner <33830803+JulianTurner@users.noreply.github.com>
Date: Sat, 6 Aug 2022 23:41:52 +0200
Subject: [Keymap] German Corne Layout (#17268)
* added german corne
* added symbol layer
* Delete settings.json
revert setting
* Delete keymap.c
* Update config.h
* Update keycodes.h
* Update config.h
* Update keyboards/crkbd/keymaps/JulianTurner/oled.c
* Update keycodes.h
* Update oled.c
added header
* Update keymap.c
added header
* Update keytabs.h
added header
* Update readme.md
* Update rules.mk
* default settings
* Update settings.json
* renamed folder
* revert
* remove c file import and added to rules
* Update keymap.c
* Update keymap.c
* Update readme.md
* Update rules.mk
* updated files from pull request
* fixed issues with merge
* Update keyboards/crkbd/keymaps/julian_turner/oled.c
* Update keyboards/crkbd/keymaps/julian_turner/rules.mk
* Update keyboards/crkbd/keymaps/julian_turner/keymap.c
* Delete keycodes.h
* Update keyboards/crkbd/keymaps/julian_turner/readme.md
---
keyboards/crkbd/keymaps/julian_turner/config.h | 34 ++++++++++++
keyboards/crkbd/keymaps/julian_turner/keymap.c | 61 ++++++++++++++++++++
keyboards/crkbd/keymaps/julian_turner/keytabs.h | 27 +++++++++
keyboards/crkbd/keymaps/julian_turner/layers.h | 19 +++++++
keyboards/crkbd/keymaps/julian_turner/oled.c | 74 +++++++++++++++++++++++++
keyboards/crkbd/keymaps/julian_turner/oled.h | 27 +++++++++
keyboards/crkbd/keymaps/julian_turner/readme.md | 5 ++
keyboards/crkbd/keymaps/julian_turner/rules.mk | 15 +++++
8 files changed, 262 insertions(+)
create mode 100644 keyboards/crkbd/keymaps/julian_turner/config.h
create mode 100644 keyboards/crkbd/keymaps/julian_turner/keymap.c
create mode 100644 keyboards/crkbd/keymaps/julian_turner/keytabs.h
create mode 100644 keyboards/crkbd/keymaps/julian_turner/layers.h
create mode 100644 keyboards/crkbd/keymaps/julian_turner/oled.c
create mode 100644 keyboards/crkbd/keymaps/julian_turner/oled.h
create mode 100644 keyboards/crkbd/keymaps/julian_turner/readme.md
create mode 100644 keyboards/crkbd/keymaps/julian_turner/rules.mk
(limited to 'keyboards/crkbd/keymaps/julian_turner')
diff --git a/keyboards/crkbd/keymaps/julian_turner/config.h b/keyboards/crkbd/keymaps/julian_turner/config.h
new file mode 100644
index 0000000000..cf3e80b23e
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#undef MANUFACTURER
+#define MANUFACTURER Trner
+
+/* Select hand configuration */
+#define MASTER_LEFT
+
+// Configure the global tapping term (default: 200ms)
+#define TAPPING_TERM 500
+
+// Prevent normal rollover on alphas from accidentally triggering mods.
+#define IGNORE_MOD_TAP_INTERRUPT
+
+// Enable rapid switch from tap to hold, disables double tap hold auto-repeat.
+#define TAPPING_FORCE_HOLD
+
+//#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
diff --git a/keyboards/crkbd/keymaps/julian_turner/keymap.c b/keyboards/crkbd/keymaps/julian_turner/keymap.c
new file mode 100644
index 0000000000..f293f4eb2c
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/keymap.c
@@ -0,0 +1,61 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+#include "keymap_german.h"
+#include "layers.h"
+#include "keytabs.h"
+
+// clang-format off
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTZ] = LAYOUT_split_3x6_3(
+ //,-----------------------------------------------------. ,-----------------------------------------------------.
+ KC_TAB, DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ XXXXXXX, HOME_A, HOME_S, HOME_D, HOME_F, DE_G, DE_H, HOME_J, HOME_K, HOME_L, HOME_OE, DE_ADIA,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_LEFT_CTRL, DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, KC_COMM, DE_DOT, XXXXXXX, XXXXXXX,
+ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ MO(_NUMBER), MO(_SYMBOL), KC_SPC, KC_BSPACE, KC_ENTER, XXXXXXX
+ //`--------------------------' `--------------------------'
+
+ ),
+ [_SYMBOL] = LAYOUT_split_3x6_3(
+ //,-----------------------------------------------------. ,-----------------------------------------------------.
+ XXXXXXX, XXXXXXX, DE_UNDS, DE_LBRC, DE_RBRC, DE_CIRC, DE_EXLM, DE_LABK, DE_RABK, DE_EQL, DE_AMPR, DE_SS,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ XXXXXXX, DE_BSLS, DE_SLSH, DE_LCBR, DE_RCBR, DE_ASTR, DE_QUES, DE_LPRN, DE_RPRN, DE_MINS, DE_AT, XXXXXXX,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_LEFT_CTRL, DE_HASH, DE_DLR, DE_PIPE, DE_TILD, DE_GRV, DE_PLUS, DE_PERC, DE_DQUO, DE_QUOT, XXXXXXX, XXXXXXX,
+ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ MO(_NUMBER), MO(_SYMBOL), KC_SPC, KC_BSPACE, KC_ENTER, XXXXXXX
+ //`--------------------------' `--------------------------'
+
+ ),
+ [_NUMBER] = LAYOUT_split_3x6_3(
+ //,-----------------------------------------------------. ,-----------------------------------------------------.
+ XXXXXXX, XXXXXXX, KC_PAGE_UP, KC_UP, KC_PAGE_DOWN, XXXXXXX, XXXXXXX, DE_7, DE_8, DE_9, DE_ASTR, DE_SLSH,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RIGHT, XXXXXXX, XXXXXXX, DE_4, DE_5, DE_6, DE_PLUS, DE_MINS,
+ //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
+ KC_LEFT_CTRL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DE_1, DE_2, DE_3, XXXXXXX, XXXXXXX,
+ //|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
+ MO(_NUMBER), MO(_SYMBOL), KC_SPC, KC_BSPACE, KC_ENTER, DE_0
+ //`--------------------------' `--------------------------'
+
+ ),
+};
+// clang-format off
diff --git a/keyboards/crkbd/keymaps/julian_turner/keytabs.h b/keyboards/crkbd/keymaps/julian_turner/keytabs.h
new file mode 100644
index 0000000000..fd81049d83
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/keytabs.h
@@ -0,0 +1,27 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+// Left-hand home row mods
+#define HOME_A LGUI_T(DE_A)
+#define HOME_S LALT_T(DE_S)
+#define HOME_D LSFT_T(DE_D)
+#define HOME_F LCTL_T(DE_F)
+
+// Right-hand home row mods
+#define HOME_J RCTL_T(DE_J)
+#define HOME_K RSFT_T(DE_K)
+#define HOME_L LALT_T(DE_L)
+#define HOME_OE RGUI_T(DE_ODIA)
diff --git a/keyboards/crkbd/keymaps/julian_turner/layers.h b/keyboards/crkbd/keymaps/julian_turner/layers.h
new file mode 100644
index 0000000000..ff27c18763
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/layers.h
@@ -0,0 +1,19 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+enum layers { _QWERTZ, _SYMBOL, _NUMBER };
\ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/julian_turner/oled.c b/keyboards/crkbd/keymaps/julian_turner/oled.c
new file mode 100644
index 0000000000..f6b022d5ec
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/oled.c
@@ -0,0 +1,74 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#include QMK_KEYBOARD_H
+#include "layers.h"
+
+
+oled_rotation_t oled_init_user(oled_rotation_t rotation) {
+ if (!is_keyboard_master()) {
+ return OLED_ROTATION_180; // flips the display 180 degrees if offhand
+ }
+ return rotation;
+}
+
+void oled_render_layer_state(void) {
+ oled_write_P(PSTR("layer: "), false);
+ switch (get_highest_layer(layer_state | default_layer_state)) {
+ case _QWERTZ:
+ oled_write_ln_P(PSTR("QWERTZ"), false);
+ break;
+ case _SYMBOL:
+ oled_write_ln_P(PSTR("SYMBOL"), false);
+ break;
+ case _NUMBER:
+ oled_write_ln_P(PSTR("NUMBER"), false);
+ break;
+ default:
+ oled_write_ln_P(PSTR("unknown"), false);
+ break;
+ }
+}
+
+void render_bootmagic_status(bool status) {
+ /* Show Ctrl-Gui Swap options */
+ static const char PROGMEM logo[][2][3] = {
+ {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}},
+ {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}},
+ };
+ if (status) {
+ oled_write_ln_P(logo[0][0], false);
+ oled_write_ln_P(logo[0][1], false);
+ } else {
+ oled_write_ln_P(logo[1][0], false);
+ oled_write_ln_P(logo[1][1], false);
+ }
+}
+
+void oled_render_logo(void) {
+ static const char PROGMEM crkbd_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
+ oled_write_P(crkbd_logo, false);
+}
+
+bool oled_task_user(void) {
+ if (is_keyboard_master()) {
+ oled_render_layer_state();
+ oled_write_P(PSTR("WPM: "), false);
+ oled_write(get_u8_str(get_current_wpm(), ' '), false);
+ } else {
+ oled_render_logo();
+ }
+ return false;
+}
\ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/julian_turner/oled.h b/keyboards/crkbd/keymaps/julian_turner/oled.h
new file mode 100644
index 0000000000..5fcf62d0aa
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/oled.h
@@ -0,0 +1,27 @@
+/* Copyright 2022 Julian Turner
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#ifdef OLED_ENABLE
+bool process_record_oled(uint16_t keycode, keyrecord_t *record);
+oled_rotation_t oled_init_user(oled_rotation_t rotation);
+void render_layer_symbol(void);
+void render_layer_name(void);
+void render_mod_state(uint8_t modifiers);
+void render_status(void);
+bool oled_task_user(void);
+#endif
\ No newline at end of file
diff --git a/keyboards/crkbd/keymaps/julian_turner/readme.md b/keyboards/crkbd/keymaps/julian_turner/readme.md
new file mode 100644
index 0000000000..ab1be58225
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/readme.md
@@ -0,0 +1,5 @@
+# JulianTurner´s CRKBD Layout
+
+## Compile
+
+Compile using `qmk compile -kb crkbd -km julian_turner` for Pro Micro
diff --git a/keyboards/crkbd/keymaps/julian_turner/rules.mk b/keyboards/crkbd/keymaps/julian_turner/rules.mk
new file mode 100644
index 0000000000..e6ddd80076
--- /dev/null
+++ b/keyboards/crkbd/keymaps/julian_turner/rules.mk
@@ -0,0 +1,15 @@
+RGBLIGHT_ENABLE = yes
+
+OLED_ENABLE = yes
+OLED_DRIVER = SSD1306
+WPM_ENABLE = yes
+
+
+# Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable).
+LTO_ENABLE = yes
+
+
+
+ifeq ($(OLED_ENABLE),yes)
+ SRC += ./oled.c
+endif
--
cgit v1.2.3