From cadf18c6d3c59c42cf717d56cfd9ccc829be59e1 Mon Sep 17 00:00:00 2001
From: trguhq <93248917+trguhq@users.noreply.github.com>
Date: Tue, 15 Nov 2022 11:57:09 -0500
Subject: [PATCH] Planck unicode rune layout (#18674)
* Furthark layout
---
layouts/community/ortho_4x12/trguhq/config.h | 27 ++
layouts/community/ortho_4x12/trguhq/keymap.c | 29 ++
layouts/community/ortho_4x12/trguhq/readme.md | 36 ++
layouts/community/ortho_4x12/trguhq/rules.mk | 1 +
.../community/ortho_4x12/trguhq/trguhq.json | 361 ++++++++++++++++++
5 files changed, 454 insertions(+)
create mode 100644 layouts/community/ortho_4x12/trguhq/config.h
create mode 100644 layouts/community/ortho_4x12/trguhq/keymap.c
create mode 100644 layouts/community/ortho_4x12/trguhq/readme.md
create mode 100644 layouts/community/ortho_4x12/trguhq/rules.mk
create mode 100644 layouts/community/ortho_4x12/trguhq/trguhq.json
diff --git a/layouts/community/ortho_4x12/trguhq/config.h b/layouts/community/ortho_4x12/trguhq/config.h
new file mode 100644
index 0000000000..476141e232
--- /dev/null
+++ b/layouts/community/ortho_4x12/trguhq/config.h
@@ -0,0 +1,27 @@
+/* Ortho 4x12 Unicode Rune Layout
+ *
+ * Copyright 2021 trguhq
+ *
+ * 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
+
+#define UNICODE_SELECTED_MODES UC_MAC, UC_LNX, UC_WIN, UC_WINC
+
+// #define UNICODE_SONG_MAC AUDIO_ON_SOUND
+// #define UNICODE_SONG_LNX UNICODE_LINUX
+// #define UNICODE_SONG_BSD TERMINAL_SOUND
+// #define UNICODE_SONG_WIN UNICODE_WINDOWS
+// #define UNICODE_SONG_WINC UNICODE_WINDOWS
diff --git a/layouts/community/ortho_4x12/trguhq/keymap.c b/layouts/community/ortho_4x12/trguhq/keymap.c
new file mode 100644
index 0000000000..fecf0157b8
--- /dev/null
+++ b/layouts/community/ortho_4x12/trguhq/keymap.c
@@ -0,0 +1,29 @@
+/* Ortho 4x12 Unicode Rune Layout
+ *
+ * Copyright 2021 trguhq
+ *
+ * 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
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_4x12(KC_ESC, KC_GRV, UC(0x16A0), UC(0x16A2), UC(0x16A6), UC(0x16A8), UC(0x16B1), UC(0x16B2), UC(0x16B7), UC(0x16B9), KC_QUOT, KC_BSPC, KC_TAB, KC_SCLN, UC(0x16BA), UC(0x16BE), UC(0x16C1), UC(0x16C3), UC(0x16C7), UC(0x16C8), UC(0x16C9), UC(0x16CA), KC_COMM, KC_DOT, KC_LSFT, KC_BSLS, UC(0x16CF), UC(0x16D2), UC(0x16D6), UC(0x16D7), UC(0x16DA), UC(0x16DC), UC(0x16DF), UC(0x16DE), KC_UP, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_SLSH, KC_LEFT, KC_DOWN, KC_RGHT),
+ [1] = LAYOUT_ortho_4x12(KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
+ [2] = LAYOUT_ortho_4x12(KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT, BL_STEP, KC_LCTL, KC_LALT, KC_LGUI, MO(3), KC_SPC, KC_SPC, MO(4), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT),
+ [3] = LAYOUT_ortho_4x12(KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, LSFT(KC_NUHS), LSFT(KC_NUBS), KC_HOME, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
+ [4] = LAYOUT_ortho_4x12(KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(6), KC_TRNS, KC_TRNS, KC_TRNS, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY),
+ [5] = LAYOUT_ortho_4x12(KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_NO, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, TO(0), KC_NO, KC_NO, KC_C, KC_V, KC_NO, KC_NO, KC_N, KC_M, KC_NO, KC_NO, KC_NO),
+ [6] = LAYOUT_ortho_4x12(UNICODE_MODE_MAC, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL, UNICODE_MODE_LNX, KC_TRNS, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, DF(0), DF(1), DF(2), TO(5), KC_TRNS, UNICODE_MODE_WIN, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, /* TERM_ON */ KC_TRNS, /* TERM_OFF */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UNICODE_MODE_WINC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
+};
diff --git a/layouts/community/ortho_4x12/trguhq/readme.md b/layouts/community/ortho_4x12/trguhq/readme.md
new file mode 100644
index 0000000000..e0f5025a09
--- /dev/null
+++ b/layouts/community/ortho_4x12/trguhq/readme.md
@@ -0,0 +1,36 @@
+# Planck Ortho 4x12 Unicode Futhark Rune layout
+
+![Planck Futhark Layout Image](https://i.imgur.com/ocILTZ3.png)
+
+* Layout Maintainer: [trguhq](https://github.com/trguhq)
+
+Types unicode runes on ortholinear QMK keyboard. Legacy Latin letter
+layers left for user but have been marked red as irrelevant.
+
+## OS specific
+
+With both modifiers (either side of spacebar) selected, layer 6
+lets you select which OS mode to use with the first vertical column
+of keys:
+
+1. macOS
+2. Linux
+3. Windows Unicode
+4. Windows WinCompose
+
+See [QMK docs](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_unicode.md) for details.
+
+### macOS
+
+On macOS this will have to be enabled in keyboard settings as a
+Unicode Hex Input Keyboard Source and selected under the
+keyboard layouts icon on the menu bar.
+
+### Linux
+
+Uses IBus or GTK.
+
+### Windows
+
+Either create the needed EnableHexNumpad registry key for Windows Unicode
+entry, or (recommended) install WinCompose.
diff --git a/layouts/community/ortho_4x12/trguhq/rules.mk b/layouts/community/ortho_4x12/trguhq/rules.mk
new file mode 100644
index 0000000000..039f07c8e3
--- /dev/null
+++ b/layouts/community/ortho_4x12/trguhq/rules.mk
@@ -0,0 +1 @@
+UNICODE_ENABLE = yes
diff --git a/layouts/community/ortho_4x12/trguhq/trguhq.json b/layouts/community/ortho_4x12/trguhq/trguhq.json
new file mode 100644
index 0000000000..cade25899a
--- /dev/null
+++ b/layouts/community/ortho_4x12/trguhq/trguhq.json
@@ -0,0 +1,361 @@
+{
+ "version": 1,
+ "notes": "",
+ "documentation": "\"This file is a QMK Configurator export. You can import this at . It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: \n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
+ "keyboard": "planck/rev6_drop",
+ "keymap": "trguhq",
+ "layout": "LAYOUT_ortho_4x12",
+ "layers": [
+ [
+ "KC_ESC",
+ "KC_GRV",
+ "ANY(UC(0x16A0))",
+ "ANY(UC(0x16A2))",
+ "ANY(UC(0x16A6))",
+ "ANY(UC(0x16A8))",
+ "ANY(UC(0x16B1))",
+ "ANY(UC(0x16B2))",
+ "ANY(UC(0x16B7))",
+ "ANY(UC(0x16B9))",
+ "KC_QUOT",
+ "KC_BSPC",
+ "KC_TAB",
+ "KC_SCLN",
+ "ANY(UC(0x16BA))",
+ "ANY(UC(0x16BE))",
+ "ANY(UC(0x16C1))",
+ "ANY(UC(0x16C3))",
+ "ANY(UC(0x16C7))",
+ "ANY(UC(0x16C8))",
+ "ANY(UC(0x16C9))",
+ "ANY(UC(0x16CA))",
+ "KC_COMM",
+ "KC_DOT",
+ "KC_LSFT",
+ "KC_BSLS",
+ "ANY(UC(0x16CF))",
+ "ANY(UC(0x16D2))",
+ "ANY(UC(0x16D6))",
+ "ANY(UC(0x16D7))",
+ "ANY(UC(0x16DA))",
+ "ANY(UC(0x16DC))",
+ "ANY(UC(0x16DF))",
+ "ANY(UC(0x16DE))",
+ "KC_UP",
+ "KC_ENT",
+ "BL_STEP",
+ "KC_LCTL",
+ "KC_LALT",
+ "KC_LGUI",
+ "MO(3)",
+ "KC_SPC",
+ "KC_SPC",
+ "MO(4)",
+ "KC_SLSH",
+ "KC_LEFT",
+ "KC_DOWN",
+ "KC_RGHT"
+ ],
+ [
+ "KC_TAB",
+ "KC_Q",
+ "KC_W",
+ "KC_F",
+ "KC_P",
+ "KC_G",
+ "KC_J",
+ "KC_L",
+ "KC_U",
+ "KC_Y",
+ "KC_SCLN",
+ "KC_BSPC",
+ "KC_ESC",
+ "KC_A",
+ "KC_R",
+ "KC_S",
+ "KC_T",
+ "KC_D",
+ "KC_H",
+ "KC_N",
+ "KC_E",
+ "KC_I",
+ "KC_O",
+ "KC_QUOT",
+ "KC_LSFT",
+ "KC_Z",
+ "KC_X",
+ "KC_C",
+ "KC_V",
+ "KC_B",
+ "KC_K",
+ "KC_M",
+ "KC_COMM",
+ "KC_DOT",
+ "KC_SLSH",
+ "KC_ENT",
+ "BL_STEP",
+ "KC_LCTL",
+ "KC_LALT",
+ "KC_LGUI",
+ "MO(3)",
+ "KC_SPC",
+ "KC_SPC",
+ "MO(4)",
+ "KC_LEFT",
+ "KC_DOWN",
+ "KC_UP",
+ "KC_RGHT"
+ ],
+ [
+ "KC_TAB",
+ "KC_QUOT",
+ "KC_COMM",
+ "KC_DOT",
+ "KC_P",
+ "KC_Y",
+ "KC_F",
+ "KC_G",
+ "KC_C",
+ "KC_R",
+ "KC_L",
+ "KC_BSPC",
+ "KC_ESC",
+ "KC_A",
+ "KC_O",
+ "KC_E",
+ "KC_U",
+ "KC_I",
+ "KC_D",
+ "KC_H",
+ "KC_T",
+ "KC_N",
+ "KC_S",
+ "KC_SLSH",
+ "KC_LSFT",
+ "KC_SCLN",
+ "KC_Q",
+ "KC_J",
+ "KC_K",
+ "KC_X",
+ "KC_B",
+ "KC_M",
+ "KC_W",
+ "KC_V",
+ "KC_Z",
+ "KC_ENT",
+ "BL_STEP",
+ "KC_LCTL",
+ "KC_LALT",
+ "KC_LGUI",
+ "MO(3)",
+ "KC_SPC",
+ "KC_SPC",
+ "MO(4)",
+ "KC_LEFT",
+ "KC_DOWN",
+ "KC_UP",
+ "KC_RGHT"
+ ],
+ [
+ "KC_TILD",
+ "KC_EXLM",
+ "KC_AT",
+ "KC_HASH",
+ "KC_DLR",
+ "KC_PERC",
+ "KC_CIRC",
+ "KC_AMPR",
+ "KC_ASTR",
+ "KC_LPRN",
+ "KC_RPRN",
+ "KC_BSPC",
+ "KC_DEL",
+ "KC_F1",
+ "KC_F2",
+ "KC_F3",
+ "KC_F4",
+ "KC_F5",
+ "KC_F6",
+ "KC_UNDS",
+ "KC_PLUS",
+ "KC_LCBR",
+ "KC_RCBR",
+ "KC_PIPE",
+ "KC_TRNS",
+ "KC_F7",
+ "KC_F8",
+ "KC_F9",
+ "KC_F10",
+ "KC_F11",
+ "KC_F12",
+ "LSFT(KC_NUHS)",
+ "LSFT(KC_NUBS)",
+ "KC_HOME",
+ "KC_END",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "MO(6)",
+ "KC_MNXT",
+ "KC_VOLD",
+ "KC_VOLU",
+ "KC_MPLY"
+ ],
+ [
+ "KC_GRV",
+ "KC_1",
+ "KC_2",
+ "KC_3",
+ "KC_4",
+ "KC_5",
+ "KC_6",
+ "KC_7",
+ "KC_8",
+ "KC_9",
+ "KC_0",
+ "KC_BSPC",
+ "KC_DEL",
+ "KC_F1",
+ "KC_F2",
+ "KC_F3",
+ "KC_F4",
+ "KC_F5",
+ "KC_F6",
+ "KC_MINS",
+ "KC_EQL",
+ "KC_LBRC",
+ "KC_RBRC",
+ "KC_BSLS",
+ "KC_TRNS",
+ "KC_F7",
+ "KC_F8",
+ "KC_F9",
+ "KC_F10",
+ "KC_F11",
+ "KC_F12",
+ "KC_NUHS",
+ "KC_NUBS",
+ "KC_PGUP",
+ "KC_PGDN",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "MO(6)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_MNXT",
+ "KC_VOLD",
+ "KC_VOLU",
+ "KC_MPLY"
+ ],
+ [
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_1",
+ "KC_NO",
+ "KC_Q",
+ "KC_W",
+ "KC_E",
+ "KC_R",
+ "KC_T",
+ "KC_Y",
+ "KC_U",
+ "KC_I",
+ "KC_O",
+ "KC_P",
+ "KC_LBRC",
+ "KC_NO",
+ "KC_A",
+ "KC_S",
+ "KC_D",
+ "KC_F",
+ "KC_G",
+ "KC_H",
+ "KC_J",
+ "KC_K",
+ "KC_L",
+ "KC_SCLN",
+ "KC_QUOT",
+ "TO(0)",
+ "KC_NO",
+ "KC_NO",
+ "KC_C",
+ "KC_V",
+ "KC_NO",
+ "KC_NO",
+ "KC_N",
+ "KC_M",
+ "KC_NO",
+ "KC_NO",
+ "KC_NO"
+ ],
+ [
+ "ANY(UNICODE_MODE_MAC)",
+ "QK_BOOT",
+ "DEBUG",
+ "RGB_TOG",
+ "RGB_MOD",
+ "RGB_HUI",
+ "RGB_HUD",
+ "RGB_SAI",
+ "RGB_SAD",
+ "RGB_VAI",
+ "RGB_VAD",
+ "KC_DEL",
+ "ANY(UNICODE_MODE_LNX)",
+ "KC_TRNS",
+ "ANY(MU_MOD)",
+ "ANY(AU_ON)",
+ "ANY(AU_OFF)",
+ "AG_NORM",
+ "AG_SWAP",
+ "DF(0)",
+ "DF(1)",
+ "DF(2)",
+ "TO(5)",
+ "KC_TRNS",
+ "ANY(UNICODE_MODE_WIN)",
+ "ANY(MUV_DE)",
+ "ANY(MUV_IN)",
+ "ANY(MU_ON)",
+ "ANY(MU_OFF)",
+ "ANY(MI_ON)",
+ "ANY(MI_OFF)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "ANY(UNICODE_MODE_WINC)",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS",
+ "KC_TRNS"
+ ]
+ ],
+ "author": ""
+}