From 6197704d9ba7d530692dd4c562fb48bd54d7f3f8 Mon Sep 17 00:00:00 2001 From: Tyler Tidman Date: Fri, 26 Feb 2021 20:17:14 -0500 Subject: [PATCH 1/7] Add support for Durgod Taurus K310 non-backlit full-sized 104/105-key keyboards. --- keyboards/durgod/k310/config.h | 60 +++ keyboards/durgod/k310/info.json | 351 +++++++++++++++++ keyboards/durgod/k310/k310.c | 64 +++ keyboards/durgod/k310/k310.h | 93 +++++ .../durgod/k310/keymaps/chimera/keymap.c | 367 ++++++++++++++++++ .../durgod/k310/keymaps/chimera/readme.md | 65 ++++ .../durgod/k310/keymaps/chimera/rules.mk | 1 + .../durgod/k310/keymaps/default/keymap.json | 26 ++ .../durgod/k310/keymaps/default/readme.md | 16 + .../default_toggle_mac_windows/keymap.c | 367 ++++++++++++++++++ .../default_toggle_mac_windows/readme.md | 65 ++++ .../default_toggle_mac_windows/rules.mk | 1 + keyboards/durgod/k310/keymaps/via/keymap.c | 90 +++++ keyboards/durgod/k310/keymaps/via/readme.md | 6 + keyboards/durgod/k310/keymaps/via/rules.mk | 4 + keyboards/durgod/k310/readme.md | 58 +++ keyboards/durgod/k310/rules.mk | 27 ++ 17 files changed, 1661 insertions(+) create mode 100644 keyboards/durgod/k310/config.h create mode 100644 keyboards/durgod/k310/info.json create mode 100644 keyboards/durgod/k310/k310.c create mode 100644 keyboards/durgod/k310/k310.h create mode 100644 keyboards/durgod/k310/keymaps/chimera/keymap.c create mode 100644 keyboards/durgod/k310/keymaps/chimera/readme.md create mode 100644 keyboards/durgod/k310/keymaps/chimera/rules.mk create mode 100644 keyboards/durgod/k310/keymaps/default/keymap.json create mode 100644 keyboards/durgod/k310/keymaps/default/readme.md create mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/keymap.c create mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/readme.md create mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/rules.mk create mode 100644 keyboards/durgod/k310/keymaps/via/keymap.c create mode 100644 keyboards/durgod/k310/keymaps/via/readme.md create mode 100644 keyboards/durgod/k310/keymaps/via/rules.mk create mode 100644 keyboards/durgod/k310/readme.md create mode 100644 keyboards/durgod/k310/rules.mk diff --git a/keyboards/durgod/k310/config.h b/keyboards/durgod/k310/config.h new file mode 100644 index 000000000000..cf1fe572283f --- /dev/null +++ b/keyboards/durgod/k310/config.h @@ -0,0 +1,60 @@ +/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD60D +#define PRODUCT_ID 0x3100 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Hoksi Technology +#define PRODUCT DURGOD Taurus K310 (QMK) + +/* key matrix size */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 16 + +#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } +#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION ROW2COL + +// Dynamic EEPROM +// Something sensible or else VIA may crash +// Users may enable more if they wish +#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 +// #define USB_POLLING_INTERVAL_MS 1 + +/* Bootmagic Lite key configuration */ +#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + +/* LED indicator pins */ +#define LED_NUM_LOCK_PIN C8 +#define LED_CAPS_LOCK_PIN C9 +#define LED_SCROLL_LOCK_PIN A8 +#define LED_WIN_LOCK_PIN A9 +#define LED_MR_LOCK_PIN A10 +#define LED_PIN_ON_STATE 0 + +/* Original hardware "reset" button on pin D2 */ diff --git a/keyboards/durgod/k310/info.json b/keyboards/durgod/k310/info.json new file mode 100644 index 000000000000..35cd59becc80 --- /dev/null +++ b/keyboards/durgod/k310/info.json @@ -0,0 +1,351 @@ +{ + "keyboard_name": "DURGOD Taurus K310", + "url": "https://www.durgod.com/page9?product_id=53&_l=en", + "maintainer": "tylert", + "width": 22.5, + "height": 6.5, + "layouts": { + "LAYOUT_fullsize_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Num Lock", "x": 18.5, "y": 1.5 }, + { "label": "/", "x": 19.5, "y": 1.5 }, + { "label": "*", "x": 20.5, "y": 1.5 }, + { "label": "-", "x": 21.5, "y": 1.5 }, + + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "7", "x": 18.5, "y": 2.5 }, + { "label": "8", "x": 19.5, "y": 2.5 }, + { "label": "9", "x": 20.5, "y": 2.5 }, + { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, + + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "Enter", "x": 12.75, "y": 3.5, "w": 2.25 }, + { "label": "4", "x": 18.5, "y": 3.5 }, + { "label": "5", "x": 19.5, "y": 3.5 }, + { "label": "6", "x": 20.5, "y": 3.5 }, + + { "label": "Shift", "x": 0, "y": 4.5, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "1", "x": 18.5, "y": 4.5 }, + { "label": "2", "x": 19.5, "y": 4.5 }, + { "label": "3", "x": 20.5, "y": 4.5 }, + { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, + + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, + { "x": 3.75, "y": 5.5, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 }, + { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, + { "label": ".", "x": 20.5, "y": 5.5 } + ] + }, + "LAYOUT_fullsize_iso": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Num Lock", "x": 18.5, "y": 1.5 }, + { "label": "/", "x": 19.5, "y": 1.5 }, + { "label": "*", "x": 20.5, "y": 1.5 }, + { "label": "-", "x": 21.5, "y": 1.5 }, + + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "7", "x": 18.5, "y": 2.5 }, + { "label": "8", "x": 19.5, "y": 2.5 }, + { "label": "9", "x": 20.5, "y": 2.5 }, + { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, + + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "#", "x": 12.75, "y": 3.5 }, + { "label": "Enter", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2 }, + { "label": "4", "x": 18.5, "y": 3.5 }, + { "label": "5", "x": 19.5, "y": 3.5 }, + { "label": "6", "x": 20.5, "y": 3.5 }, + + { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "\\", "x": 1.25, "y": 4.5 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "1", "x": 18.5, "y": 4.5 }, + { "label": "2", "x": 19.5, "y": 4.5 }, + { "label": "3", "x": 20.5, "y": 4.5 }, + { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, + + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, + { "x": 3.75, "y": 5.5, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 }, + { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, + { "label": ".", "x": 20.5, "y": 5.5 } + ] + }, + "LAYOUT_all": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Num Lock", "x": 18.5, "y": 1.5 }, + { "label": "/", "x": 19.5, "y": 1.5 }, + { "label": "*", "x": 20.5, "y": 1.5 }, + { "label": "-", "x": 21.5, "y": 1.5 }, + + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "7", "x": 18.5, "y": 2.5 }, + { "label": "8", "x": 19.5, "y": 2.5 }, + { "label": "9", "x": 20.5, "y": 2.5 }, + { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, + + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "#", "x": 12.75, "y": 3.5 }, + { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, + { "label": "4", "x": 18.5, "y": 3.5 }, + { "label": "5", "x": 19.5, "y": 3.5 }, + { "label": "6", "x": 20.5, "y": 3.5 }, + + { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "\\", "x": 1.25, "y": 4.5 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "1", "x": 18.5, "y": 4.5 }, + { "label": "2", "x": 19.5, "y": 4.5 }, + { "label": "3", "x": 20.5, "y": 4.5 }, + { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, + + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, + { "x": 3.75, "y": 5.5, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 }, + { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, + { "label": ".", "x": 20.5, "y": 5.5 } + ] + } + } +} diff --git a/keyboards/durgod/k310/k310.c b/keyboards/durgod/k310/k310.c new file mode 100644 index 000000000000..3e23664a4e3a --- /dev/null +++ b/keyboards/durgod/k310/k310.c @@ -0,0 +1,64 @@ +/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * + * 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 "k310.h" + +/* Private Functions */ +void off_all_leds(void) { + writePinHigh(LED_NUM_LOCK_PIN); + writePinHigh(LED_CAPS_LOCK_PIN); + writePinHigh(LED_SCROLL_LOCK_PIN); + writePinHigh(LED_WIN_LOCK_PIN); + writePinHigh(LED_MR_LOCK_PIN); +} + +void on_all_leds(void) { + writePinLow(LED_NUM_LOCK_PIN); + writePinLow(LED_CAPS_LOCK_PIN); + writePinLow(LED_SCROLL_LOCK_PIN); + writePinLow(LED_WIN_LOCK_PIN); + writePinLow(LED_MR_LOCK_PIN); +} + +/* WinLock and MR LEDs are non-standard. Need to override led init */ +void led_init_ports(void) { + setPinOutput(LED_NUM_LOCK_PIN); + setPinOutput(LED_CAPS_LOCK_PIN); + setPinOutput(LED_SCROLL_LOCK_PIN); + setPinOutput(LED_WIN_LOCK_PIN); + setPinOutput(LED_MR_LOCK_PIN); + off_all_leds(); +} + +#ifndef WINLOCK_DISABLED +static bool win_key_locked = false; + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (record->event.pressed) { + // Toggle GUI lock on key press + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + } + return process_record_user(keycode, record); +} +#endif /* WINLOCK_DISABLED */ diff --git a/keyboards/durgod/k310/k310.h b/keyboards/durgod/k310/k310.h new file mode 100644 index 000000000000..f121d74ceb17 --- /dev/null +++ b/keyboards/durgod/k310/k310.h @@ -0,0 +1,93 @@ +/* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * + * 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 + +#include "quantum.h" + +#ifndef WINLOCK_DISABLED +// Define the TGUI key here so it is available in QMK configurator +enum K310_keycodes { + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE +}; + +#undef SAFE_RANGE +#define SAFE_RANGE NEW_SAFE_RANGE +#endif /* WINLOCK_DISABLED */ + +/* Function Prototype */ +void off_all_leds(void); +void on_all_leds(void); + +#define XXX KC_NO + +// This a shortcut to help you visually see your layout. +#define LAYOUT_fullsize_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, K7E, K7D, K7C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_fullsize_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} diff --git a/keyboards/durgod/k310/keymaps/chimera/keymap.c b/keyboards/durgod/k310/keymaps/chimera/keymap.c new file mode 100644 index 000000000000..d15560a42d60 --- /dev/null +++ b/keyboards/durgod/k310/keymaps/chimera/keymap.c @@ -0,0 +1,367 @@ +/* Copyright 2021 Tyler Tidman + * + * 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 + +// Layer shorthand +enum _layer { + _WBL, + _WFL, + _WSL, + _MBL, + _MFL, + _MSL +}; + +#ifndef DEFAULT_LAYOUT +# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. +#endif +#ifndef ALT_LAYOUT +# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. +#endif + +static bool win_key_locked = false; +static bool mac_media_locked = false; +static bool win_appkey_pressed = false; +static bool mac_fnkey_pressed = false; + + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) + KC_TMED, // Toggle between Fx keys or Media keys (Mac) + KC_WFN, // Windows function key + KC_MFN, // Mac function key + MO_WSL, // Windows system key + MO_MSL, // Mac system key + DF_W2MBL, // Change layout from Windows to Mac + DF_M2WBL // Change layout from Mac to Windows +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _WBL: Windows Base Layer (Default Layer) + * ,-----------------------------------------------------------. ,--------------. + * |Esc | f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | + * |-----------------------------------------------------------| |--------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | + * |-----------------------------------------------------------| `--------------' |-----------| + | + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | + * |-----------------------------------------------------------| ,----. |---------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | + * |-----------------------------------------------------------| ,-------------. |-----------|Ent| + * |Ctrl|Gui |Alt | Space |Alt |Func |App|Ctrl | |Lft| Dn |Rig | | 0 | . | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WBL] = LAYOUT_all( /* Windows Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _WFL: Windows Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | |Mute| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | |Vol+| | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | |Vol-| | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | |Lock| | | |Func |Sys| | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WFL] = LAYOUT_all( /* Windows First Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _WSL: Windows System Layer + * ,-----------------------------------------------------------. ,--------------. + * |Reset |Sleep| | |Power| | | | | | | | | |MAC| | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | |DBG| | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Func |Sys| | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ + RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * ,-----------------------------------------------------------. ,--------------. + * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| | f13| f14| f15| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | + * |-----------------------------------------------------------| |--------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | + * |-----------------------------------------------------------| `--------------' |-----------| + | + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | + * |-----------------------------------------------------------| ,----. |---------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | + * |-----------------------------------------------------------| ,-------------. |-----------|Ent| + * |Ctrl|Alt |Gui | Space |Gui |Alt|Func |Ctrl | |Lft| Dn |Rig | | 0 | . | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MBL] = LAYOUT_all( /* Mac Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _MFL: Mac Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Bri-|Bri+|MCon|LPad| | | |Prv|Ply| |Nxt|Mute|Vol-|Vol+| |TMed| |Mute| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | |Vol+| | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | |Vol-| | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Sys|Func | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MFL] = LAYOUT_all( /* Mac First Layer */ + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _MSL: Mac System Layer + * ,-----------------------------------------------------------. ,--------------. + * |Reset | | | |Sleep| | | | | | | | | | WIN| | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | |DBG| | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Sys|Func | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) +}; + +void unlock_win_key(void) { + win_key_locked = false; + mac_media_locked = false; + writePinHigh(LED_WIN_LOCK_PIN); +} + +void toggle_lock_win_key(void) { + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); +} + +void toggle_lock_media_key(void) { + mac_media_locked = !mac_media_locked; + writePin(LED_WIN_LOCK_PIN, !mac_media_locked); +} + +#ifdef CONSOLE_ENABLE +void dprint_global_layers(void) { + dprint("Global Layers:"); + if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} + +void dprint_layers(layer_state_t state) { + dprint("Layers:"); + if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} +#endif + +layer_state_t default_layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("default_layer_state_set_user: 0x%x\n", state); + dprint_global_layers(); +#endif + // Disable windows key lock on default layer transition. + unlock_win_key(); + win_appkey_pressed = false; + mac_fnkey_pressed = false; + writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("layer_state_set_user: 0x%x\n", state); + dprint_layers(state); +#endif + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (!record->event.pressed) { + // Toggle GUI lock on key release + toggle_lock_win_key(); + } + break; + case KC_TMED: + // Only trigger when Fn key is also held down, to avoid accidental unlock. + if (!mac_fnkey_pressed) { return false; } + if (!record->event.pressed) { + // Toggle Media Lock on key release + toggle_lock_media_key(); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + case KC_WFN: + // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. + if (record->event.pressed) { + layer_on(_WFL); + if (win_appkey_pressed) { + // Also enable Secondary layer if App key is being held down. + win_appkey_pressed = false; + layer_on(_WSL); + } + } else { + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + } + break; + case KC_APP: + if (record->event.pressed) { + // Don't actually press down the app menu key + win_appkey_pressed = true; + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (win_appkey_pressed) { + win_appkey_pressed = false; + // Tap the KC_APP key on key release. + tap_code(KC_APP); + } + } + return false; + break; + case KC_MFN: + // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. + if (record->event.pressed) { + mac_fnkey_pressed = true; + layer_on(_MFL); + // Also enable Secondary layer if Right-Alt key is being held down. + if (get_mods() & MOD_BIT(KC_RALT)) { + layer_on(_MSL); + } + } else { + mac_fnkey_pressed = false; + if (!mac_media_locked) { + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + } + } + break; + case KC_RALT: + // Disable MSL/WFL layer on key-up. + if (!record->event.pressed) { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case MO_WSL: + if (record->event.pressed) { + layer_on(_WSL); + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + } + break; + case MO_MSL: + if (record->event.pressed) { + layer_on(_MSL); + } else { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case DF_W2MBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_MBL); + layer_state_set(1UL<<_MFL | 1UL<<_MSL); + } + break; + case DF_M2WBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_WBL); + layer_state_set(1UL<<_WFL | 1UL<<_WSL); + } + break; + case RESET: + if (record->event.pressed) { + // Flash LEDs to indicate bootloader mode is enabled. + on_all_leds(); + } + break; + } + return true; +} + +void keyboard_post_init_user(void) { + default_layer_set(1UL<. + */ + +#include QMK_KEYBOARD_H + +// Layer shorthand +enum _layer { + _WBL, + _WFL, + _WSL, + _MBL, + _MFL, + _MSL +}; + +#ifndef DEFAULT_LAYOUT +# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. +#endif +#ifndef ALT_LAYOUT +# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. +#endif + +static bool win_key_locked = false; +static bool mac_media_locked = false; +static bool win_appkey_pressed = false; +static bool mac_fnkey_pressed = false; + + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) + KC_TMED, // Toggle between Fx keys or Media keys (Mac) + KC_WFN, // Windows function key + KC_MFN, // Mac function key + MO_WSL, // Windows system key + MO_MSL, // Mac system key + DF_W2MBL, // Change layout from Windows to Mac + DF_M2WBL // Change layout from Mac to Windows +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _WBL: Windows Base Layer (Default Layer) + * ,-----------------------------------------------------------. ,--------------. + * |Esc | f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | + * |-----------------------------------------------------------| |--------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | + * |-----------------------------------------------------------| `--------------' |-----------| + | + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | + * |-----------------------------------------------------------| ,----. |---------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | + * |-----------------------------------------------------------| ,-------------. |-----------|Ent| + * |Ctrl|Gui |Alt | Space |Alt |Func |App|Ctrl | |Lft| Dn |Rig | | 0 | . | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WBL] = LAYOUT_all( /* Windows Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _WFL: Windows Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | |Lock| | | |Func |Sys| | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WFL] = LAYOUT_all( /* Windows First Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _WSL: Windows System Layer + * ,-----------------------------------------------------------. ,--------------. + * |Reset |Sleep| | |Power| | | | | | | | | |MAC| | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | |DBG| | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Func |Sys| | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ + RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * ,-----------------------------------------------------------. ,--------------. + * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| | f13| f14| f15| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | + * |-----------------------------------------------------------| |--------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | + * |-----------------------------------------------------------| `--------------' |-----------| + | + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | + * |-----------------------------------------------------------| ,----. |---------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | + * |-----------------------------------------------------------| ,-------------. |-----------|Ent| + * |Ctrl|Alt |Gui | Space |Gui |Alt|Func |Ctrl | |Lft| Dn |Rig | | 0 | . | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MBL] = LAYOUT_all( /* Mac Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _MFL: Mac Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Bri-|Bri+|MCon|LPad| | | |Prv|Ply| |Nxt|Mute|Vol-|Vol+| |TMed| | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Sys|Func | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MFL] = LAYOUT_all( /* Mac First Layer */ + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _MSL: Mac System Layer + * ,-----------------------------------------------------------. ,--------------. + * |Reset | | | |Sleep| | | | | | | | | | WIN| | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| `--------------' |-----------| | + * | | | |DBG| | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Sys|Func | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) +}; + +void unlock_win_key(void) { + win_key_locked = false; + mac_media_locked = false; + writePinHigh(LED_WIN_LOCK_PIN); +} + +void toggle_lock_win_key(void) { + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); +} + +void toggle_lock_media_key(void) { + mac_media_locked = !mac_media_locked; + writePin(LED_WIN_LOCK_PIN, !mac_media_locked); +} + +#ifdef CONSOLE_ENABLE +void dprint_global_layers(void) { + dprint("Global Layers:"); + if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} + +void dprint_layers(layer_state_t state) { + dprint("Layers:"); + if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} +#endif + +layer_state_t default_layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("default_layer_state_set_user: 0x%x\n", state); + dprint_global_layers(); +#endif + // Disable windows key lock on default layer transition. + unlock_win_key(); + win_appkey_pressed = false; + mac_fnkey_pressed = false; + writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("layer_state_set_user: 0x%x\n", state); + dprint_layers(state); +#endif + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (!record->event.pressed) { + // Toggle GUI lock on key release + toggle_lock_win_key(); + } + break; + case KC_TMED: + // Only trigger when Fn key is also held down, to avoid accidental unlock. + if (!mac_fnkey_pressed) { return false; } + if (!record->event.pressed) { + // Toggle Media Lock on key release + toggle_lock_media_key(); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + case KC_WFN: + // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. + if (record->event.pressed) { + layer_on(_WFL); + if (win_appkey_pressed) { + // Also enable Secondary layer if App key is being held down. + win_appkey_pressed = false; + layer_on(_WSL); + } + } else { + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + } + break; + case KC_APP: + if (record->event.pressed) { + // Don't actually press down the app menu key + win_appkey_pressed = true; + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (win_appkey_pressed) { + win_appkey_pressed = false; + // Tap the KC_APP key on key release. + tap_code(KC_APP); + } + } + return false; + break; + case KC_MFN: + // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. + if (record->event.pressed) { + mac_fnkey_pressed = true; + layer_on(_MFL); + // Also enable Secondary layer if Right-Alt key is being held down. + if (get_mods() & MOD_BIT(KC_RALT)) { + layer_on(_MSL); + } + } else { + mac_fnkey_pressed = false; + if (!mac_media_locked) { + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + } + } + break; + case KC_RALT: + // Disable MSL/WFL layer on key-up. + if (!record->event.pressed) { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case MO_WSL: + if (record->event.pressed) { + layer_on(_WSL); + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + } + break; + case MO_MSL: + if (record->event.pressed) { + layer_on(_MSL); + } else { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case DF_W2MBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_MBL); + layer_state_set(1UL<<_MFL | 1UL<<_MSL); + } + break; + case DF_M2WBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_WBL); + layer_state_set(1UL<<_WFL | 1UL<<_WSL); + } + break; + case RESET: + if (record->event.pressed) { + // Flash LEDs to indicate bootloader mode is enabled. + on_all_leds(); + } + break; + } + return true; +} + +void keyboard_post_init_user(void) { + default_layer_set(1UL<. + */ + +#include QMK_KEYBOARD_H + +// Layer shorthand +enum _layer { + _BASE, + _FN, + _LAYER3, + _LAYER4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: Base Layer (Default Layer) + * ,-----------------------------------------------------------. ,--------------. + * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| + * |-----------------------------------------------------------| |--------------| ,---------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | + * |-----------------------------------------------------------| |--------------| |---------------| + * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| | 7 | 8 | 9 | | + * |------------------------------------------------------ Ret | `--------------' |-----------| + | + * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | | 4 | 5 | 6 | | + * |-----------------------------------------------------------| ,----. |---------------| + * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | + * |-----------------------------------------------------------| ,-------------. |-----------|Ent| + * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | | 0 | . | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_BASE] = LAYOUT_all( /* Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _FUNC: Function Layer + * ,-----------------------------------------------------------. ,--------------. + * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| ,---------------. + * | | | | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| |--------------| |---------------| + * | | | | | | | | | | | | | | | | | | | | | | | | + * |------------------------------------------------------- | `--------------' |-----------| | + * | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,----. |---------------| + * | | | | | | | | | | | | | | | | | | | | | + * |-----------------------------------------------------------| ,-------------. |-----------| | + * | | | | | |Func | | | | | | | | | | | + * `-----------------------------------------------------------' `-------------' `---------------' + */ + [_FUNC] = LAYOUT_all( /* Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER3] = LAYOUT_all( /* Layer 3 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER4] = LAYOUT_all( /* Layer 4 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/durgod/k310/keymaps/via/readme.md b/keyboards/durgod/k310/keymaps/via/readme.md new file mode 100644 index 000000000000..847184c2b7a2 --- /dev/null +++ b/keyboards/durgod/k310/keymaps/via/readme.md @@ -0,0 +1,6 @@ +# The default keymap for Durgod Taurus K310 + +Layer 0 : Standard layout + +Layer 1 : Media control +- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 diff --git a/keyboards/durgod/k310/keymaps/via/rules.mk b/keyboards/durgod/k310/keymaps/via/rules.mk new file mode 100644 index 000000000000..8815b6a0a62c --- /dev/null +++ b/keyboards/durgod/k310/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +OPT_DEFS += -DWINLOCK_DISABLED + +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md new file mode 100644 index 000000000000..48ee62b1d79e --- /dev/null +++ b/keyboards/durgod/k310/readme.md @@ -0,0 +1,58 @@ +# K310 + +This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key +keyboard without backlight. This supports both the ANSI and ISO variants. + +* Keyboard Maintainer: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 +* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/k310:default + +Flashing example for this keyboard: + + make durgod/k310:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Initial Flash + +For first Flashing from initial Stock's Firmware + +1. Back up original Firmware Image: +- Unplug +- Short Boot0 to Vdd (See below) +- Plug In USB +- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: + - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html + - Using dfu-util: + + dfu-util --list + dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} + +2. Flash the QMK Firmware Image. +- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) +- Here are a few options for performing the initial Flash: + - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) + - Using DFuseDemo.exe if STTub30 driver is used. + - Using dfu-util: + + dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} + +You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: + +Shorting Boot0 to Vdd on K310 + +### Subsequent Flashing + +For repeating Flashing you can use BootMagic: +- BootMagic Lite has been enabled with Assigned "Esc" key +- Unplug USB Cable +- Holding Esc Button +- Plug in USB Cable, Keyboard should be in ST-Bootloader state diff --git a/keyboards/durgod/k310/rules.mk b/keyboards/durgod/k310/rules.mk new file mode 100644 index 000000000000..dcf0a3365c95 --- /dev/null +++ b/keyboards/durgod/k310/rules.mk @@ -0,0 +1,27 @@ +# MCU name +# Actually F070, but close enough +MCU = STM32F072 + +BOARD = DURGOD_STM32_F070 + +# Do not put the microcontroller into power saving mode +OPT_DEFS += -DNO_SUSPEND_POWER_DOWN + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = fullsize_ansi fullsize_iso From 066bf5fd73b338d31b2267f3a234d3357942c6c6 Mon Sep 17 00:00:00 2001 From: Don Kjer Date: Fri, 19 Mar 2021 15:56:15 -0700 Subject: [PATCH 2/7] Durgod K3x0: Refactoring shared durgod/k310 and durgod/k320 code into durgod/k3x0. Combining chimera keymap with default_toggle_mac_windows keymap --- .../durgod/k310/keymaps/chimera/keymap.c | 367 ----------------- .../durgod/k310/keymaps/chimera/readme.md | 65 --- .../default_toggle_mac_windows/keymap.c | 367 ----------------- .../default_toggle_mac_windows/readme.md | 65 --- .../default_toggle_mac_windows/rules.mk | 1 - keyboards/durgod/k310/keymaps/via/keymap.c | 90 ----- keyboards/durgod/k310/rules.mk | 28 +- keyboards/durgod/k320/config.h | 56 --- keyboards/durgod/k320/k320.c | 62 --- keyboards/durgod/k320/k320.h | 92 ----- .../durgod/k320/keymaps/default/keymap.json | 26 -- .../durgod/k320/keymaps/default/readme.md | 16 - .../default_toggle_mac_windows/keymap.c | 367 ----------------- .../default_toggle_mac_windows/rules.mk | 1 - keyboards/durgod/k320/keymaps/via/keymap.c | 90 ----- keyboards/durgod/k320/keymaps/via/readme.md | 12 - keyboards/durgod/k320/keymaps/via/rules.mk | 4 - keyboards/durgod/k320/rules.mk | 30 +- keyboards/durgod/{k310 => k3x0}/config.h | 7 - keyboards/durgod/k3x0/k310/config.h | 26 ++ keyboards/durgod/{ => k3x0}/k310/info.json | 0 keyboards/durgod/{ => k3x0}/k310/readme.md | 2 +- keyboards/durgod/k3x0/k310/rules.mk | 1 + keyboards/durgod/k3x0/k320/config.h | 26 ++ keyboards/durgod/{ => k3x0}/k320/info.json | 19 +- .../{ => k3x0}/k320/keymaps/kuenhlee/keymap.c | 0 .../k320/keymaps/kuenhlee/readme.md | 0 .../{ => k3x0}/k320/keymaps/kuenhlee/rules.mk | 0 keyboards/durgod/{ => k3x0}/k320/readme.md | 2 +- keyboards/durgod/k3x0/k320/rules.mk | 1 + keyboards/durgod/{k310/k310.c => k3x0/k3x0.c} | 2 +- keyboards/durgod/{k310/k310.h => k3x0/k3x0.h} | 40 +- .../durgod/k3x0/keymaps/chimera/keymap.c | 373 ++++++++++++++++++ .../keymaps/chimera}/readme.md | 10 +- .../{k310 => k3x0}/keymaps/chimera/rules.mk | 0 .../keymaps/default/keymap.json | 2 +- .../{k310 => k3x0}/keymaps/default/readme.md | 4 +- .../keymaps/default_mac/keymap.json | 2 +- .../keymaps/default_mac/readme.md | 0 keyboards/durgod/k3x0/keymaps/via/keymap.c | 92 +++++ .../{k310 => k3x0}/keymaps/via/readme.md | 2 +- .../{k310 => k3x0}/keymaps/via/rules.mk | 2 - keyboards/durgod/k3x0/readme.md | 13 + keyboards/durgod/k3x0/rules.mk | 29 ++ 44 files changed, 633 insertions(+), 1761 deletions(-) delete mode 100644 keyboards/durgod/k310/keymaps/chimera/keymap.c delete mode 100644 keyboards/durgod/k310/keymaps/chimera/readme.md delete mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/keymap.c delete mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/readme.md delete mode 100644 keyboards/durgod/k310/keymaps/default_toggle_mac_windows/rules.mk delete mode 100644 keyboards/durgod/k310/keymaps/via/keymap.c delete mode 100644 keyboards/durgod/k320/config.h delete mode 100644 keyboards/durgod/k320/k320.c delete mode 100644 keyboards/durgod/k320/k320.h delete mode 100644 keyboards/durgod/k320/keymaps/default/keymap.json delete mode 100644 keyboards/durgod/k320/keymaps/default/readme.md delete mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c delete mode 100644 keyboards/durgod/k320/keymaps/default_toggle_mac_windows/rules.mk delete mode 100644 keyboards/durgod/k320/keymaps/via/keymap.c delete mode 100644 keyboards/durgod/k320/keymaps/via/readme.md delete mode 100644 keyboards/durgod/k320/keymaps/via/rules.mk rename keyboards/durgod/{k310 => k3x0}/config.h (88%) create mode 100644 keyboards/durgod/k3x0/k310/config.h rename keyboards/durgod/{ => k3x0}/k310/info.json (100%) rename keyboards/durgod/{ => k3x0}/k310/readme.md (95%) create mode 100644 keyboards/durgod/k3x0/k310/rules.mk create mode 100644 keyboards/durgod/k3x0/k320/config.h rename keyboards/durgod/{ => k3x0}/k320/info.json (93%) rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/keymap.c (100%) rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/readme.md (100%) rename keyboards/durgod/{ => k3x0}/k320/keymaps/kuenhlee/rules.mk (100%) rename keyboards/durgod/{ => k3x0}/k320/readme.md (95%) create mode 100644 keyboards/durgod/k3x0/k320/rules.mk rename keyboards/durgod/{k310/k310.c => k3x0/k3x0.c} (99%) rename keyboards/durgod/{k310/k310.h => k3x0/k3x0.h} (66%) create mode 100644 keyboards/durgod/k3x0/keymaps/chimera/keymap.c rename keyboards/durgod/{k320/keymaps/default_toggle_mac_windows => k3x0/keymaps/chimera}/readme.md (89%) rename keyboards/durgod/{k310 => k3x0}/keymaps/chimera/rules.mk (100%) rename keyboards/durgod/{k310 => k3x0}/keymaps/default/keymap.json (99%) rename keyboards/durgod/{k310 => k3x0}/keymaps/default/readme.md (72%) rename keyboards/durgod/{k320 => k3x0}/keymaps/default_mac/keymap.json (98%) rename keyboards/durgod/{k320 => k3x0}/keymaps/default_mac/readme.md (100%) create mode 100644 keyboards/durgod/k3x0/keymaps/via/keymap.c rename keyboards/durgod/{k310 => k3x0}/keymaps/via/readme.md (71%) rename keyboards/durgod/{k310 => k3x0}/keymaps/via/rules.mk (51%) create mode 100644 keyboards/durgod/k3x0/readme.md create mode 100644 keyboards/durgod/k3x0/rules.mk diff --git a/keyboards/durgod/k310/keymaps/chimera/keymap.c b/keyboards/durgod/k310/keymaps/chimera/keymap.c deleted file mode 100644 index d15560a42d60..000000000000 --- a/keyboards/durgod/k310/keymaps/chimera/keymap.c +++ /dev/null @@ -1,367 +0,0 @@ -/* Copyright 2021 Tyler Tidman - * - * 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 - -// Layer shorthand -enum _layer { - _WBL, - _WFL, - _WSL, - _MBL, - _MFL, - _MSL -}; - -#ifndef DEFAULT_LAYOUT -# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. -#endif -#ifndef ALT_LAYOUT -# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. -#endif - -static bool win_key_locked = false; -static bool mac_media_locked = false; -static bool win_appkey_pressed = false; -static bool mac_fnkey_pressed = false; - - -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) - KC_TMED, // Toggle between Fx keys or Media keys (Mac) - KC_WFN, // Windows function key - KC_MFN, // Mac function key - MO_WSL, // Windows system key - MO_MSL, // Mac system key - DF_W2MBL, // Change layout from Windows to Mac - DF_M2WBL // Change layout from Mac to Windows -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _WBL: Windows Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc | f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | - * |-----------------------------------------------------------| |--------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | - * |-----------------------------------------------------------| `--------------' |-----------| + | - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | - * |-----------------------------------------------------------| ,----. |---------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | - * |-----------------------------------------------------------| ,-------------. |-----------|Ent| - * |Ctrl|Gui |Alt | Space |Alt |Func |App|Ctrl | |Lft| Dn |Rig | | 0 | . | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WBL] = LAYOUT_all( /* Windows Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* Keymap _WFL: Windows Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | |Mute| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | |Vol+| | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | |Vol-| | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | |Lock| | | |Func |Sys| | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WFL] = LAYOUT_all( /* Windows First Layer */ - _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ - ), - /* Keymap _WSL: Windows System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset |Sleep| | |Power| | | | | | | | | |MAC| | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | |DBG| | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Func |Sys| | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ - RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), - - /* Keymap _MBL: Mac Base Layer (Alternate Layout) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| | f13| f14| f15| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | - * |-----------------------------------------------------------| |--------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | - * |-----------------------------------------------------------| `--------------' |-----------| + | - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | - * |-----------------------------------------------------------| ,----. |---------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | - * |-----------------------------------------------------------| ,-------------. |-----------|Ent| - * |Ctrl|Alt |Gui | Space |Gui |Alt|Func |Ctrl | |Lft| Dn |Rig | | 0 | . | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MBL] = LAYOUT_all( /* Mac Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* Keymap _MFL: Mac Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Bri-|Bri+|MCon|LPad| | | |Prv|Ply| |Nxt|Mute|Vol-|Vol+| |TMed| |Mute| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | |Vol+| | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | |Vol-| | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Sys|Func | | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MFL] = LAYOUT_all( /* Mac First Layer */ - _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, KC_MUTE, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ - ), - /* Keymap _MSL: Mac System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset | | | |Sleep| | | | | | | | | | WIN| | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | |DBG| | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Sys|Func | | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ - RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ) -}; - -void unlock_win_key(void) { - win_key_locked = false; - mac_media_locked = false; - writePinHigh(LED_WIN_LOCK_PIN); -} - -void toggle_lock_win_key(void) { - win_key_locked = !win_key_locked; - writePin(LED_WIN_LOCK_PIN, !win_key_locked); -} - -void toggle_lock_media_key(void) { - mac_media_locked = !mac_media_locked; - writePin(LED_WIN_LOCK_PIN, !mac_media_locked); -} - -#ifdef CONSOLE_ENABLE -void dprint_global_layers(void) { - dprint("Global Layers:"); - if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} - -void dprint_layers(layer_state_t state) { - dprint("Layers:"); - if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} -#endif - -layer_state_t default_layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("default_layer_state_set_user: 0x%x\n", state); - dprint_global_layers(); -#endif - // Disable windows key lock on default layer transition. - unlock_win_key(); - win_appkey_pressed = false; - mac_fnkey_pressed = false; - writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); - return state; -} - -layer_state_t layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("layer_state_set_user: 0x%x\n", state); - dprint_layers(state); -#endif - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_TGUI: - if (!record->event.pressed) { - // Toggle GUI lock on key release - toggle_lock_win_key(); - } - break; - case KC_TMED: - // Only trigger when Fn key is also held down, to avoid accidental unlock. - if (!mac_fnkey_pressed) { return false; } - if (!record->event.pressed) { - // Toggle Media Lock on key release - toggle_lock_media_key(); - } - break; - case KC_LGUI: - if (win_key_locked) { return false; } - break; - case KC_WFN: - // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. - if (record->event.pressed) { - layer_on(_WFL); - if (win_appkey_pressed) { - // Also enable Secondary layer if App key is being held down. - win_appkey_pressed = false; - layer_on(_WSL); - } - } else { - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - } - break; - case KC_APP: - if (record->event.pressed) { - // Don't actually press down the app menu key - win_appkey_pressed = true; - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (win_appkey_pressed) { - win_appkey_pressed = false; - // Tap the KC_APP key on key release. - tap_code(KC_APP); - } - } - return false; - break; - case KC_MFN: - // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. - if (record->event.pressed) { - mac_fnkey_pressed = true; - layer_on(_MFL); - // Also enable Secondary layer if Right-Alt key is being held down. - if (get_mods() & MOD_BIT(KC_RALT)) { - layer_on(_MSL); - } - } else { - mac_fnkey_pressed = false; - if (!mac_media_locked) { - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - } - } - break; - case KC_RALT: - // Disable MSL/WFL layer on key-up. - if (!record->event.pressed) { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case MO_WSL: - if (record->event.pressed) { - layer_on(_WSL); - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - } - break; - case MO_MSL: - if (record->event.pressed) { - layer_on(_MSL); - } else { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case DF_W2MBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_MBL); - layer_state_set(1UL<<_MFL | 1UL<<_MSL); - } - break; - case DF_M2WBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_WBL); - layer_state_set(1UL<<_WFL | 1UL<<_WSL); - } - break; - case RESET: - if (record->event.pressed) { - // Flash LEDs to indicate bootloader mode is enabled. - on_all_leds(); - } - break; - } - return true; -} - -void keyboard_post_init_user(void) { - default_layer_set(1UL<. - */ - -#include QMK_KEYBOARD_H - -// Layer shorthand -enum _layer { - _WBL, - _WFL, - _WSL, - _MBL, - _MFL, - _MSL -}; - -#ifndef DEFAULT_LAYOUT -# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. -#endif -#ifndef ALT_LAYOUT -# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. -#endif - -static bool win_key_locked = false; -static bool mac_media_locked = false; -static bool win_appkey_pressed = false; -static bool mac_fnkey_pressed = false; - - -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) - KC_TMED, // Toggle between Fx keys or Media keys (Mac) - KC_WFN, // Windows function key - KC_MFN, // Mac function key - MO_WSL, // Windows system key - MO_MSL, // Mac system key - DF_W2MBL, // Change layout from Windows to Mac - DF_M2WBL // Change layout from Mac to Windows -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _WBL: Windows Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc | f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | - * |-----------------------------------------------------------| |--------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | - * |-----------------------------------------------------------| `--------------' |-----------| + | - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | - * |-----------------------------------------------------------| ,----. |---------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | - * |-----------------------------------------------------------| ,-------------. |-----------|Ent| - * |Ctrl|Gui |Alt | Space |Alt |Func |App|Ctrl | |Lft| Dn |Rig | | 0 | . | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WBL] = LAYOUT_all( /* Windows Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* Keymap _WFL: Windows Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | |Lock| | | |Func |Sys| | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WFL] = LAYOUT_all( /* Windows First Layer */ - _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ - ), - /* Keymap _WSL: Windows System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset |Sleep| | |Power| | | | | | | | | |MAC| | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | |DBG| | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Func |Sys| | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ - RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), - - /* Keymap _MBL: Mac Base Layer (Alternate Layout) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| | f13| f14| f15| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | - * |-----------------------------------------------------------| |--------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| | 7 | 8 | 9 | | - * |-----------------------------------------------------------| `--------------' |-----------| + | - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | | 4 | 5 | 6 | | - * |-----------------------------------------------------------| ,----. |---------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | - * |-----------------------------------------------------------| ,-------------. |-----------|Ent| - * |Ctrl|Alt |Gui | Space |Gui |Alt|Func |Ctrl | |Lft| Dn |Rig | | 0 | . | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MBL] = LAYOUT_all( /* Mac Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* Keymap _MFL: Mac Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Bri-|Bri+|MCon|LPad| | | |Prv|Ply| |Nxt|Mute|Vol-|Vol+| |TMed| | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Sys|Func | | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MFL] = LAYOUT_all( /* Mac First Layer */ - _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ - ), - /* Keymap _MSL: Mac System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset | | | |Sleep| | | | | | | | | | WIN| | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' |-----------| | - * | | | |DBG| | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Sys|Func | | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ - RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ) -}; - -void unlock_win_key(void) { - win_key_locked = false; - mac_media_locked = false; - writePinHigh(LED_WIN_LOCK_PIN); -} - -void toggle_lock_win_key(void) { - win_key_locked = !win_key_locked; - writePin(LED_WIN_LOCK_PIN, !win_key_locked); -} - -void toggle_lock_media_key(void) { - mac_media_locked = !mac_media_locked; - writePin(LED_WIN_LOCK_PIN, !mac_media_locked); -} - -#ifdef CONSOLE_ENABLE -void dprint_global_layers(void) { - dprint("Global Layers:"); - if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} - -void dprint_layers(layer_state_t state) { - dprint("Layers:"); - if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} -#endif - -layer_state_t default_layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("default_layer_state_set_user: 0x%x\n", state); - dprint_global_layers(); -#endif - // Disable windows key lock on default layer transition. - unlock_win_key(); - win_appkey_pressed = false; - mac_fnkey_pressed = false; - writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); - return state; -} - -layer_state_t layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("layer_state_set_user: 0x%x\n", state); - dprint_layers(state); -#endif - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_TGUI: - if (!record->event.pressed) { - // Toggle GUI lock on key release - toggle_lock_win_key(); - } - break; - case KC_TMED: - // Only trigger when Fn key is also held down, to avoid accidental unlock. - if (!mac_fnkey_pressed) { return false; } - if (!record->event.pressed) { - // Toggle Media Lock on key release - toggle_lock_media_key(); - } - break; - case KC_LGUI: - if (win_key_locked) { return false; } - break; - case KC_WFN: - // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. - if (record->event.pressed) { - layer_on(_WFL); - if (win_appkey_pressed) { - // Also enable Secondary layer if App key is being held down. - win_appkey_pressed = false; - layer_on(_WSL); - } - } else { - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - } - break; - case KC_APP: - if (record->event.pressed) { - // Don't actually press down the app menu key - win_appkey_pressed = true; - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (win_appkey_pressed) { - win_appkey_pressed = false; - // Tap the KC_APP key on key release. - tap_code(KC_APP); - } - } - return false; - break; - case KC_MFN: - // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. - if (record->event.pressed) { - mac_fnkey_pressed = true; - layer_on(_MFL); - // Also enable Secondary layer if Right-Alt key is being held down. - if (get_mods() & MOD_BIT(KC_RALT)) { - layer_on(_MSL); - } - } else { - mac_fnkey_pressed = false; - if (!mac_media_locked) { - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - } - } - break; - case KC_RALT: - // Disable MSL/WFL layer on key-up. - if (!record->event.pressed) { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case MO_WSL: - if (record->event.pressed) { - layer_on(_WSL); - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - } - break; - case MO_MSL: - if (record->event.pressed) { - layer_on(_MSL); - } else { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case DF_W2MBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_MBL); - layer_state_set(1UL<<_MFL | 1UL<<_MSL); - } - break; - case DF_M2WBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_WBL); - layer_state_set(1UL<<_WFL | 1UL<<_WSL); - } - break; - case RESET: - if (record->event.pressed) { - // Flash LEDs to indicate bootloader mode is enabled. - on_all_leds(); - } - break; - } - return true; -} - -void keyboard_post_init_user(void) { - default_layer_set(1UL<. - */ - -#include QMK_KEYBOARD_H - -// Layer shorthand -enum _layer { - _BASE, - _FN, - _LAYER3, - _LAYER4 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BASE: Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| ,---------------. - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| |NLk| / | * | - | - * |-----------------------------------------------------------| |--------------| |---------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| | 7 | 8 | 9 | | - * |------------------------------------------------------ Ret | `--------------' |-----------| + | - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | | 4 | 5 | 6 | | - * |-----------------------------------------------------------| ,----. |---------------| - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | | 1 | 2 | 3 | | - * |-----------------------------------------------------------| ,-------------. |-----------|Ent| - * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | | 0 | . | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_BASE] = LAYOUT_all( /* Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT - ), - /* Keymap _FUNC: Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| ,---------------. - * | | | | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| |---------------| - * | | | | | | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------- | `--------------' |-----------| | - * | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. |---------------| - * | | | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. |-----------| | - * | | | | | |Func | | | | | | | | | | | - * `-----------------------------------------------------------' `-------------' `---------------' - */ - [_FUNC] = LAYOUT_all( /* Function Layer */ - _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER3] = LAYOUT_all( /* Layer 3 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER4] = LAYOUT_all( /* Layer 4 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; diff --git a/keyboards/durgod/k310/rules.mk b/keyboards/durgod/k310/rules.mk index dcf0a3365c95..e200539b260f 100644 --- a/keyboards/durgod/k310/rules.mk +++ b/keyboards/durgod/k310/rules.mk @@ -1,27 +1 @@ -# MCU name -# Actually F070, but close enough -MCU = STM32F072 - -BOARD = DURGOD_STM32_F070 - -# Do not put the microcontroller into power saving mode -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output - -LAYOUTS = fullsize_ansi fullsize_iso +DEFAULT_FOLDER=durgod/k3x0/k310 diff --git a/keyboards/durgod/k320/config.h b/keyboards/durgod/k320/config.h deleted file mode 100644 index 323a9ccff9ba..000000000000 --- a/keyboards/durgod/k320/config.h +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2021 kuenhlee and Don Kjer - * - * 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 - -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD60D -#define PRODUCT_ID 0x3200 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hoksi Technology -#define PRODUCT DURGOD Taurus K320 (QMK) - -/* key matrix size */ -#define MATRIX_ROWS 7 -#define MATRIX_COLS 16 - -#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } -#define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION ROW2COL - -// Dynamic EEPROM -// Something sensible or else VIA may crash -// Users may enable more if they wish -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 4095 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* Bootmagic Lite key configuration */ -#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE -#define BOOTMAGIC_LITE_ROW 0 -#define BOOTMAGIC_LITE_COLUMN 0 - -/* LED indicator pins */ -#define LED_CAPS_LOCK_PIN C9 -#define LED_SCROLL_LOCK_PIN A8 -#define LED_WIN_LOCK_PIN A9 -#define LED_MR_LOCK_PIN A10 -#define LED_PIN_ON_STATE 0 diff --git a/keyboards/durgod/k320/k320.c b/keyboards/durgod/k320/k320.c deleted file mode 100644 index 42091f36cd2c..000000000000 --- a/keyboards/durgod/k320/k320.c +++ /dev/null @@ -1,62 +0,0 @@ -/* Copyright 2021 kuenhlee and Don Kjer - * - * 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 "k320.h" - -/* Private Functions */ -void off_all_leds(void) { - writePinHigh(LED_CAPS_LOCK_PIN); - writePinHigh(LED_SCROLL_LOCK_PIN); - writePinHigh(LED_WIN_LOCK_PIN); - writePinHigh(LED_MR_LOCK_PIN); -} - -void on_all_leds(void) { - writePinLow(LED_CAPS_LOCK_PIN); - writePinLow(LED_SCROLL_LOCK_PIN); - writePinLow(LED_WIN_LOCK_PIN); - writePinLow(LED_MR_LOCK_PIN); -} - -/* WinLock and MR LEDs are non-standard. Need to override led init */ -void led_init_ports(void) { - setPinOutput(LED_CAPS_LOCK_PIN); - setPinOutput(LED_SCROLL_LOCK_PIN); - setPinOutput(LED_WIN_LOCK_PIN); - setPinOutput(LED_MR_LOCK_PIN); - off_all_leds(); -} - - -#ifndef WINLOCK_DISABLED -static bool win_key_locked = false; - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_TGUI: - if (record->event.pressed) { - // Toggle GUI lock on key press - win_key_locked = !win_key_locked; - writePin(LED_WIN_LOCK_PIN, !win_key_locked); - } - break; - case KC_LGUI: - if (win_key_locked) { return false; } - break; - } - return process_record_user(keycode, record); -} -#endif /* WINLOCK_DISABLED */ diff --git a/keyboards/durgod/k320/k320.h b/keyboards/durgod/k320/k320.h deleted file mode 100644 index c504f5a2bbc8..000000000000 --- a/keyboards/durgod/k320/k320.h +++ /dev/null @@ -1,92 +0,0 @@ -/* Copyright 2021 kuenhlee and Don Kjer - * - * 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 - -#include "quantum.h" - -#ifndef WINLOCK_DISABLED -// Define the TGUI key here so it is available in QMK configurator -enum K320_keycodes { - KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock - NEW_SAFE_RANGE -}; - -#undef SAFE_RANGE -#define SAFE_RANGE NEW_SAFE_RANGE -#endif /* WINLOCK_DISABLED */ - -/* Function Prototype */ -void off_all_leds(void); -void on_all_leds(void); - - -#define XXX KC_NO - -// This a shortcut to help you visually see your layout. -#define LAYOUT_tkl_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, \ - K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ - { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ -} - - -// This a shortcut to help you visually see your layout. -#define LAYOUT_tkl_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ -} - - -// This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ -} diff --git a/keyboards/durgod/k320/keymaps/default/keymap.json b/keyboards/durgod/k320/keymaps/default/keymap.json deleted file mode 100644 index d8242ae7646d..000000000000 --- a/keyboards/durgod/k320/keymaps/default/keymap.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "keyboard": "durgod/k320", - "keymap": "default", - "layout": "LAYOUT_all", - "layers": [ - [ - "KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_PSCR", "KC_SLCK", "KC_PAUS", - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", - "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", - "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", - "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_APP", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" - ], - [ - "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "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", "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_TGUI", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" - ] - ], - "author":"dkjer", - "notes":"", - "version":1 -} diff --git a/keyboards/durgod/k320/keymaps/default/readme.md b/keyboards/durgod/k320/keymaps/default/readme.md deleted file mode 100644 index c94943a83773..000000000000 --- a/keyboards/durgod/k320/keymaps/default/readme.md +++ /dev/null @@ -1,16 +0,0 @@ -# The default keymap for Durgod Taurus K320. - -Supports both ANSI and ISO layouts. - -Layer 0 : Standard 87/88 keys TKL layout (Windows) - -Layer 1 : Media control and Windows lock key -- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 -- Fn + Windows to toggle Windows lock key functionality - -## Windows key lock - -You can hold down Fn + Windows key to disable the Windows key while in locked mode. -The 'Lock' LED indicates if the Windows key is locked. - -This is similar to the stock K320 Windows key lock functionality. diff --git a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c b/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c deleted file mode 100644 index 8494fbe03997..000000000000 --- a/keyboards/durgod/k320/keymaps/default_toggle_mac_windows/keymap.c +++ /dev/null @@ -1,367 +0,0 @@ -/* Copyright 2021 kuenhlee and Don Kjer - * - * 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 - -// Layer shorthand -enum _layer { - _WBL, - _WFL, - _WSL, - _MBL, - _MFL, - _MSL -}; - -#ifndef DEFAULT_LAYOUT -# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. -#endif -#ifndef ALT_LAYOUT -# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. -#endif - -static bool win_key_locked = false; -static bool mac_media_locked = false; -static bool win_appkey_pressed = false; -static bool mac_fnkey_pressed = false; - - -// Defines the keycodes used by our macros in process_record_user -enum custom_keycodes { - KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) - KC_TMED, // Toggle between Fx keys or Media keys (Mac) - KC_WFN, // Windows function key - KC_MFN, // Mac function key - MO_WSL, // Windows system key - MO_MSL, // Mac system key - DF_W2MBL, // Change layout from Windows to Mac - DF_M2WBL // Change layout from Mac to Windows -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _WBL: Windows Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| - * |-----------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| - * |-----------------------------------------------------------| `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | - * |-----------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | - * |-----------------------------------------------------------| ,-------------. - * |Ctrl|Gui |Alt | Space |Alt |Func |App|Ctrl | |Lft| Dn |Rig | - * `-----------------------------------------------------------' `-------------' - */ - [_WBL] = LAYOUT_all( /* Windows Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* Keymap _WFL: Windows Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | |Lock| | | |Func |Sys| | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_WFL] = LAYOUT_all( /* Windows First Layer */ - _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______ - ), - /* Keymap _WSL: Windows System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset |Sleep| | |Power| | | | | | | | | |MAC| | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | | | | | |Func |Sys| | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ - RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ), - - /* Keymap _MBL: Mac Base Layer (Alternate Layout) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| | f13| f14| f15| - * |-----------------------------------------------------------| |--------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| - * |-----------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn| - * |-----------------------------------------------------------| `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Ret | - * |-----------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | - * |-----------------------------------------------------------| ,-------------. - * |Ctrl|Alt |Gui | Space |Gui |Alt|Func |Ctrl | |Lft| Dn |Rig | - * `-----------------------------------------------------------' `-------------' - */ - [_MBL] = LAYOUT_all( /* Mac Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* Keymap _MFL: Mac Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Bri-|Bri+|MCon|LPad| | | |Prv|Ply| |Nxt|Mute|Vol-|Vol+| |TMed| | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | | | | | |Sys|Func | | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_MFL] = LAYOUT_all( /* Mac First Layer */ - _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______ - ), - /* Keymap _MSL: Mac System Layer - * ,-----------------------------------------------------------. ,--------------. - * |Reset | | | |Sleep| | | | | | | | | |WIN| | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | | | | | |Sys|Func | | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ - RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX - ) -}; - -void unlock_win_key(void) { - win_key_locked = false; - mac_media_locked = false; - writePinHigh(LED_WIN_LOCK_PIN); -} - -void toggle_lock_win_key(void) { - win_key_locked = !win_key_locked; - writePin(LED_WIN_LOCK_PIN, !win_key_locked); -} - -void toggle_lock_media_key(void) { - mac_media_locked = !mac_media_locked; - writePin(LED_WIN_LOCK_PIN, !mac_media_locked); -} - -#ifdef CONSOLE_ENABLE -void dprint_global_layers(void) { - dprint("Global Layers:"); - if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} - -void dprint_layers(layer_state_t state) { - dprint("Layers:"); - if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } - if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } - if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } - if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } - dprintf("\n"); -} -#endif - -layer_state_t default_layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("default_layer_state_set_user: 0x%x\n", state); - dprint_global_layers(); -#endif - // Disable windows key lock on default layer transition. - unlock_win_key(); - win_appkey_pressed = false; - mac_fnkey_pressed = false; - writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); - return state; -} - -layer_state_t layer_state_set_user(layer_state_t state) { -#ifdef CONSOLE_ENABLE - dprintf("layer_state_set_user: 0x%x\n", state); - dprint_layers(state); -#endif - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case KC_TGUI: - if (!record->event.pressed) { - // Toggle GUI lock on key release - toggle_lock_win_key(); - } - break; - case KC_TMED: - // Only trigger when Fn key is also held down, to avoid accidental unlock. - if (!mac_fnkey_pressed) { return false; } - if (!record->event.pressed) { - // Toggle Media Lock on key release - toggle_lock_media_key(); - } - break; - case KC_LGUI: - if (win_key_locked) { return false; } - break; - case KC_WFN: - // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. - if (record->event.pressed) { - layer_on(_WFL); - if (win_appkey_pressed) { - // Also enable Secondary layer if App key is being held down. - win_appkey_pressed = false; - layer_on(_WSL); - } - } else { - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - } - break; - case KC_APP: - if (record->event.pressed) { - // Don't actually press down the app menu key - win_appkey_pressed = true; - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (win_appkey_pressed) { - win_appkey_pressed = false; - // Tap the KC_APP key on key release. - tap_code(KC_APP); - } - } - return false; - break; - case KC_MFN: - // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. - if (record->event.pressed) { - mac_fnkey_pressed = true; - layer_on(_MFL); - // Also enable Secondary layer if Right-Alt key is being held down. - if (get_mods() & MOD_BIT(KC_RALT)) { - layer_on(_MSL); - } - } else { - mac_fnkey_pressed = false; - if (!mac_media_locked) { - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - } - } - break; - case KC_RALT: - // Disable MSL/WFL layer on key-up. - if (!record->event.pressed) { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case MO_WSL: - if (record->event.pressed) { - layer_on(_WSL); - } else { - if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } - if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } - } - break; - case MO_MSL: - if (record->event.pressed) { - layer_on(_MSL); - } else { - if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } - if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } - } - break; - case DF_W2MBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_MBL); - layer_state_set(1UL<<_MFL | 1UL<<_MSL); - } - break; - case DF_M2WBL: - if (!record->event.pressed) { - // Switch base layer, but preserve first/secondary layers. - default_layer_set(1UL<<_WBL); - layer_state_set(1UL<<_WFL | 1UL<<_WSL); - } - break; - case RESET: - if (record->event.pressed) { - // Flash LEDs to indicate bootloader mode is enabled. - on_all_leds(); - } - break; - } - return true; -} - -void keyboard_post_init_user(void) { - default_layer_set(1UL<. - */ -#include QMK_KEYBOARD_H - -// Layer shorthand -enum _layer { - _BASE, - _FUNC, - _LAYER3, - _LAYER4 -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _BASE: Base Layer (Default Layer) - * ,-----------------------------------------------------------. ,--------------. - * |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus| - * |-----------------------------------------------------------| |--------------| - * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp| - * |-----------------------------------------------------------| |--------------| - * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| | | Del| End|PgDn| - * |------------------------------------------------------ Ret | `--------------' - * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #| | - * |-----------------------------------------------------------| ,----. - * |Shift| \| Z| X| C| V| B| N| M| ,| .| /|Shift | | Up | - * |-----------------------------------------------------------| ,-------------. - * |Ctrl|Gui |Alt | Space |Alt | Fn |App |Ctrl| |Lft| Dn |Rig | - * `-----------------------------------------------------------' `-------------' - */ - [_BASE] = LAYOUT_all( /* Base Layer */ - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, - KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FUNC),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - /* Keymap _FUNC: Function Layer - * ,-----------------------------------------------------------. ,--------------. - * | |Play|Stop|Prev|Next| |Mute|Vol+|Vol-| | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| |--------------| - * | | | | | | | | | | | | | | | | | | | - * |------------------------------------------------------- | `--------------' - * | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,----. - * | | | | | | | | | | | | | | | | - * |-----------------------------------------------------------| ,-------------. - * | | | | | |Func | | | | | | | - * `-----------------------------------------------------------' `-------------' - */ - [_FUNC] = LAYOUT_all( /* Function Layer */ - _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER3] = LAYOUT_all( /* Layer 3 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - [_LAYER4] = LAYOUT_all( /* Layer 4 */ - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) -}; - diff --git a/keyboards/durgod/k320/keymaps/via/readme.md b/keyboards/durgod/k320/keymaps/via/readme.md deleted file mode 100644 index d1b2ac191daf..000000000000 --- a/keyboards/durgod/k320/keymaps/via/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# The default keymap for Durgod Taurus K320. - -Layer 0 : Standard 87/88 keys TKL layout - -Layer 1 : Media control -- Reusing Durgod's Original Media Control for Fn + F1 ~ Fn + F7 - -## Supported PCBs - -This firmware was tested on a Durgod K320 ISO with the PCB marked "DGK320ST-Single v1.0 HS20181227". - -The pcb features switch holes for ANSI layout, so this firmware might be compatible with with the Durgod K320 ANSI. diff --git a/keyboards/durgod/k320/keymaps/via/rules.mk b/keyboards/durgod/k320/keymaps/via/rules.mk deleted file mode 100644 index 8815b6a0a62c..000000000000 --- a/keyboards/durgod/k320/keymaps/via/rules.mk +++ /dev/null @@ -1,4 +0,0 @@ -OPT_DEFS += -DWINLOCK_DISABLED - -VIA_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/durgod/k320/rules.mk b/keyboards/durgod/k320/rules.mk index e6f0007fd42b..d3f7b11945cc 100644 --- a/keyboards/durgod/k320/rules.mk +++ b/keyboards/durgod/k320/rules.mk @@ -1,29 +1 @@ -# MCU name -# Actually F070, but close enough -MCU = STM32F072 -BOARD = DURGOD_STM32_F070 - -# Bootloader selection -BOOTLOADER = stm32-dfu - -# Do not put the microcontroller into power saving mode -OPT_DEFS += -DNO_SUSPEND_POWER_DOWN - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = yes # USB Nkey Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -BLUETOOTH_ENABLE = no # Enable Bluetooth -AUDIO_ENABLE = no # Audio output - -LAYOUTS = tkl_ansi tkl_iso +DEFAULT_FOLDER=durgod/k3x0/k320 diff --git a/keyboards/durgod/k310/config.h b/keyboards/durgod/k3x0/config.h similarity index 88% rename from keyboards/durgod/k310/config.h rename to keyboards/durgod/k3x0/config.h index cf1fe572283f..e3ec875d9732 100644 --- a/keyboards/durgod/k310/config.h +++ b/keyboards/durgod/k3x0/config.h @@ -18,13 +18,6 @@ #include "config_common.h" -/* USB Device descriptor parameter */ -#define VENDOR_ID 0xD60D -#define PRODUCT_ID 0x3100 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hoksi Technology -#define PRODUCT DURGOD Taurus K310 (QMK) - /* key matrix size */ #define MATRIX_ROWS 8 #define MATRIX_COLS 16 diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/durgod/k3x0/k310/config.h new file mode 100644 index 000000000000..7167ee5d7904 --- /dev/null +++ b/keyboards/durgod/k3x0/k310/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD60D +#define PRODUCT_ID 0x3100 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Hoksi Technology +#define PRODUCT DURGOD Taurus K310 (QMK) diff --git a/keyboards/durgod/k310/info.json b/keyboards/durgod/k3x0/k310/info.json similarity index 100% rename from keyboards/durgod/k310/info.json rename to keyboards/durgod/k3x0/k310/info.json diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k3x0/k310/readme.md similarity index 95% rename from keyboards/durgod/k310/readme.md rename to keyboards/durgod/k3x0/k310/readme.md index 48ee62b1d79e..a1102abeabc1 100644 --- a/keyboards/durgod/k310/readme.md +++ b/keyboards/durgod/k3x0/k310/readme.md @@ -3,7 +3,7 @@ This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key keyboard without backlight. This supports both the ANSI and ISO variants. -* Keyboard Maintainer: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 * Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk new file mode 100644 index 000000000000..323c12fc6e05 --- /dev/null +++ b/keyboards/durgod/k3x0/k310/rules.mk @@ -0,0 +1 @@ +# see common rules.mk diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/durgod/k3x0/k320/config.h new file mode 100644 index 000000000000..defffef100c5 --- /dev/null +++ b/keyboards/durgod/k3x0/k320/config.h @@ -0,0 +1,26 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD60D +#define PRODUCT_ID 0x3200 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Hoksi Technology +#define PRODUCT DURGOD Taurus K320 (QMK) diff --git a/keyboards/durgod/k320/info.json b/keyboards/durgod/k3x0/k320/info.json similarity index 93% rename from keyboards/durgod/k320/info.json rename to keyboards/durgod/k3x0/k320/info.json index 6c67c3d453ad..06c83eaece0e 100644 --- a/keyboards/durgod/k320/info.json +++ b/keyboards/durgod/k3x0/k320/info.json @@ -234,6 +234,10 @@ { "label": "Insert", "x": 15.25, "y": 1.5 }, { "label": "Home", "x": 16.25, "y": 1.5 }, { "label": "PgUp", "x": 17.25, "y": 1.5 }, + { "label": "Num Lock", "x": 18.5, "y": 1.5 }, + { "label": "/", "x": 19.5, "y": 1.5 }, + { "label": "*", "x": 20.5, "y": 1.5 }, + { "label": "-", "x": 21.5, "y": 1.5 }, { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, { "label": "Q", "x": 1.5, "y": 2.5 }, @@ -252,6 +256,10 @@ { "label": "Delete", "x": 15.25, "y": 2.5 }, { "label": "End", "x": 16.25, "y": 2.5 }, { "label": "PgDn", "x": 17.25, "y": 2.5 }, + { "label": "7", "x": 18.5, "y": 2.5 }, + { "label": "8", "x": 19.5, "y": 2.5 }, + { "label": "9", "x": 20.5, "y": 2.5 }, + { "label": "+", "x": 21.5, "y": 2.5, "h": 2 }, { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, { "label": "A", "x": 1.75, "y": 3.5 }, @@ -267,6 +275,9 @@ { "label": "\"", "x": 11.75, "y": 3.5 }, { "label": "#", "x": 12.75, "y": 3.5 }, { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, + { "label": "4", "x": 18.5, "y": 3.5 }, + { "label": "5", "x": 19.5, "y": 3.5 }, + { "label": "6", "x": 20.5, "y": 3.5 }, { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, { "label": "\\", "x": 1.25, "y": 4.5 }, @@ -282,6 +293,10 @@ { "label": "?", "x": 11.25, "y": 4.5 }, { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, { "label": "\u2191", "x": 16.25, "y": 4.5 }, + { "label": "1", "x": 18.5, "y": 4.5 }, + { "label": "2", "x": 19.5, "y": 4.5 }, + { "label": "3", "x": 20.5, "y": 4.5 }, + { "label": "Enter", "x": 21.5, "y": 4.5, "h": 2 }, { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, @@ -293,7 +308,9 @@ { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, { "label": "\u2190", "x": 15.25, "y": 5.5 }, { "label": "\u2193", "x": 16.25, "y": 5.5 }, - { "label": "\u2192", "x": 17.25, "y": 5.5 } + { "label": "\u2192", "x": 17.25, "y": 5.5 }, + { "label": "0", "x": 18.5, "y": 5.5, "w": 2 }, + { "label": ".", "x": 20.5, "y": 5.5 } ] } } diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/keymap.c b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c similarity index 100% rename from keyboards/durgod/k320/keymaps/kuenhlee/keymap.c rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/keymap.c diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/readme.md b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md similarity index 100% rename from keyboards/durgod/k320/keymaps/kuenhlee/readme.md rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/readme.md diff --git a/keyboards/durgod/k320/keymaps/kuenhlee/rules.mk b/keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk similarity index 100% rename from keyboards/durgod/k320/keymaps/kuenhlee/rules.mk rename to keyboards/durgod/k3x0/k320/keymaps/kuenhlee/rules.mk diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k3x0/k320/readme.md similarity index 95% rename from keyboards/durgod/k320/readme.md rename to keyboards/durgod/k3x0/k320/readme.md index 551a29282443..f3910c7dc86e 100644 --- a/keyboards/durgod/k320/readme.md +++ b/keyboards/durgod/k3x0/k320/readme.md @@ -2,7 +2,7 @@ This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. -* Keyboard Maintainer: [dkjer](https://github.com/dkjer) +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 * Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en diff --git a/keyboards/durgod/k3x0/k320/rules.mk b/keyboards/durgod/k3x0/k320/rules.mk new file mode 100644 index 000000000000..323c12fc6e05 --- /dev/null +++ b/keyboards/durgod/k3x0/k320/rules.mk @@ -0,0 +1 @@ +# see common rules.mk diff --git a/keyboards/durgod/k310/k310.c b/keyboards/durgod/k3x0/k3x0.c similarity index 99% rename from keyboards/durgod/k310/k310.c rename to keyboards/durgod/k3x0/k3x0.c index 3e23664a4e3a..6904d713a368 100644 --- a/keyboards/durgod/k310/k310.c +++ b/keyboards/durgod/k3x0/k3x0.c @@ -14,7 +14,7 @@ * along with this program. If not, see . */ -#include "k310.h" +#include "k3x0.h" /* Private Functions */ void off_all_leds(void) { diff --git a/keyboards/durgod/k310/k310.h b/keyboards/durgod/k3x0/k3x0.h similarity index 66% rename from keyboards/durgod/k310/k310.h rename to keyboards/durgod/k3x0/k3x0.h index f121d74ceb17..0c6571ac63e2 100644 --- a/keyboards/durgod/k310/k310.h +++ b/keyboards/durgod/k3x0/k3x0.h @@ -20,7 +20,7 @@ #ifndef WINLOCK_DISABLED // Define the TGUI key here so it is available in QMK configurator -enum K310_keycodes { +enum K3x0_keycodes { KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock NEW_SAFE_RANGE }; @@ -73,6 +73,44 @@ void on_all_leds(void); { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ } +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ +} + // This a shortcut to help you visually see your layout. #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ diff --git a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c new file mode 100644 index 000000000000..b2d8d3c393da --- /dev/null +++ b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c @@ -0,0 +1,373 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * + * 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 + +// Layer shorthand +enum _layer { + _WBL, + _WFL, + _WSL, + _MBL, + _MFL, + _MSL +}; + +#ifndef DEFAULT_LAYOUT +# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. +#endif +#ifndef ALT_LAYOUT +# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. +#endif + +static bool win_key_locked = false; +static bool mac_media_locked = false; +static bool win_appkey_pressed = false; +static bool mac_fnkey_pressed = false; + + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) + KC_TMED, // Toggle between Fx keys or Media keys (Mac) + KC_WFN, // Windows function key + KC_MFN, // Mac function key + MO_WSL, // Windows system key + MO_MSL, // Mac system key + DF_W2MBL, // Change layout from Windows to Mac + DF_M2WBL // Change layout from Mac to Windows +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _WBL: Windows Base Layer (Default Layer) + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ + * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WBL] = LAYOUT_all( /* Windows Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _WFL: Windows Function Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ย ย ย โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ย โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WFL] = LAYOUT_all( /* Windows Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _WSL: Windows System Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ย ย ย โ”‚Slpโ”‚ ย โ”‚ ย โ”‚Pwrโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚MACโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ + RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚F13โ”‚F14โ”‚F15โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ + * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚Altย โ”‚GUIย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MBL] = LAYOUT_all( /* Mac Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _MFL: Mac Function Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ย ย ย โ”‚Br-โ”‚Br+โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ ย โ”‚Prvโ”‚Plyโ”‚ย โ”‚Nxtโ”‚Mutโ”‚Vo-โ”‚Vo+โ”‚ย โ”‚TMdโ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MFL] = LAYOUT_all( /* Mac Function Layer */ + _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _MSL: Mac System Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ย ย ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚Slpโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚WINโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) +}; + +void unlock_win_key(void) { + win_key_locked = false; + mac_media_locked = false; + writePinHigh(LED_WIN_LOCK_PIN); +} + +void toggle_lock_win_key(void) { + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); +} + +void toggle_lock_media_key(void) { + mac_media_locked = !mac_media_locked; + writePin(LED_WIN_LOCK_PIN, !mac_media_locked); +} + +#ifdef CONSOLE_ENABLE +void dprint_global_layers(void) { + dprint("Global Layers:"); + if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} + +void dprint_layers(layer_state_t state) { + dprint("Layers:"); + if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} +#endif + +layer_state_t default_layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("default_layer_state_set_user: 0x%x\n", state); + dprint_global_layers(); +#endif + // Disable windows key lock on default layer transition. + unlock_win_key(); + win_appkey_pressed = false; + mac_fnkey_pressed = false; + writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("layer_state_set_user: 0x%x\n", state); + dprint_layers(state); +#endif + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (!record->event.pressed) { + // Toggle GUI lock on key release + toggle_lock_win_key(); + } + break; + case KC_TMED: + // Only trigger when Fn key is also held down, to avoid accidental unlock. + if (!mac_fnkey_pressed) { return false; } + if (!record->event.pressed) { + // Toggle Media Lock on key release + toggle_lock_media_key(); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + case KC_WFN: + // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. + if (record->event.pressed) { + layer_on(_WFL); + if (win_appkey_pressed) { + // Also enable Secondary layer if App key is being held down. + win_appkey_pressed = false; + layer_on(_WSL); + } + } else { + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + } + break; + case KC_APP: + if (record->event.pressed) { + // Don't actually press down the app menu key + win_appkey_pressed = true; + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (win_appkey_pressed) { + win_appkey_pressed = false; + // Tap the KC_APP key on key release. + tap_code(KC_APP); + } + } + return false; + break; + case KC_MFN: + // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. + if (record->event.pressed) { + mac_fnkey_pressed = true; + layer_on(_MFL); + // Also enable Secondary layer if Right-Alt key is being held down. + if (get_mods() & MOD_BIT(KC_RALT)) { + layer_on(_MSL); + } + } else { + mac_fnkey_pressed = false; + if (!mac_media_locked) { + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + } + } + break; + case KC_RALT: + // Disable MSL/WFL layer on key-up. + if (!record->event.pressed) { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case MO_WSL: + if (record->event.pressed) { + layer_on(_WSL); + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + } + break; + case MO_MSL: + if (record->event.pressed) { + layer_on(_MSL); + } else { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case DF_W2MBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_MBL); + layer_state_set(1UL<<_MFL | 1UL<<_MSL); + } + break; + case DF_M2WBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_WBL); + layer_state_set(1UL<<_WFL | 1UL<<_WSL); + } + break; + case RESET: + if (record->event.pressed) { + // Flash LEDs to indicate bootloader mode is enabled. + on_all_leds(); + } + break; + } + return true; +} + +void keyboard_post_init_user(void) { + default_layer_set(1UL<. + */ + +#include QMK_KEYBOARD_H + +// Layer shorthand +enum _layer { + _BASE, + _FN, + _LAYER3, + _LAYER4 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BASE: Base Layer (Default Layer) + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ + * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_BASE] = LAYOUT_all( /* Base Layer */ + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _FN: Function Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ย ย ย โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ย โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_FN] = LAYOUT_all( /* Function Layer */ + _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER3] = LAYOUT_all( /* Layer 3 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [_LAYER4] = LAYOUT_all( /* Layer 4 */ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/durgod/k310/keymaps/via/readme.md b/keyboards/durgod/k3x0/keymaps/via/readme.md similarity index 71% rename from keyboards/durgod/k310/keymaps/via/readme.md rename to keyboards/durgod/k3x0/keymaps/via/readme.md index 847184c2b7a2..ffa1c4ce0a2f 100644 --- a/keyboards/durgod/k310/keymaps/via/readme.md +++ b/keyboards/durgod/k3x0/keymaps/via/readme.md @@ -1,4 +1,4 @@ -# The default keymap for Durgod Taurus K310 +# The via keymap for Durgod Taurus K310/K320. Layer 0 : Standard layout diff --git a/keyboards/durgod/k310/keymaps/via/rules.mk b/keyboards/durgod/k3x0/keymaps/via/rules.mk similarity index 51% rename from keyboards/durgod/k310/keymaps/via/rules.mk rename to keyboards/durgod/k3x0/keymaps/via/rules.mk index 8815b6a0a62c..36b7ba9cbc98 100644 --- a/keyboards/durgod/k310/keymaps/via/rules.mk +++ b/keyboards/durgod/k3x0/keymaps/via/rules.mk @@ -1,4 +1,2 @@ -OPT_DEFS += -DWINLOCK_DISABLED - VIA_ENABLE = yes LTO_ENABLE = yes diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md new file mode 100644 index 000000000000..31657f0db024 --- /dev/null +++ b/keyboards/durgod/k3x0/readme.md @@ -0,0 +1,13 @@ +# K3X0 = K310, K320, etc. + +This K3X0 code is shared between both the ANSI and ISO variants of both the +K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. + +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: Durgod Taurus K310 or K320 board with STM32F070RBT6 +* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en + and K320 https://www.durgod.com/page9?product_id=47&_l=en + +Instructions for K310 and K320 building and flashing can be found here: +* [K310](k310/readme.md) +* [K320](k320/readme.md) diff --git a/keyboards/durgod/k3x0/rules.mk b/keyboards/durgod/k3x0/rules.mk new file mode 100644 index 000000000000..4abbfde339e8 --- /dev/null +++ b/keyboards/durgod/k3x0/rules.mk @@ -0,0 +1,29 @@ +# Default to K310 variant, since it will also work on a K320 +DEFAULT_FOLDER=durgod/k3x0/k310 + +# MCU name +# Actually F070, but close enough +MCU = STM32F072 +BOARD = DURGOD_STM32_F070 + +# Bootloader selection +BOOTLOADER = stm32-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = yes # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +BLUETOOTH_ENABLE = no # Enable Bluetooth +AUDIO_ENABLE = no # Audio output + +LAYOUTS = fullsize_ansi fullsize_iso tkl_ansi tkl_iso From ebcf29034375116846d1290a419366c974c935cb Mon Sep 17 00:00:00 2001 From: Simon Arlott Date: Sat, 13 Mar 2021 09:52:20 +0000 Subject: [PATCH 3/7] Durgod K3x0 cleanup and improvements * Remove NUM_LOCK from the K320 * Remove row 8 from the K320 * Enable LTO for all keymaps ** This increases the matrix scan rate by making it more efficient * Jump to bootloader when the hardware reset button is pressed * Add extra hardware reset button check ** The interrupt is edge-triggered so check that it's not already pressed --- keyboards/durgod/k3x0/config.h | 7 ++--- keyboards/durgod/k3x0/halconf.h | 22 +++++++++++++++ keyboards/durgod/k3x0/k310/config.h | 9 ++++++ keyboards/durgod/k3x0/k320/config.h | 6 ++++ keyboards/durgod/k3x0/k3x0.c | 32 ++++++++++++++++++++++ keyboards/durgod/k3x0/k3x0.h | 24 ++++++++++++---- keyboards/durgod/k3x0/keymaps/via/rules.mk | 1 - keyboards/durgod/k3x0/rules.mk | 1 + 8 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 keyboards/durgod/k3x0/halconf.h diff --git a/keyboards/durgod/k3x0/config.h b/keyboards/durgod/k3x0/config.h index e3ec875d9732..1e10b6096c08 100644 --- a/keyboards/durgod/k3x0/config.h +++ b/keyboards/durgod/k3x0/config.h @@ -1,4 +1,5 @@ /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * Copyright 2021 Simon Arlott * * 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 @@ -18,11 +19,9 @@ #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 8 +/* key matrix size (rows in specific keyboard variant) */ #define MATRIX_COLS 16 -#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } #define MATRIX_COL_PINS { C4, C5, B0, B1, B2, B10, B11, B12, B13, B14, B15, C6, C7, C10, C11, C12 } /* COL2ROW, ROW2COL*/ @@ -43,7 +42,6 @@ #define BOOTMAGIC_LITE_COLUMN 0 /* LED indicator pins */ -#define LED_NUM_LOCK_PIN C8 #define LED_CAPS_LOCK_PIN C9 #define LED_SCROLL_LOCK_PIN A8 #define LED_WIN_LOCK_PIN A9 @@ -51,3 +49,4 @@ #define LED_PIN_ON_STATE 0 /* Original hardware "reset" button on pin D2 */ +#define HARDWARE_RESET_PIN D2 diff --git a/keyboards/durgod/k3x0/halconf.h b/keyboards/durgod/k3x0/halconf.h new file mode 100644 index 000000000000..fa20fe30a98e --- /dev/null +++ b/keyboards/durgod/k3x0/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Simon Arlott + * + * 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 HAL_USE_PAL TRUE +#define PAL_USE_CALLBACKS TRUE + +#include_next diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/durgod/k3x0/k310/config.h index 7167ee5d7904..7caa30ddfd24 100644 --- a/keyboards/durgod/k3x0/k310/config.h +++ b/keyboards/durgod/k3x0/k310/config.h @@ -1,4 +1,5 @@ /* Copyright 2021 Don Kjer and Tyler Tidman + * Copyright 2021 Simon Arlott * * 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 @@ -24,3 +25,11 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Hoksi Technology #define PRODUCT DURGOD Taurus K310 (QMK) + +/* key matrix size (cols in generic keyboard config) */ +#define MATRIX_ROWS 8 + +#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6, A7 } + +/* LED indicator pins */ +#define LED_NUM_LOCK_PIN C8 diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/durgod/k3x0/k320/config.h index defffef100c5..ffb5ac227052 100644 --- a/keyboards/durgod/k3x0/k320/config.h +++ b/keyboards/durgod/k3x0/k320/config.h @@ -1,4 +1,5 @@ /* Copyright 2021 Don Kjer and Tyler Tidman + * Copyright 2021 Simon Arlott * * 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 @@ -24,3 +25,8 @@ #define DEVICE_VER 0x0001 #define MANUFACTURER Hoksi Technology #define PRODUCT DURGOD Taurus K320 (QMK) + +/* key matrix size (cols in generic keyboard config) */ +#define MATRIX_ROWS 7 + +#define MATRIX_ROW_PINS { A0, A1, A2, A3, A4, A5, A6 } diff --git a/keyboards/durgod/k3x0/k3x0.c b/keyboards/durgod/k3x0/k3x0.c index 6904d713a368..d12b46bc51b0 100644 --- a/keyboards/durgod/k3x0/k3x0.c +++ b/keyboards/durgod/k3x0/k3x0.c @@ -1,4 +1,5 @@ /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * Copyright 2021 Simon Arlott * * 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 @@ -15,10 +16,14 @@ */ #include "k3x0.h" +#include +#include /* Private Functions */ void off_all_leds(void) { +#ifdef LED_NUM_LOCK_PIN writePinHigh(LED_NUM_LOCK_PIN); +#endif writePinHigh(LED_CAPS_LOCK_PIN); writePinHigh(LED_SCROLL_LOCK_PIN); writePinHigh(LED_WIN_LOCK_PIN); @@ -26,7 +31,9 @@ void off_all_leds(void) { } void on_all_leds(void) { +#ifdef LED_NUM_LOCK_PIN writePinLow(LED_NUM_LOCK_PIN); +#endif writePinLow(LED_CAPS_LOCK_PIN); writePinLow(LED_SCROLL_LOCK_PIN); writePinLow(LED_WIN_LOCK_PIN); @@ -35,7 +42,9 @@ void on_all_leds(void) { /* WinLock and MR LEDs are non-standard. Need to override led init */ void led_init_ports(void) { +#ifdef LED_NUM_LOCK_PIN setPinOutput(LED_NUM_LOCK_PIN); +#endif setPinOutput(LED_CAPS_LOCK_PIN); setPinOutput(LED_SCROLL_LOCK_PIN); setPinOutput(LED_WIN_LOCK_PIN); @@ -62,3 +71,26 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { return process_record_user(keycode, record); } #endif /* WINLOCK_DISABLED */ + +#ifndef HW_RESET_PIN_DISABLED +static void hardware_reset_cb(void *arg) { + chSysLockFromISR(); + bootloader_jump(); + chSysUnlockFromISR(); +} +#endif + +void keyboard_pre_init_kb(void) { + setPinInputHigh(HARDWARE_RESET_PIN); + +#ifndef HW_RESET_PIN_DISABLED + /* Jump to bootloader when the hardware reset button is pressed */ + palEnablePadEvent(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), PAL_EVENT_MODE_FALLING_EDGE); + palSetPadCallback(PAL_PORT(HARDWARE_RESET_PIN), PAL_PAD(HARDWARE_RESET_PIN), hardware_reset_cb, NULL); + + /* The interrupt is edge-triggered so check that it's not already pressed */ + if (!readPin(HARDWARE_RESET_PIN)) { + bootloader_jump(); + } +#endif +} diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h index 0c6571ac63e2..29fd929d1a64 100644 --- a/keyboards/durgod/k3x0/k3x0.h +++ b/keyboards/durgod/k3x0/k3x0.h @@ -1,4 +1,5 @@ /* Copyright 2021 kuenhlee, Don Kjer, Tyler Tidman + * Copyright 2021 Simon Arlott * * 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 @@ -35,6 +36,14 @@ void on_all_leds(void); #define XXX KC_NO +/* Omit row 8 if it's not physically present */ +#if MATRIX_ROWS < 8 +# define K3x0_ROW_8(X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F) +#else +# define K3x0_ROW_8(X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F) \ + { X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F } +#endif + // This a shortcut to help you visually see your layout. #define LAYOUT_fullsize_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ @@ -51,7 +60,8 @@ void on_all_leds(void); { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ } // This a shortcut to help you visually see your layout. @@ -70,7 +80,8 @@ void on_all_leds(void); { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ } // This a shortcut to help you visually see your layout. @@ -89,7 +100,8 @@ void on_all_leds(void); { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ } // This a shortcut to help you visually see your layout. @@ -108,7 +120,8 @@ void on_all_leds(void); { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ } // This a shortcut to help you visually see your layout. @@ -127,5 +140,6 @@ void on_all_leds(void); { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ } diff --git a/keyboards/durgod/k3x0/keymaps/via/rules.mk b/keyboards/durgod/k3x0/keymaps/via/rules.mk index 36b7ba9cbc98..1e5b99807cb7 100644 --- a/keyboards/durgod/k3x0/keymaps/via/rules.mk +++ b/keyboards/durgod/k3x0/keymaps/via/rules.mk @@ -1,2 +1 @@ VIA_ENABLE = yes -LTO_ENABLE = yes diff --git a/keyboards/durgod/k3x0/rules.mk b/keyboards/durgod/k3x0/rules.mk index 4abbfde339e8..d4e27e0da4fb 100644 --- a/keyboards/durgod/k3x0/rules.mk +++ b/keyboards/durgod/k3x0/rules.mk @@ -25,5 +25,6 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output +LTO_ENABLE = yes LAYOUTS = fullsize_ansi fullsize_iso tkl_ansi tkl_iso From ec3c67fc4049661b95273e30c1f1b8656580d6ed Mon Sep 17 00:00:00 2001 From: Don Kjer Date: Sun, 21 Mar 2021 01:05:40 -0700 Subject: [PATCH 4/7] Adding Durgod K3x0 LAYOUT_tkl to support qmk_configurator for K320 * Moving current impl to 'base' variant to make space for future variants * Fixing compiler error due to SH_T define * Adding custom VIA WinLock key --- keyboards/durgod/k310/base/readme.md | 6 ++ keyboards/durgod/k310/base/rules.mk | 1 + keyboards/durgod/k310/readme.md | 4 + keyboards/durgod/k320/base/readme.md | 6 ++ keyboards/durgod/k320/base/rules.mk | 1 + keyboards/durgod/k320/readme.md | 4 + keyboards/durgod/k3x0/config.h | 4 + keyboards/durgod/k3x0/k310/base/config.h | 23 +++++ keyboards/durgod/k3x0/k310/base/readme.md | 27 +++++ keyboards/durgod/k3x0/k310/base/rules.mk | 1 + keyboards/durgod/k3x0/k310/config.h | 9 +- keyboards/durgod/k3x0/k310/readme.md | 58 +---------- keyboards/durgod/k3x0/k310/rules.mk | 3 +- keyboards/durgod/k3x0/k320/base/config.h | 23 +++++ keyboards/durgod/k3x0/k320/base/readme.md | 27 +++++ keyboards/durgod/k3x0/k320/base/rules.mk | 1 + keyboards/durgod/k3x0/k320/config.h | 9 +- keyboards/durgod/k3x0/k320/info.json | 98 +++++++++++++++++++ keyboards/durgod/k3x0/k320/readme.md | 57 +---------- keyboards/durgod/k3x0/k320/rules.mk | 3 +- keyboards/durgod/k3x0/k3x0.h | 25 +++++ .../durgod/k3x0/keymaps/chimera/readme.md | 2 +- .../k3x0/keymaps/default_mac/keymap.json | 20 ++-- keyboards/durgod/k3x0/readme.md | 42 +++++++- users/talljoe/talljoe.h | 1 + 25 files changed, 328 insertions(+), 127 deletions(-) create mode 100644 keyboards/durgod/k310/base/readme.md create mode 100644 keyboards/durgod/k310/base/rules.mk create mode 100644 keyboards/durgod/k310/readme.md create mode 100644 keyboards/durgod/k320/base/readme.md create mode 100644 keyboards/durgod/k320/base/rules.mk create mode 100644 keyboards/durgod/k320/readme.md create mode 100644 keyboards/durgod/k3x0/k310/base/config.h create mode 100644 keyboards/durgod/k3x0/k310/base/readme.md create mode 100644 keyboards/durgod/k3x0/k310/base/rules.mk create mode 100644 keyboards/durgod/k3x0/k320/base/config.h create mode 100644 keyboards/durgod/k3x0/k320/base/readme.md create mode 100644 keyboards/durgod/k3x0/k320/base/rules.mk diff --git a/keyboards/durgod/k310/base/readme.md b/keyboards/durgod/k310/base/readme.md new file mode 100644 index 000000000000..1f818dacc9c0 --- /dev/null +++ b/keyboards/durgod/k310/base/readme.md @@ -0,0 +1,6 @@ +# Taurus K310 + +Base Model - no backlight leds + +See: [K310](../../k3x0/k310/base/readme.md) + diff --git a/keyboards/durgod/k310/base/rules.mk b/keyboards/durgod/k310/base/rules.mk new file mode 100644 index 000000000000..ff432cc4aa12 --- /dev/null +++ b/keyboards/durgod/k310/base/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=durgod/k3x0/k310/base diff --git a/keyboards/durgod/k310/readme.md b/keyboards/durgod/k310/readme.md new file mode 100644 index 000000000000..234fcc875d67 --- /dev/null +++ b/keyboards/durgod/k310/readme.md @@ -0,0 +1,4 @@ +# K310 + +See: [K310](../k3x0/k310/readme.md) + diff --git a/keyboards/durgod/k320/base/readme.md b/keyboards/durgod/k320/base/readme.md new file mode 100644 index 000000000000..8b74e28e54c9 --- /dev/null +++ b/keyboards/durgod/k320/base/readme.md @@ -0,0 +1,6 @@ +# Taurus K320 + +Base Model - no backlight leds + +See: [K320](../../k3x0/k320/base/readme.md) + diff --git a/keyboards/durgod/k320/base/rules.mk b/keyboards/durgod/k320/base/rules.mk new file mode 100644 index 000000000000..de33470cc001 --- /dev/null +++ b/keyboards/durgod/k320/base/rules.mk @@ -0,0 +1 @@ +DEFAULT_FOLDER=durgod/k3x0/k320/base diff --git a/keyboards/durgod/k320/readme.md b/keyboards/durgod/k320/readme.md new file mode 100644 index 000000000000..b8ca5b6da1a0 --- /dev/null +++ b/keyboards/durgod/k320/readme.md @@ -0,0 +1,4 @@ +# K320 + +See: [K320](../k3x0/k320/readme.md) + diff --git a/keyboards/durgod/k3x0/config.h b/keyboards/durgod/k3x0/config.h index 1e10b6096c08..ef73a710164b 100644 --- a/keyboards/durgod/k3x0/config.h +++ b/keyboards/durgod/k3x0/config.h @@ -19,6 +19,10 @@ #include "config_common.h" +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xD60D +#define MANUFACTURER Hoksi Technology + /* key matrix size (rows in specific keyboard variant) */ #define MATRIX_COLS 16 diff --git a/keyboards/durgod/k3x0/k310/base/config.h b/keyboards/durgod/k3x0/k310/base/config.h new file mode 100644 index 000000000000..025369acd7fa --- /dev/null +++ b/keyboards/durgod/k3x0/k310/base/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Don Kjer + * + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define PRODUCT DURGOD Taurus K310 (QMK) +#define DEVICE_VER 0x0001 // Base (no backlight) diff --git a/keyboards/durgod/k3x0/k310/base/readme.md b/keyboards/durgod/k3x0/k310/base/readme.md new file mode 100644 index 000000000000..9f465404366b --- /dev/null +++ b/keyboards/durgod/k3x0/k310/base/readme.md @@ -0,0 +1,27 @@ +# K310 + +This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key +keyboard without backlight. This supports both the ANSI and ISO variants. + +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 +* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/k310:default + +Flashing example for this keyboard: + + make durgod/k310:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../../readme.md#initial-flash) diff --git a/keyboards/durgod/k3x0/k310/base/rules.mk b/keyboards/durgod/k3x0/k310/base/rules.mk new file mode 100644 index 000000000000..323c12fc6e05 --- /dev/null +++ b/keyboards/durgod/k3x0/k310/base/rules.mk @@ -0,0 +1 @@ +# see common rules.mk diff --git a/keyboards/durgod/k3x0/k310/config.h b/keyboards/durgod/k3x0/k310/config.h index 7caa30ddfd24..1eadb8e52d13 100644 --- a/keyboards/durgod/k3x0/k310/config.h +++ b/keyboards/durgod/k3x0/k310/config.h @@ -20,11 +20,12 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xD60D #define PRODUCT_ID 0x3100 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hoksi Technology -#define PRODUCT DURGOD Taurus K310 (QMK) +// Taurus K310 models: +//#define DEVICE_VER 0x0001 // Base (no backlight) +//#define DEVICE_VER 0x0002 // Corona (white led matrix) +//#define DEVICE_VER 0x0003 // Aurora (red & blue led matrix) +//#define DEVICE_VER 0x0004 // Nebula (rgb led matrix) /* key matrix size (cols in generic keyboard config) */ #define MATRIX_ROWS 8 diff --git a/keyboards/durgod/k3x0/k310/readme.md b/keyboards/durgod/k3x0/k310/readme.md index a1102abeabc1..bee903b88f7f 100644 --- a/keyboards/durgod/k3x0/k310/readme.md +++ b/keyboards/durgod/k3x0/k310/readme.md @@ -1,58 +1,10 @@ -# K310 +# Taurus K310 -This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key -keyboard without backlight. This supports both the ANSI and ISO variants. +This code is shared between all K310 variants. Currently only the base model with no backlight is supported. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: Durgod Taurus K310 board with STM32F070RBT6 -* Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en +* Hardware Availability: Base https://www.durgod.com/page9?product_id=53&_l=en -## Instructions - -### Build - -Make command example for this keyboard (after setting up your build environment): - - make durgod/k310:default - -Flashing example for this keyboard: - - make durgod/k310:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Initial Flash - -For first Flashing from initial Stock's Firmware - -1. Back up original Firmware Image: -- Unplug -- Short Boot0 to Vdd (See below) -- Plug In USB -- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: - - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html - - Using dfu-util: - - dfu-util --list - dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} - -2. Flash the QMK Firmware Image. -- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) -- Here are a few options for performing the initial Flash: - - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) - - Using DFuseDemo.exe if STTub30 driver is used. - - Using dfu-util: - - dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} - -You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: - -Shorting Boot0 to Vdd on K310 - -### Subsequent Flashing - -For repeating Flashing you can use BootMagic: -- BootMagic Lite has been enabled with Assigned "Esc" key -- Unplug USB Cable -- Holding Esc Button -- Plug in USB Cable, Keyboard should be in ST-Bootloader state +Instructions for building the K310 firmware can be found here: +* [No Backlight](base/readme.md) diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk index 323c12fc6e05..51e104dc2e71 100644 --- a/keyboards/durgod/k3x0/k310/rules.mk +++ b/keyboards/durgod/k3x0/k310/rules.mk @@ -1 +1,2 @@ -# see common rules.mk +# Default to the base model +DEFAULT_FOLDER=durgod/k3x0/k310/base diff --git a/keyboards/durgod/k3x0/k320/base/config.h b/keyboards/durgod/k3x0/k320/base/config.h new file mode 100644 index 000000000000..d4eb732b90b7 --- /dev/null +++ b/keyboards/durgod/k3x0/k320/base/config.h @@ -0,0 +1,23 @@ +/* Copyright 2021 Don Kjer + * + * 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 + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define PRODUCT DURGOD Taurus K320 (QMK) +#define DEVICE_VER 0x0001 // Base (no backlight) diff --git a/keyboards/durgod/k3x0/k320/base/readme.md b/keyboards/durgod/k3x0/k320/base/readme.md new file mode 100644 index 000000000000..8f46cc122cee --- /dev/null +++ b/keyboards/durgod/k3x0/k320/base/readme.md @@ -0,0 +1,27 @@ +# K320 + +This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) +keyboard without backlight. This supports both the ANSI and ISO variants. + +* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) +* Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 +* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/k320:default + +Flashing example for this keyboard: + + make durgod/k320:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../../readme.md#initial-flash) diff --git a/keyboards/durgod/k3x0/k320/base/rules.mk b/keyboards/durgod/k3x0/k320/base/rules.mk new file mode 100644 index 000000000000..323c12fc6e05 --- /dev/null +++ b/keyboards/durgod/k3x0/k320/base/rules.mk @@ -0,0 +1 @@ +# see common rules.mk diff --git a/keyboards/durgod/k3x0/k320/config.h b/keyboards/durgod/k3x0/k320/config.h index ffb5ac227052..25b4c630365e 100644 --- a/keyboards/durgod/k3x0/k320/config.h +++ b/keyboards/durgod/k3x0/k320/config.h @@ -20,11 +20,12 @@ #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xD60D #define PRODUCT_ID 0x3200 -#define DEVICE_VER 0x0001 -#define MANUFACTURER Hoksi Technology -#define PRODUCT DURGOD Taurus K320 (QMK) +// Taurus K320 models: +//#define DEVICE_VER 0x0001 // Base (no backlight) +//#define DEVICE_VER 0x0002 // Corona (white led matrix) +//#define DEVICE_VER 0x0003 // Aurora (red & blue led matrix) +//#define DEVICE_VER 0x0004 // Nebula (rgb led matrix) /* key matrix size (cols in generic keyboard config) */ #define MATRIX_ROWS 7 diff --git a/keyboards/durgod/k3x0/k320/info.json b/keyboards/durgod/k3x0/k320/info.json index 06c83eaece0e..d360778edd5f 100644 --- a/keyboards/durgod/k3x0/k320/info.json +++ b/keyboards/durgod/k3x0/k320/info.json @@ -198,6 +198,104 @@ { "label": "\u2192", "x": 17.25, "y": 5.5 } ] }, + "LAYOUT_tkl": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.5 }, + { "label": "!", "x": 1, "y": 1.5 }, + { "label": "@", "x": 2, "y": 1.5 }, + { "label": "#", "x": 3, "y": 1.5 }, + { "label": "$", "x": 4, "y": 1.5 }, + { "label": "%", "x": 5, "y": 1.5 }, + { "label": "^", "x": 6, "y": 1.5 }, + { "label": "&", "x": 7, "y": 1.5 }, + { "label": "*", "x": 8, "y": 1.5 }, + { "label": "(", "x": 9, "y": 1.5 }, + { "label": ")", "x": 10, "y": 1.5 }, + { "label": "_", "x": 11, "y": 1.5 }, + { "label": "+", "x": 12, "y": 1.5 }, + { "label": "Backspace", "x": 13, "y": 1.5, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.5 }, + { "label": "Home", "x": 16.25, "y": 1.5 }, + { "label": "PgUp", "x": 17.25, "y": 1.5 }, + + { "label": "Tab", "x": 0, "y": 2.5, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.5 }, + { "label": "W", "x": 2.5, "y": 2.5 }, + { "label": "E", "x": 3.5, "y": 2.5 }, + { "label": "R", "x": 4.5, "y": 2.5 }, + { "label": "T", "x": 5.5, "y": 2.5 }, + { "label": "Y", "x": 6.5, "y": 2.5 }, + { "label": "U", "x": 7.5, "y": 2.5 }, + { "label": "I", "x": 8.5, "y": 2.5 }, + { "label": "O", "x": 9.5, "y": 2.5 }, + { "label": "P", "x": 10.5, "y": 2.5 }, + { "label": "{", "x": 11.5, "y": 2.5 }, + { "label": "}", "x": 12.5, "y": 2.5 }, + { "label": "|", "x": 13.5, "y": 2.5, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.5 }, + { "label": "End", "x": 16.25, "y": 2.5 }, + { "label": "PgDn", "x": 17.25, "y": 2.5 }, + + { "label": "Caps Lock", "x": 0, "y": 3.5, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.5 }, + { "label": "S", "x": 2.75, "y": 3.5 }, + { "label": "D", "x": 3.75, "y": 3.5 }, + { "label": "F", "x": 4.75, "y": 3.5 }, + { "label": "G", "x": 5.75, "y": 3.5 }, + { "label": "H", "x": 6.75, "y": 3.5 }, + { "label": "J", "x": 7.75, "y": 3.5 }, + { "label": "K", "x": 8.75, "y": 3.5 }, + { "label": "L", "x": 9.75, "y": 3.5 }, + { "label": ":", "x": 10.75, "y": 3.5 }, + { "label": "\"", "x": 11.75, "y": 3.5 }, + { "label": "#", "x": 12.75, "y": 3.5 }, + { "label": "Enter", "x": 13.75, "y": 3.5, "w": 1.25 }, + + { "label": "Shift", "x": 0, "y": 4.5, "w": 1.25 }, + { "label": "\\", "x": 1.25, "y": 4.5 }, + { "label": "Z", "x": 2.25, "y": 4.5 }, + { "label": "X", "x": 3.25, "y": 4.5 }, + { "label": "C", "x": 4.25, "y": 4.5 }, + { "label": "V", "x": 5.25, "y": 4.5 }, + { "label": "B", "x": 6.25, "y": 4.5 }, + { "label": "N", "x": 7.25, "y": 4.5 }, + { "label": "M", "x": 8.25, "y": 4.5 }, + { "label": "<", "x": 9.25, "y": 4.5 }, + { "label": ">", "x": 10.25, "y": 4.5 }, + { "label": "?", "x": 11.25, "y": 4.5 }, + { "label": "Shift", "x": 12.25, "y": 4.5, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.5 }, + + { "label": "Ctrl", "x": 0, "y": 5.5, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.5, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.5, "w": 1.25 }, + { "x": 3.75, "y": 5.5, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.5, "w": 1.25 }, + { "label": "Fn", "x": 11.25, "y": 5.5, "w": 1.25 }, + { "label": "Menu", "x": 12.5, "y": 5.5, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.5, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.5 }, + { "label": "\u2193", "x": 16.25, "y": 5.5 }, + { "label": "\u2192", "x": 17.25, "y": 5.5 } + ] + }, "LAYOUT_all": { "layout": [ { "label": "Esc", "x": 0, "y": 0 }, diff --git a/keyboards/durgod/k3x0/k320/readme.md b/keyboards/durgod/k3x0/k320/readme.md index f3910c7dc86e..e584bd187460 100644 --- a/keyboards/durgod/k3x0/k320/readme.md +++ b/keyboards/durgod/k3x0/k320/readme.md @@ -1,57 +1,10 @@ -# K320 +# Taurus K320 -This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key) keyboard without backlight. +This code is shared between all K320 variants. Currently only the base model with no backlight is supported. * Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert) * Hardware Supported: Durgod Taurus K320 board with STM32F070RBT6 -* Hardware Availability: https://www.durgod.com/page9?product_id=47&_l=en +* Hardware Availability: Base https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM -## Instructions - -### Build - -Make command example for this keyboard (after setting up your build environment): - - make durgod/k320:default - -Flashing example for this keyboard: - - make durgod/k320:default:flash - -See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). - -### Initial Flash - -For first Flashing from initial Stock's Firmware - -1. Back up original Firmware Image: -- Unplug -- Short Boot0 to Vdd (See below) -- Plug In USB -- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: - - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html - - Using dfu-util: - - dfu-util --list - dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} - -2. Flash the QMK Firmware Image. -- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) -- Here are a few options for performing the initial Flash: - - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) - - Using DFuseDemo.exe if STTub30 driver is used. - - Using dfu-util: - - dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} - -You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: - -Shorting Boot0 to Vdd on K320 - -### Subsequent Flashing - -For repeating Flashing you can use BootMagic: -- BootMagic Lite has been enabled with Assigned "Esc" key -- Unplug USB Cable -- Holding Esc Button -- Plug in USB Cable, Keyboard should be in ST-Bootloader state +Instructions for building the K320 firmware can be found here: +* [No Backlight](base/readme.md) diff --git a/keyboards/durgod/k3x0/k320/rules.mk b/keyboards/durgod/k3x0/k320/rules.mk index 323c12fc6e05..f95e41770696 100644 --- a/keyboards/durgod/k3x0/k320/rules.mk +++ b/keyboards/durgod/k3x0/k320/rules.mk @@ -1 +1,2 @@ -# see common rules.mk +# Default to the base model +DEFAULT_FOLDER=durgod/k3x0/k320/base diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h index 29fd929d1a64..858a877fa3b6 100644 --- a/keyboards/durgod/k3x0/k3x0.h +++ b/keyboards/durgod/k3x0/k3x0.h @@ -22,8 +22,13 @@ #ifndef WINLOCK_DISABLED // Define the TGUI key here so it is available in QMK configurator enum K3x0_keycodes { +#ifdef VIA_ENABLE + KC_TGUI = USER00, // Toggle between GUI Lock or Unlock + NEW_SAFE_RANGE = SAFE_RANGE +#else KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock NEW_SAFE_RANGE +#endif }; #undef SAFE_RANGE @@ -124,6 +129,26 @@ void on_all_leds(void); XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ } +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ + K3x0_ROW_8( \ + XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ +} + // This a shortcut to help you visually see your layout. #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ diff --git a/keyboards/durgod/k3x0/keymaps/chimera/readme.md b/keyboards/durgod/k3x0/keymaps/chimera/readme.md index a4950a9fbf84..eb9a3ea5f3b5 100644 --- a/keyboards/durgod/k3x0/keymaps/chimera/readme.md +++ b/keyboards/durgod/k3x0/keymaps/chimera/readme.md @@ -39,7 +39,7 @@ You can change the default & alternate layout by setting the following flags to For example, to configure Mac as the default layer, and Windows to be the alternate layout, compile with these flags: - make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:default_toggle_mac_windows + make EXTRAFLAGS="-DDEFAULT_LAYOUT=_MBL -DALT_LAYOUT=_WBL" durgod/k3x0/k310:chimera ## Windows key lock diff --git a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json b/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json index 3df73a9f92d1..acf221935e5c 100644 --- a/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json +++ b/keyboards/durgod/k3x0/keymaps/default_mac/keymap.json @@ -5,19 +5,19 @@ "layers": [ [ "KC_ESC", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", - "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", - "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", - "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", - "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", - "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_SPC", "KC_RGUI", "KC_RALT", "MO(1)", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT" + "KC_GRV", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_MINS", "KC_EQL", "KC_BSPC", "KC_INS", "KC_HOME", "KC_PGUP", "KC_NLCK", "KC_PSLS", "KC_PAST", "KC_PMNS", + "KC_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_LBRC", "KC_RBRC", "KC_BSLS", "KC_DEL", "KC_END", "KC_PGDN", "KC_P7", "KC_P8", "KC_P9", "KC_PPLS", + "KC_CAPS", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", "KC_NUHS", "KC_ENT", "KC_P4", "KC_P5", "KC_P6", + "KC_LSFT", "KC_NUBS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_RSFT", "KC_UP", "KC_P1", "KC_P2", "KC_P3", "KC_PENT", + "KC_LCTL", "KC_LALT", "KC_LGUI", "KC_SPC", "KC_RGUI", "KC_RALT", "MO(1)", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_P0", "KC_PDOT" ], [ "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "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", "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", "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", "_______", "_______", "_______", + "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", "_______", "_______" ] ], "author":"AlCutter", diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index 31657f0db024..37010ff3868d 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -8,6 +8,46 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards. * Hardware Availability: K310 https://www.durgod.com/page9?product_id=53&_l=en and K320 https://www.durgod.com/page9?product_id=47&_l=en -Instructions for K310 and K320 building and flashing can be found here: +## Instructions + +### Build + +Instructions for building the K310 and K320 firmware can be found here: * [K310](k310/readme.md) * [K320](k320/readme.md) + +### Initial Flash + +For first Flashing from initial Stock Firmware + +1. Back up original Firmware Image: +- Unplug +- Short Boot0 to Vdd (See below) +- Plug In USB +- Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: + - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html + - Using dfu-util: + + dfu-util --list + dfu-util --alt 0 --dfuse-address 0x08000000 --upload ${OLD_STOCK_BIN} + +2. Flash the QMK Firmware Image. +- Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) +- Here are a few options for performing the initial Flash: + - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) + - Using DFuseDemo.exe if STTub30 driver is used. + - Using dfu-util: + + dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} + +You can short Boot0 to Vdd by shorting R21 to C27 on the sides closest to the processor, as shown: + +Shorting Boot0 to Vdd on K320 + +### Subsequent Flashing + +For repeating Flashing you can use BootMagic: +- BootMagic Lite has been enabled with Assigned "Esc" key +- Unplug USB Cable +- Holding Esc Button +- Plug in USB Cable, Keyboard should be in ST-Bootloader state diff --git a/users/talljoe/talljoe.h b/users/talljoe/talljoe.h index f151bde685c5..cdb01a97449d 100644 --- a/users/talljoe/talljoe.h +++ b/users/talljoe/talljoe.h @@ -92,6 +92,7 @@ enum layers { #define MLT_E LT(_NUM, KC_E) #ifndef SWAP_HANDS_ENABLE +#undef SH_T #define SH_T #endif From 625545ad851641dd9efbe6daa7fe6d24089c00fb Mon Sep 17 00:00:00 2001 From: Tyler Tidman Date: Tue, 27 Apr 2021 20:17:21 -0400 Subject: [PATCH 5/7] Add new 'Typhon' keymap for Durgod K320/K310 based on 'Chimera' --- keyboards/durgod/k3x0/keymaps/typhon/keymap.c | 373 ++++++++++++++++++ .../durgod/k3x0/keymaps/typhon/readme.md | 65 +++ keyboards/durgod/k3x0/keymaps/typhon/rules.mk | 2 + 3 files changed, 440 insertions(+) create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/keymap.c create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/readme.md create mode 100644 keyboards/durgod/k3x0/keymaps/typhon/rules.mk diff --git a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c new file mode 100644 index 000000000000..76c1c0fb876b --- /dev/null +++ b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c @@ -0,0 +1,373 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * + * 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 + +// Layer shorthand +enum _layer { + _WBL, + _WFL, + _WSL, + _MBL, + _MFL, + _MSL +}; + +#ifndef DEFAULT_LAYOUT +# define DEFAULT_LAYOUT _WBL // Change to _MBL to boot into Mac layout. +#endif +#ifndef ALT_LAYOUT +# define ALT_LAYOUT _MBL // Layout to display 'MR' led when active. +#endif + +static bool win_key_locked = false; +static bool mac_media_locked = false; +static bool win_appkey_pressed = false; +static bool mac_fnkey_pressed = false; + + +// Defines the keycodes used by our macros in process_record_user +enum custom_keycodes { + KC_TGUI = SAFE_RANGE, // Toggle between GUI Lock or Unlock (Windows) + KC_TMED, // Toggle between Fx keys or Media keys (Mac) + KC_WFN, // Windows function key + KC_MFN, // Mac function key + MO_WSL, // Windows system key + MO_MSL, // Mac system key + DF_W2MBL, // Change layout from Windows to Mac + DF_M2WBL // Change layout from Mac to Windows +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _WBL: Windows Base Layer (Default Layer) + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ย ย ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ + * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WBL] = LAYOUT_all( /* Windows Base Layer */ + KC_ESC, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _WFL: Windows Function Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ย ย ย โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ย โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ย โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚ โ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WFL] = LAYOUT_all( /* Windows Function Layer */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _WSL: Windows System Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ย ย ย โ”‚Slpโ”‚ ย โ”‚ ย โ”‚Pwrโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚MACโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ + RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ย ย ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ย โ”‚F13โ”‚F14โ”‚F15โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ + * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚Altย โ”‚GUIย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MBL] = LAYOUT_all( /* Mac Base Layer */ + KC_ESC, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_F13, KC_F14, KC_F15, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_P4, KC_P5, KC_P6, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + /* Keymap _MFL: Mac Function Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ย ย ย โ”‚F1 โ”‚F2 โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7 โ”‚F8 โ”‚ย โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚TMdโ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MFL] = LAYOUT_all( /* Mac Function Layer */ + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TMED, _______, KC_MUTE, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ + ), + /* Keymap _MSL: Mac System Layer + * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ย ย ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚Slpโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚WINโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ + * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ + [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ + RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, DEBUG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ) +}; + +void unlock_win_key(void) { + win_key_locked = false; + mac_media_locked = false; + writePinHigh(LED_WIN_LOCK_PIN); +} + +void toggle_lock_win_key(void) { + win_key_locked = !win_key_locked; + writePin(LED_WIN_LOCK_PIN, !win_key_locked); +} + +void toggle_lock_media_key(void) { + mac_media_locked = !mac_media_locked; + writePin(LED_WIN_LOCK_PIN, !mac_media_locked); +} + +#ifdef CONSOLE_ENABLE +void dprint_global_layers(void) { + dprint("Global Layers:"); + if (IS_LAYER_ON(_WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON(_WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON(_MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON(_MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} + +void dprint_layers(layer_state_t state) { + dprint("Layers:"); + if (IS_LAYER_ON_STATE(state, _WFL)) { dprint(" _WFL"); } + if (IS_LAYER_ON_STATE(state, _WSL)) { dprint(" _WSL"); } + if (IS_LAYER_ON_STATE(state, _MFL)) { dprint(" _MFL"); } + if (IS_LAYER_ON_STATE(state, _MSL)) { dprint(" _MSL"); } + dprintf("\n"); +} +#endif + +layer_state_t default_layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("default_layer_state_set_user: 0x%x\n", state); + dprint_global_layers(); +#endif + // Disable windows key lock on default layer transition. + unlock_win_key(); + win_appkey_pressed = false; + mac_fnkey_pressed = false; + writePin(LED_MR_LOCK_PIN, !IS_LAYER_ON_STATE(state, ALT_LAYOUT)); + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { +#ifdef CONSOLE_ENABLE + dprintf("layer_state_set_user: 0x%x\n", state); + dprint_layers(state); +#endif + return state; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_TGUI: + if (!record->event.pressed) { + // Toggle GUI lock on key release + toggle_lock_win_key(); + } + break; + case KC_TMED: + // Only trigger when Fn key is also held down, to avoid accidental unlock. + if (!mac_fnkey_pressed) { return false; } + if (!record->event.pressed) { + // Toggle Media Lock on key release + toggle_lock_media_key(); + } + break; + case KC_LGUI: + if (win_key_locked) { return false; } + break; + case KC_WFN: + // Like MO(_WFL), but also enables _WSL if KC_APP is already pressed down. + if (record->event.pressed) { + layer_on(_WFL); + if (win_appkey_pressed) { + // Also enable Secondary layer if App key is being held down. + win_appkey_pressed = false; + layer_on(_WSL); + } + } else { + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + } + break; + case KC_APP: + if (record->event.pressed) { + // Don't actually press down the app menu key + win_appkey_pressed = true; + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (win_appkey_pressed) { + win_appkey_pressed = false; + // Tap the KC_APP key on key release. + tap_code(KC_APP); + } + } + return false; + break; + case KC_MFN: + // Mac Fn key. Emit Fn keycode, and also transition layers similar to KC_WFN. + if (record->event.pressed) { + mac_fnkey_pressed = true; + layer_on(_MFL); + // Also enable Secondary layer if Right-Alt key is being held down. + if (get_mods() & MOD_BIT(KC_RALT)) { + layer_on(_MSL); + } + } else { + mac_fnkey_pressed = false; + if (!mac_media_locked) { + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + } + } + break; + case KC_RALT: + // Disable MSL/WFL layer on key-up. + if (!record->event.pressed) { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case MO_WSL: + if (record->event.pressed) { + layer_on(_WSL); + } else { + if (IS_LAYER_ON(_WSL)) { layer_off(_WSL); } + if (IS_LAYER_ON(_MFL)) { layer_off(_MFL); } + } + break; + case MO_MSL: + if (record->event.pressed) { + layer_on(_MSL); + } else { + if (IS_LAYER_ON(_MSL)) { layer_off(_MSL); } + if (IS_LAYER_ON(_WFL)) { layer_off(_WFL); } + } + break; + case DF_W2MBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_MBL); + layer_state_set(1UL<<_MFL | 1UL<<_MSL); + } + break; + case DF_M2WBL: + if (!record->event.pressed) { + // Switch base layer, but preserve first/secondary layers. + default_layer_set(1UL<<_WBL); + layer_state_set(1UL<<_WFL | 1UL<<_WSL); + } + break; + case RESET: + if (record->event.pressed) { + // Flash LEDs to indicate bootloader mode is enabled. + on_all_leds(); + } + break; + } + return true; +} + +void keyboard_post_init_user(void) { + default_layer_set(1UL< Date: Tue, 6 Jul 2021 23:44:00 -0700 Subject: [PATCH 6/7] Removing K3x0_ROW_8 macro from durgod/k3x0 and splitting into k310.h and k320.h instead --- keyboards/durgod/k3x0/k310/k310.h | 78 ++++++++++++++++ keyboards/durgod/k3x0/k310/rules.mk | 2 + keyboards/durgod/k3x0/k320/k320.h | 92 +++++++++++++++++++ keyboards/durgod/k3x0/k320/rules.mk | 2 + keyboards/durgod/k3x0/k3x0.h | 135 ++-------------------------- keyboards/durgod/k3x0/readme.md | 2 - keyboards/durgod/k3x0/rules.mk | 2 - 7 files changed, 180 insertions(+), 133 deletions(-) create mode 100644 keyboards/durgod/k3x0/k310/k310.h create mode 100644 keyboards/durgod/k3x0/k320/k320.h diff --git a/keyboards/durgod/k3x0/k310/k310.h b/keyboards/durgod/k3x0/k310/k310.h new file mode 100644 index 000000000000..2d82ee155018 --- /dev/null +++ b/keyboards/durgod/k3x0/k310/k310.h @@ -0,0 +1,78 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * Copyright 2021 Simon Arlott + * + * 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 XXX KC_NO + +// This a shortcut to help you visually see your layout. +#define LAYOUT_fullsize_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, K7E, K7D, K7C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_fullsize_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F } \ +} + diff --git a/keyboards/durgod/k3x0/k310/rules.mk b/keyboards/durgod/k3x0/k310/rules.mk index 51e104dc2e71..2df1aff9c80f 100644 --- a/keyboards/durgod/k3x0/k310/rules.mk +++ b/keyboards/durgod/k3x0/k310/rules.mk @@ -1,2 +1,4 @@ # Default to the base model DEFAULT_FOLDER=durgod/k3x0/k310/base + +LAYOUTS = fullsize_ansi fullsize_iso diff --git a/keyboards/durgod/k3x0/k320/k320.h b/keyboards/durgod/k3x0/k320/k320.h new file mode 100644 index 000000000000..23b48d0f3921 --- /dev/null +++ b/keyboards/durgod/k3x0/k320/k320.h @@ -0,0 +1,92 @@ +/* Copyright 2021 Don Kjer and Tyler Tidman + * Copyright 2021 Simon Arlott + * + * 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 XXX KC_NO + +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_tkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F } \ +} + +// This a shortcut to help you visually see your layout. +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ + K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ + { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F } \ +} diff --git a/keyboards/durgod/k3x0/k320/rules.mk b/keyboards/durgod/k3x0/k320/rules.mk index f95e41770696..fabc0854ff3a 100644 --- a/keyboards/durgod/k3x0/k320/rules.mk +++ b/keyboards/durgod/k3x0/k320/rules.mk @@ -1,2 +1,4 @@ # Default to the base model DEFAULT_FOLDER=durgod/k3x0/k320/base + +LAYOUTS = tkl_ansi tkl_iso diff --git a/keyboards/durgod/k3x0/k3x0.h b/keyboards/durgod/k3x0/k3x0.h index 858a877fa3b6..93740a5512f5 100644 --- a/keyboards/durgod/k3x0/k3x0.h +++ b/keyboards/durgod/k3x0/k3x0.h @@ -19,6 +19,12 @@ #include "quantum.h" +#ifdef KEYBOARD_durgod_k3x0_k310 +# include "k310.h" +#elif KEYBOARD_durgod_k3x0_k320 +# include "k320.h" +#endif + #ifndef WINLOCK_DISABLED // Define the TGUI key here so it is available in QMK configurator enum K3x0_keycodes { @@ -39,132 +45,3 @@ enum K3x0_keycodes { void off_all_leds(void); void on_all_leds(void); -#define XXX KC_NO - -/* Omit row 8 if it's not physically present */ -#if MATRIX_ROWS < 8 -# define K3x0_ROW_8(X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F) -#else -# define K3x0_ROW_8(X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F) \ - { X70, X71, X72, X73, X74, X75, X76, X77, X78, X79, X7A, X7B, X7C, X7D, X7E, X7F } -#endif - -// This a shortcut to help you visually see your layout. -#define LAYOUT_fullsize_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, K7E, K7D, K7C, \ - K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ - { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ -} - -// This a shortcut to help you visually see your layout. -#define LAYOUT_fullsize_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, K7A, K79, K78, K6B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ -} - -// This a shortcut to help you visually see your layout. -#define LAYOUT_tkl_ansi( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K4E, \ - K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E, K3F }, \ - { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ -} - -// This a shortcut to help you visually see your layout. -#define LAYOUT_tkl_iso( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, XXX, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ -} - -// This a shortcut to help you visually see your layout. -#define LAYOUT_tkl( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX) \ -} - -// This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, K1F, K6A, K69, K68, K67, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K3D, K3E, K3F, K7A, K79, K78, K6B, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K4E, K7E, K7D, K7C, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K4F, K6E, K6D, K6C, K7B, \ - K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K6F, K7F, K77 \ -) { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, XXX, K1E, K1F }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, XXX, K4D, K4E, K4F }, \ - { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, K5A, K5B, K5C, K5D, K5E, K5F }, \ - { XXX, XXX, XXX, XXX, XXX, XXX, XXX, K67, K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, \ - K3x0_ROW_8( \ - XXX, XXX, XXX, XXX, XXX, XXX, XXX, K77, K78, K79, K7A, K7B, K7C, K7D, K7E, K7F) \ -} diff --git a/keyboards/durgod/k3x0/readme.md b/keyboards/durgod/k3x0/readme.md index 37010ff3868d..cbb170160c18 100644 --- a/keyboards/durgod/k3x0/readme.md +++ b/keyboards/durgod/k3x0/readme.md @@ -25,7 +25,6 @@ For first Flashing from initial Stock Firmware - Short Boot0 to Vdd (See below) - Plug In USB - Make a Flash Image's Backup in case you wanted to restore the Keyboard to Stock's Image: - - Using DFUseDemo.exe from ST's STSW-STM32080: https://www.st.com/en/development-tools/stsw-stm32080.html - Using dfu-util: dfu-util --list @@ -35,7 +34,6 @@ For first Flashing from initial Stock Firmware - Put board into Bootloader mode, using the same method as when backing up the original Firmware (above) - Here are a few options for performing the initial Flash: - Using [QMK Toolbox](https://github.com/qmk/qmk_toolbox) - - Using DFuseDemo.exe if STTub30 driver is used. - Using dfu-util: dfu-util --alt 0 --dfuse-address 0x08000000 --download ${NEW_QMK_BIN} diff --git a/keyboards/durgod/k3x0/rules.mk b/keyboards/durgod/k3x0/rules.mk index d4e27e0da4fb..b70d52057f11 100644 --- a/keyboards/durgod/k3x0/rules.mk +++ b/keyboards/durgod/k3x0/rules.mk @@ -26,5 +26,3 @@ RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow BLUETOOTH_ENABLE = no # Enable Bluetooth AUDIO_ENABLE = no # Audio output LTO_ENABLE = yes - -LAYOUTS = fullsize_ansi fullsize_iso tkl_ansi tkl_iso From 46e13ea1770dd08814c419d33d0421b38b703f46 Mon Sep 17 00:00:00 2001 From: Don Kjer Date: Wed, 7 Jul 2021 14:33:07 -0700 Subject: [PATCH 7/7] Removing NBSPs from k3x0 keymap comments --- .../durgod/k3x0/keymaps/chimera/keymap.c | 192 +++++++++--------- keyboards/durgod/k3x0/keymaps/typhon/keymap.c | 192 +++++++++--------- keyboards/durgod/k3x0/keymaps/via/keymap.c | 56 ++--- 3 files changed, 220 insertions(+), 220 deletions(-) diff --git a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c index b2d8d3c393da..8053da351a50 100644 --- a/keyboards/durgod/k3x0/keymaps/chimera/keymap.c +++ b/keyboards/durgod/k3x0/keymaps/chimera/keymap.c @@ -52,22 +52,22 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _WBL: Windows Base Layer (Default Layer) - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ - * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ - * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WBL: Windows Base Layer (Default Layer) + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ ` โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ 0 โ”‚ - โ”‚ = โ”‚ Backspโ”‚ โ”‚Insโ”‚Homโ”‚PgUโ”‚ โ”‚Numโ”‚ / โ”‚ * โ”‚ - โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ Tab โ”‚ Q โ”‚ W โ”‚ E โ”‚ R โ”‚ T โ”‚ Y โ”‚ U โ”‚ I โ”‚ O โ”‚ P โ”‚ [ โ”‚ ] โ”‚ \ โ”‚ โ”‚Delโ”‚Endโ”‚PgDโ”‚ โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + โ”‚ + * โ”‚ Caps โ”‚ A โ”‚ S โ”‚ D โ”‚ F โ”‚ G โ”‚ H โ”‚ J โ”‚ K โ”‚ L โ”‚ ; โ”‚ ' โ”‚ # โ”‚Entrโ”‚ โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ โ”‚ Z โ”‚ X โ”‚ C โ”‚ V โ”‚ B โ”‚ N โ”‚ M โ”‚ , โ”‚ . โ”‚ / โ”‚ Shift โ”‚ โ”‚ โ†‘ โ”‚ โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUI โ”‚Alt โ”‚ โ”‚ Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ โ”‚ โ† โ”‚ โ†“ โ”‚ โ†’ โ”‚ โ”‚ 0 โ”‚ . โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WBL] = LAYOUT_all( /* Windows Base Layer */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, @@ -76,22 +76,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - /* Keymap _WFL: Windows Function Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ โ”‚ย ย ย โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ย โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ โ”‚Mutโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WFL: Windows Function Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo+โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ โ”‚ โ”‚ โ”‚Funcโ”‚ Sysโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WFL] = LAYOUT_all( /* Windows Function Layer */ _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, @@ -100,22 +100,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ ), - /* Keymap _WSL: Windows System Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Rstโ”‚ย ย ย โ”‚Slpโ”‚ ย โ”‚ ย โ”‚Pwrโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚MACโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WSL: Windows System Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ โ”‚Slpโ”‚ โ”‚ โ”‚Pwrโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚MACโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚DBGโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -125,22 +125,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), - /* Keymap _MBL: Mac Base Layer (Alternate Layout) - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚F13โ”‚F14โ”‚F15โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ - * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ - * โ”‚Ctrlโ”‚Altย โ”‚GUIย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ โ”‚F13โ”‚F14โ”‚F15โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ ` โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ 0 โ”‚ - โ”‚ = โ”‚ Backspโ”‚ โ”‚Insโ”‚Homโ”‚PgUโ”‚ โ”‚Numโ”‚ / โ”‚ * โ”‚ - โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ Tab โ”‚ Q โ”‚ W โ”‚ E โ”‚ R โ”‚ T โ”‚ Y โ”‚ U โ”‚ I โ”‚ O โ”‚ P โ”‚ [ โ”‚ ] โ”‚ \ โ”‚ โ”‚Delโ”‚Endโ”‚PgDโ”‚ โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + โ”‚ + * โ”‚ Caps โ”‚ A โ”‚ S โ”‚ D โ”‚ F โ”‚ G โ”‚ H โ”‚ J โ”‚ K โ”‚ L โ”‚ ; โ”‚ ' โ”‚ # โ”‚Entrโ”‚ โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ โ”‚ Z โ”‚ X โ”‚ C โ”‚ V โ”‚ B โ”‚ N โ”‚ M โ”‚ , โ”‚ . โ”‚ / โ”‚ Shift โ”‚ โ”‚ โ†‘ โ”‚ โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚Alt โ”‚GUI โ”‚ โ”‚ GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ โ”‚ โ† โ”‚ โ†“ โ”‚ โ†’ โ”‚ โ”‚ 0 โ”‚ . โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MBL] = LAYOUT_all( /* Mac Base Layer */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, @@ -149,22 +149,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - /* Keymap _MFL: Mac Function Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ โ”‚ย ย ย โ”‚Br-โ”‚Br+โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ ย โ”‚Prvโ”‚Plyโ”‚ย โ”‚Nxtโ”‚Mutโ”‚Vo-โ”‚Vo+โ”‚ย โ”‚TMdโ”‚ โ”‚Mutโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MFL: Mac Function Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚Br-โ”‚Br+โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Prvโ”‚Plyโ”‚ โ”‚Nxtโ”‚Mutโ”‚Vo-โ”‚Vo+โ”‚ โ”‚TMdโ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo+โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Sysโ”‚Funcโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MFL] = LAYOUT_all( /* Mac Function Layer */ _______, KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_TMED, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, @@ -173,22 +173,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ ), - /* Keymap _MSL: Mac System Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Rstโ”‚ย ย ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚Slpโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚WINโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MSL: Mac System Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ โ”‚ โ”‚ โ”‚ โ”‚Slpโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚WINโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚DBGโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Sysโ”‚Funcโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c index 76c1c0fb876b..afd38392c156 100644 --- a/keyboards/durgod/k3x0/keymaps/typhon/keymap.c +++ b/keyboards/durgod/k3x0/keymaps/typhon/keymap.c @@ -52,22 +52,22 @@ enum custom_keycodes { }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - /* Keymap _WBL: Windows Base Layer (Default Layer) - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Escโ”‚ย ย ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ - * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ - * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WBL: Windows Base Layer (Default Layer) + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ ` โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ 0 โ”‚ - โ”‚ = โ”‚ Backspโ”‚ โ”‚Insโ”‚Homโ”‚PgUโ”‚ โ”‚Numโ”‚ / โ”‚ * โ”‚ - โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ Tab โ”‚ Q โ”‚ W โ”‚ E โ”‚ R โ”‚ T โ”‚ Y โ”‚ U โ”‚ I โ”‚ O โ”‚ P โ”‚ [ โ”‚ ] โ”‚ \ โ”‚ โ”‚Delโ”‚Endโ”‚PgDโ”‚ โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + โ”‚ + * โ”‚ Caps โ”‚ A โ”‚ S โ”‚ D โ”‚ F โ”‚ G โ”‚ H โ”‚ J โ”‚ K โ”‚ L โ”‚ ; โ”‚ ' โ”‚ # โ”‚Entrโ”‚ โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ โ”‚ Z โ”‚ X โ”‚ C โ”‚ V โ”‚ B โ”‚ N โ”‚ M โ”‚ , โ”‚ . โ”‚ / โ”‚ Shift โ”‚ โ”‚ โ†‘ โ”‚ โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUI โ”‚Alt โ”‚ โ”‚ Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ โ”‚ โ† โ”‚ โ†“ โ”‚ โ†’ โ”‚ โ”‚ 0 โ”‚ . โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WBL] = LAYOUT_all( /* Windows Base Layer */ KC_ESC, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_PSCR, KC_SLCK, KC_PAUS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, @@ -76,22 +76,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_WFN, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - /* Keymap _WFL: Windows Function Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ โ”‚ย ย ย โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ย โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ย โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚ โ”‚ โ”‚Mutโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WFL: Windows Function Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ โ”‚ โ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo+โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ โ”‚ โ”‚ โ”‚Funcโ”‚ Sysโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WFL] = LAYOUT_all( /* Windows Function Layer */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, @@ -100,22 +100,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_TGUI, _______, _______, _______, _______, MO_WSL, _______, _______, _______, _______, _______, _______ ), - /* Keymap _WSL: Windows System Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Rstโ”‚ย ย ย โ”‚Slpโ”‚ ย โ”‚ ย โ”‚Pwrโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚MACโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _WSL: Windows System Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ โ”‚Slpโ”‚ โ”‚ โ”‚Pwrโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚MACโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚DBGโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_WSL] = LAYOUT_all( /* Windows Second / System Layer */ RESET, KC_SLEP, XXXXXXX, XXXXXXX, KC_PWR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_W2MBL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, @@ -125,22 +125,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ), - /* Keymap _MBL: Mac Base Layer (Alternate Layout) - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Escโ”‚ย ย ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3ย โ”‚M2ย โ”‚M4ย โ”‚ย โ”‚M1ย โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ย โ”‚F13โ”‚F14โ”‚F15โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ - * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ - * โ”‚Ctrlโ”‚Altย โ”‚GUIย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MBL: Mac Base Layer (Alternate Layout) + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚M1 โ”‚M3 โ”‚M2 โ”‚M4 โ”‚ โ”‚F13โ”‚F14โ”‚F15โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ ` โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ 0 โ”‚ - โ”‚ = โ”‚ Backspโ”‚ โ”‚Insโ”‚Homโ”‚PgUโ”‚ โ”‚Numโ”‚ / โ”‚ * โ”‚ - โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ Tab โ”‚ Q โ”‚ W โ”‚ E โ”‚ R โ”‚ T โ”‚ Y โ”‚ U โ”‚ I โ”‚ O โ”‚ P โ”‚ [ โ”‚ ] โ”‚ \ โ”‚ โ”‚Delโ”‚Endโ”‚PgDโ”‚ โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + โ”‚ + * โ”‚ Caps โ”‚ A โ”‚ S โ”‚ D โ”‚ F โ”‚ G โ”‚ H โ”‚ J โ”‚ K โ”‚ L โ”‚ ; โ”‚ ' โ”‚ # โ”‚Entrโ”‚ โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ โ”‚ Z โ”‚ X โ”‚ C โ”‚ V โ”‚ B โ”‚ N โ”‚ M โ”‚ , โ”‚ . โ”‚ / โ”‚ Shift โ”‚ โ”‚ โ†‘ โ”‚ โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚Alt โ”‚GUI โ”‚ โ”‚ GUIโ”‚ Altโ”‚Funcโ”‚Ctrlโ”‚ โ”‚ โ† โ”‚ โ†“ โ”‚ โ†’ โ”‚ โ”‚ 0 โ”‚ . โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MBL] = LAYOUT_all( /* Mac Base Layer */ KC_ESC, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_BTN1, KC_BTN3, KC_BTN2, KC_BTN4, KC_F13, KC_F14, KC_F15, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, @@ -149,22 +149,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_MFN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), - /* Keymap _MFL: Mac Function Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ โ”‚ย ย ย โ”‚F1 โ”‚F2 โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7 โ”‚F8 โ”‚ย โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚TMdโ”‚ โ”‚Mutโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚Vo+โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚Vo-โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MFL: Mac Function Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ โ”‚TMdโ”‚ โ”‚Mutโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo+โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Sysโ”‚Funcโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MFL] = LAYOUT_all( /* Mac Function Layer */ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TMED, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, _______, _______, _______, @@ -173,22 +173,22 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO_MSL, _______, _______, _______, _______, _______, _______, _______ ), - /* Keymap _MSL: Mac System Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Rstโ”‚ย ย ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚Slpโ”‚ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚WINโ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚DBGโ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚ ย โ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚ Sysโ”‚Funcโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - */ + /* Keymap _MSL: Mac System Layer + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Rstโ”‚ โ”‚ โ”‚ โ”‚ โ”‚Slpโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚WINโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚DBGโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ Sysโ”‚Funcโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + */ [_MSL] = LAYOUT_all( /* Mac Second / System Layer */ RESET, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLEP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF_M2WBL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, diff --git a/keyboards/durgod/k3x0/keymaps/via/keymap.c b/keyboards/durgod/k3x0/keymaps/via/keymap.c index 516e36933a96..169ee2b58627 100644 --- a/keyboards/durgod/k3x0/keymaps/via/keymap.c +++ b/keyboards/durgod/k3x0/keymaps/via/keymap.c @@ -26,20 +26,20 @@ enum _layer { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BASE: Base Layer (Default Layer) - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚Escโ”‚ย ย ย โ”‚F1ย โ”‚F2ย โ”‚F3ย โ”‚F4ย โ”‚ย โ”‚F5ย โ”‚F6ย โ”‚F7ย โ”‚F8ย โ”‚ย โ”‚F9ย โ”‚F10โ”‚F11โ”‚F12โ”‚ย โ”‚PScโ”‚Slkโ”‚Pseโ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย `ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย 0ย โ”‚ย -ย โ”‚ย =ย โ”‚ย Backspโ”‚ย โ”‚Insโ”‚Homโ”‚PgUโ”‚ย โ”‚Numโ”‚ย /ย โ”‚ย *ย โ”‚ย -ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย Tabย โ”‚ย Qย โ”‚ย Wย โ”‚ย Eย โ”‚ย Rย โ”‚ย Tย โ”‚ย Yย โ”‚ย Uย โ”‚ย Iย โ”‚ย Oย โ”‚ย Pย โ”‚ย [ย โ”‚ย ]ย โ”‚ย  \ ย โ”‚ย โ”‚Delโ”‚Endโ”‚PgDโ”‚ย โ”‚ย 7ย โ”‚ย 8ย โ”‚ย 9ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย +ย โ”‚ - * โ”‚ย Capsย โ”‚ย Aย โ”‚ย Sย โ”‚ย Dย โ”‚ย Fย โ”‚ย Gย โ”‚ย Hย โ”‚ย Jย โ”‚ย Kย โ”‚ย Lย โ”‚ย ;ย โ”‚ย 'ย โ”‚ย # โ”‚Entrโ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย 4ย โ”‚ย 5ย โ”‚ย 6ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚Shftโ”‚ \ย โ”‚ย Zย โ”‚ย Xย โ”‚ย Cย โ”‚ย Vย โ”‚ย Bย โ”‚ย Nย โ”‚ย Mย โ”‚ย ,ย โ”‚ย .ย โ”‚ย /ย โ”‚ย ย ย ย Shiftย โ”‚ย ย ย ย ย โ”‚ย โ†‘ย โ”‚ย ย ย ย ย โ”‚ย 1ย โ”‚ย 2ย โ”‚ย 3ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ - * โ”‚Ctrlโ”‚GUIย โ”‚Altย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ย โ”‚ย โ†ย โ”‚ย โ†“ย โ”‚ย โ†’ย โ”‚ย โ”‚ย ย ย 0ย ย ย โ”‚ย .ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚Escโ”‚ โ”‚F1 โ”‚F2 โ”‚F3 โ”‚F4 โ”‚ โ”‚F5 โ”‚F6 โ”‚F7 โ”‚F8 โ”‚ โ”‚F9 โ”‚F10โ”‚F11โ”‚F12โ”‚ โ”‚PScโ”‚Slkโ”‚Pseโ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ ` โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ 0 โ”‚ - โ”‚ = โ”‚ Backspโ”‚ โ”‚Insโ”‚Homโ”‚PgUโ”‚ โ”‚Numโ”‚ / โ”‚ * โ”‚ - โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ Tab โ”‚ Q โ”‚ W โ”‚ E โ”‚ R โ”‚ T โ”‚ Y โ”‚ U โ”‚ I โ”‚ O โ”‚ P โ”‚ [ โ”‚ ] โ”‚ \ โ”‚ โ”‚Delโ”‚Endโ”‚PgDโ”‚ โ”‚ 7 โ”‚ 8 โ”‚ 9 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + โ”‚ + * โ”‚ Caps โ”‚ A โ”‚ S โ”‚ D โ”‚ F โ”‚ G โ”‚ H โ”‚ J โ”‚ K โ”‚ L โ”‚ ; โ”‚ ' โ”‚ # โ”‚Entrโ”‚ โ”‚ 4 โ”‚ 5 โ”‚ 6 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚Shftโ”‚ \ โ”‚ Z โ”‚ X โ”‚ C โ”‚ V โ”‚ B โ”‚ N โ”‚ M โ”‚ , โ”‚ . โ”‚ / โ”‚ Shift โ”‚ โ”‚ โ†‘ โ”‚ โ”‚ 1 โ”‚ 2 โ”‚ 3 โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คEntโ”‚ + * โ”‚Ctrlโ”‚GUI โ”‚Alt โ”‚ โ”‚ Altโ”‚Funcโ”‚ Appโ”‚Ctrlโ”‚ โ”‚ โ† โ”‚ โ†“ โ”‚ โ†’ โ”‚ โ”‚ 0 โ”‚ . โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ */ [_BASE] = LAYOUT_all( /* Base Layer */ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, @@ -50,20 +50,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ), /* Keymap _FN: Function Layer - * โ”Œโ”€โ”€โ”€โ”ย ย ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ โ”‚ย ย ย โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ย โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ ย โ”‚ย โ”‚ ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ - * โ””โ”€โ”€โ”€โ”˜ย ย ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ - * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ย โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ - * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ โ”‚ โ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”คย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”คย  ย โ”‚ - * โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  โ”‚ โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”คย ย ย ย ย โ”Œโ”€โ”€โ”€โ”ย ย ย ย ย โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค - * โ”‚ โ”‚ ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย ย ย ย ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”คย โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ย โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ - * โ”‚ โ”‚Lockโ”‚ ย โ”‚ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย ย โ”‚ย  โ”‚Funcโ”‚ Sysโ”‚ โ”‚ย โ”‚ย  ย โ”‚ย  ย โ”‚ย  ย โ”‚ย โ”‚ย ย ย  ย ย ย โ”‚ย  ย โ”‚ย ย ย โ”‚ - * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ย โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚Plyโ”‚Stpโ”‚Prvโ”‚Nxtโ”‚ โ”‚Mutโ”‚Vo+โ”‚Vo-โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ + * โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ” + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”ฌโ”ˆโ”ˆโ”ˆโ”ˆโ”ค โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค + * โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”ดโ”€โ”ฌโ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”ฌโ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ดโ”ฌโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”ค โ”Œโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ” โ”œโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”ค โ”‚ + * โ”‚ โ”‚Lockโ”‚ โ”‚ โ”‚ โ”‚Funcโ”‚ Sysโ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ + * โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”˜ */ [_FN] = LAYOUT_all( /* Function Layer */ _______, KC_MPLY, KC_MSTP, KC_MPRV, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______,