diff options
Diffstat (limited to 'keyboards/wilba_tech')
23 files changed, 893 insertions, 992 deletions
diff --git a/keyboards/wilba_tech/wt60_a/rules.mk b/keyboards/wilba_tech/wt60_a/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt60_a/rules.mk +++ b/keyboards/wilba_tech/wt60_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt60_a/wt60_a.c b/keyboards/wilba_tech/wt60_a/wt60_a.c new file mode 100644 index 0000000000..fe566ce3fc --- /dev/null +++ b/keyboards/wilba_tech/wt60_a/wt60_a.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT60_A) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT60_A) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt65_a/rules.mk b/keyboards/wilba_tech/wt65_a/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt65_a/rules.mk +++ b/keyboards/wilba_tech/wt65_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt65_a/wt65_a.c b/keyboards/wilba_tech/wt65_a/wt65_a.c new file mode 100644 index 0000000000..4ac6e622db --- /dev/null +++ b/keyboards/wilba_tech/wt65_a/wt65_a.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT65_A) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT65_A) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt65_b/rules.mk b/keyboards/wilba_tech/wt65_b/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt65_b/rules.mk +++ b/keyboards/wilba_tech/wt65_b/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt65_b/wt65_b.c b/keyboards/wilba_tech/wt65_b/wt65_b.c new file mode 100644 index 0000000000..139ddca921 --- /dev/null +++ b/keyboards/wilba_tech/wt65_b/wt65_b.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT65_B) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT65_B) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c deleted file mode 100644 index 64b24e9bf4..0000000000 --- a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/keymap.c +++ /dev/null @@ -1,640 +0,0 @@ -/* Copyright 2021 Yonatan Zunger - * - * 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 <http://www.gnu.org/licenses/>. - */ -#include QMK_KEYBOARD_H -#include <assert.h> - -// This keymap is designed to make it easy to type in a wide variety of languages, as well as -// generate mathematical symbols (à la Space Cadet), without relying on the host OS to do -// key mappings or handle accents. Why? Because different OS's do this in radically different -// ways, and don't support all of the features one often needs. -// -// LAYER MAGIC (aka, typing in many alphabets) -// -// This keyboard has three sets of "polyglot" layers: GREEK, CADET, and YIDDISH. Each of these -// is actually a pair of layers, FOO and SHIFTFOO, which are full of Unicode points that let you -// type in them. (The Greek and Yiddish keymaps selected here are very canted towards use on a -// QWERTY layout, rather than the "standard" layouts often used for those languages in monolingual -// environments. This is useful if your keyboard doesn't have legends for all of them, which in -// most cases it won't. Of course, you could easily add more.) -// -// These each have their own layer select key, which can act as a held modifier key (GREEK+s to -// produce sigma, etc). There's also a "layer lock" key; layer lock + modifier switches you into -// that layer until you hit "layer lock" again to bounce back to QWERTY. -// -// ACCENT MAGIC -// -// We want to support easy typing of diacriticals, again without relying on the host OS. (On -// MacOS, if you want Unicode to work you have to lose all the normal accent combining keys, and -// if you're in a multi-OS world, each OS has a totally different input method) -// -// The real nuance comes from the three different ways Unicode represents these. Many common -// accent + letter combinations like é have their own dedicated code points (the combined -// normal form). One can also place a "combining accent mark" after the letter's code point to -// form the decomposed normal form (NFKD); this often renders the same as the combined form, but -// many less-sophisticated apps won't realize it's the same thing as the combined form (thus messing -// up string matching), and if you backspace you need to backspace *twice* to remove the character, -// because it's literally two characters. Finally, if you want to render just the accent mark as a -// symbol of its own, that's a *third* code point. If you're simply typing, you don't want to think -// about any of this! -// -// We thus have a bunch of special keycodes for "accent requests," which live on the FUNCTION -// layer. Accent requests don't do anything immediate, but when the *next* non-modifier key is hit, -// we generate a combined code point (if possible), two uncombined points (in cases where combined -// points don't exist), or the isolated accent followed by the next character typed (in cases where -// what you typed next isn't a letterform at all, e.g. you hit the space bar). You can also hit -// shift-<accent request> to just generate the uncombined accent on its own. -// -// The current accent request codes are modeled on the ones in MacOS. -// -// fn+` Grave accent (`) -// fn+e Acute accent (´) -// fn+i Circumflex (^) -// fn+u Diaresis / umlaut / trema (¨) -// fn+c Cedilla (¸) -// fn+n Tilde (˜) -// -// Together, these functions make for a nice "polyglot" keyboard: one that can easily type in a wide -// variety of languages, which is very useful for people who, well, need to type in a bunch of -// languages. -// -// The major TODOs are: -// - Add accent support for Hebrew accents. -// - Factor the code below so that the data layers are more clearly separated from the code logic, -// so that other users of this keymap can easily add whichever alphabets they need without -// having to deeply understand the implementation. Probably something similar to -// users/drashna/keyrecords/unicode.c, but I want to see if I can do some preprocessor magic -// so that we can actually have the rendered *character* sitting in the code instead of just the -// hex code point! -// -// PLATFORM MAGIC (aka, working well on both Mac and Windows) -// -// Finally, this keyboard can switch between Mac and Windows modes, changing various macro -// combinations, the Unicode mode, and the position of the ALT and GUI keys. - - -enum custom_keycodes { - // We provide special layer management keys: - // GREEK triggers the Greek (aka "Front") layer, or the SHIFTGREEK layer when shift is held. - // (Because we use Unicode, we need to implement shift-handling at the firmware level, - // rather than the OS level like we do in the QWERTY layer) - // CADET or GREEK+ALT triggers the Cadet (aka "Top") layer, or the SHIFTCADET layer when - // shift is held. - // YIDDISH triggers a keymap designed for easy Hebrew and Yiddish, based loosely on QWERTY - // layouts. - // LAYER_LOCK locks the "base" layer (i.e., QWERTY, GREEK, or CADET) to the value which is - // pressed at the moment that it is being released. When a layer lock is set, the - // analogous layer modifier key is reversed; e.g., if you lock the GREEK layer, then the - // GREEK button bounces you back to QWERTY. - // - // We also parse the shift, alt, and caps lock keys to provide management of those which is - // compatible with these various layers. - KC_GREEK = SAFE_RANGE, - KC_CADET, - KC_YIDDISH, - KC_LAYER_LOCK, - KC_PLATFORM, // Platform select - - // OS-dependent macros - KC_VC_MUTE, // Video conference mute - KC_VC_HAND, // Video conference hand-raise - KC_SCRNSHT, // Screenshot (gui-shift-S on Windows, gui-shift-4 on Mac) - - // These are the keycodes generated by the various "accent request" keystrokes. - KC_ACCENT_START, - KC_CGRV = KC_ACCENT_START, // Grave accent - KC_CAGU, // Acute accent - KC_CDIA, // Diaresis / umlaut / trema - KC_CCIR, // Circumflex - KC_CCED, // Cedilla - KC_CTIL, // Tilde - KC_ACCENT_END, -}; - -enum layers_keymap { - _QWERTY = 0, - - _FIRST_LANGUAGE_LAYER, - _YIDDISH = _FIRST_LANGUAGE_LAYER, - _SHIFTYIDDISH, - _GREEK, - _SHIFTGREEK, - _CADET, - _SHIFTCADET, - _LAST_LANGUAGE_LAYER, - - // Function goes last. - _FUNCTION = _LAST_LANGUAGE_LAYER, -}; - -// We manage our OS mode internally, and store it in a static, rather than EEPROM, bit. That's -// because it changes as we flip machines, and there's no good reason to wear out the memory. -enum os_modes { - _WINDOWS = 0, - _MAC = 1, - _OS_MODES_MAX = 2, -}; -static uint8_t os_mode = _MAC; - -// Key types matter for accent handling. If there's a pending accent request and another key is -// pressed: -// - If it's a normal key, we trigger all our magic accent handling. -// - If it's a modifier key, we do nothing and let the accent request hold until the next keypress. -// - If it's a special key, we drop the accent request but don't handle it. -enum key_types { - _NORMAL_KEY, - _MODIFIER_KEY, - _SPECIAL_KEY, -}; - -// msec to hold the platform key to trigger a switch -#define PLATFORM_HOLD_DURATION 750 - -// This is so that H(xxxx) has the same width as _______, which makes the grids more legible. -#define H(x) UC(0x##x) -#define MO_FN MO(_FUNCTION) -#define KC_LLCK KC_LAYER_LOCK - -// Values for our OS-dependent keys, as arrays keyed by OS mode. Use Meet shortcuts on Mac, Teams on Windows -const char *VC_MUTE_VALUES[_OS_MODES_MAX] = {SS_LCTL(SS_LSFT("m")), SS_LCMD("d")}; -const char *VC_HAND_VALUES[_OS_MODES_MAX] = {SS_LCTL(SS_LSFT("k")), SS_LCTL(SS_LCMD("h"))}; -const char *SCRNSHT_VALUES[_OS_MODES_MAX] = {SS_LGUI(SS_LSFT("s")), SS_LCMD(SS_LSFT("4"))}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_ESC, KC_LLCK, KC_GRAVE,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_HOME, - KC_PLATFORM, KC_MPLY, 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_PGUP, - KC_SCRNSHT, KC_YIDDISH, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN, - KC_GREEK, KC_CADET, KC_LSFT, 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_END, - KC_VC_HAND, KC_VC_MUTE, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO_FN, KC_LEFT, KC_DOWN, KC_RGHT), - - /* The Greek and Cadet layers. Tab, backspace, the nav and modifier keys, and the control block - * are always transparent. - * - * QWERTY GREEK SGREEK CADET SCADET YID SYID - * ` ׳ 05f3 ״ 05f4 - * 1 ₁ 2081 ¹ 00b9 ¡ 00a1 ¿ 00bf [transparent] - * 2 ₂ 2082 ² 00b2 « 00ab » 00bb [transparent] - * 3 ₃ 2083 ³ 00b3 £ 00a3 € 20ac [transparent] - * 4 ₄ 2084 ⁴ 2074 [transparent] - * 5 ₅ 2085 ⁵ 2075 [transparent] - * 6 ₆ 2086 ⁶ 2076 [transparent] - * 7 ₇ 2087 ⁷ 2077 [transparent] - * 8 ₈ 2088 ⁸ 2078 ° 00b0 ⊗ 2297 [transparent] - * 9 ₉ 2089 ⁹ 2079 [transparent] - * 0 ₀ 2080 ⁰ 2070 ∅ 2205 [transparent] - * - ₋ 208b ⁻ 207b ¬ 00ac ⊖ 2296 [transparent] - * = ₊ 208a ₋ 208b ≠ 2260 ⊕ 2295 [transparent] - * q θ 03b8 Θ 0398 ℚ 211a ק 05e7 - * w ω 03c9 Ω 03a9 ש 05e9 - * e ε 03b5 Ε 0395 ∃ 2203 ∄ 2204 ע 05e2 - * r ρ 03c1 Ρ 03a1 ℝ 211d ר 05e8 - * t τ 03c4 Τ 03a4 ט 05d8 תּ fb4a - * y ψ 03c8 Ψ 03a8 ∨ 2228 ∧ 2227 ײ 05f2 ײַ fb1f - * u υ 03c5 Υ 03a5 ∪ 222a ∩ 2229 ו 05d5 ױ 05f1 - * i ι 03b9 Ι 0399 ∞ 221e ℵ 2135 י 05d9 - * o ο 03bf Ο 039f ו 05d5 אָ fb2f - * p π 03c0 Π 03a0 ≡ 2261 ≢ 2262 פ 05e4 ף 05e3 - * [ ± 00b1 ∓ 2213 - * ] ≈ 2248 ≉ 2249 - * \ ∼ 223c ≁ 2241 - * a α 03b1 Α 0391 ∀ 2200 Å 212b א 05d0 אַ fb2e - * s σ 03c3 Σ 03a3 ∈ 2208 ∉ 2209 ס 05e1 ת 05ea - * d δ 03b4 Δ 0394 ⊂ 2282 ⊄ 2284 ד 05d3 - * f φ 03c6 Φ 03a6 ⊆ 2286 ⊈ 2288 פֿ fb4e - * g γ 03b3 Γ 0393 ⊇ 2287 ⊉ 2289 ג 05d2 - * h η 03b7 Η 0397 ← 2190 ⇐ 21d0 ה 05d4 - * j ϑ 03d1 ↓ 2193 ⇓ 21d3 ח 05d7 כֿ fb4d - * k κ 03ba Κ 039a ↑ 2191 ⇑ 21d1 כ 05db ך 05da - * l λ 03bb Λ 039b → 2192 ⇒ 21d2 ל 05dc - * ; … 2026 ⋯ 22ef ↔ 2194 ⇔ 21d4 - * ' · 00b7 • 2022 ∴ 2234 ⊙ 2299 - * z ζ 03b6 Ζ 0396 ℤ 2124 ז 05d6 - * x ξ 03be Ξ 039e ✘ 2718 צ 05e6 ץ 05e5 - * c χ 03c7 Χ 03a7 ℂ 2102 כ 05db ך 05da - * v ς 03c2 ✔ 2714 √ 221a װ 05f0 בֿ fb4c - * b β 03b2 Β 0392 ב 05d1 - * n ν 03bd Ν 039d ℕ 2115 נ 05e0 ן 05df - * m μ 03bc Μ 039c מ 05de ם 05dd - * , ≪ 226a ≫ 226b ∂ 2202 ∫ 222b - * . ≲ 2272 ≳ 2273 ≰ 2270 ≱ 2271 - * / ⊘ 2298 - */ - [_YIDDISH] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, H(05f3), 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, H(05e7), H(05e9), H(05e2), H(05e8), H(05d8), H(05f2), H(05d5), H(05d9), H(05d5), H(05e4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(05d0), H(05e1), H(05d3), H(fb4e), H(05d2), H(05d4), H(05d7), H(05db), H(05dc), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(05d6), H(05e6), H(05db), H(05f0), H(05d1), H(05e0), H(05de), 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), - [_SHIFTYIDDISH] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, H(05f4), 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, H(fb4a), H(fb1f), H(05f1), KC_TRNS, H(fb2f), H(05e3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(fb2e), H(05ea), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, H(fb4d), H(05da), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, H(05e5), H(05da), H(fb4c), KC_TRNS, H(05df), H(05dd), 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), - [_GREEK] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, XXXXXXX, H(2081), H(2082), H(2083), H(2084), H(2085), H(2086), H(2087), H(2088), H(2089), H(2080), H(208b), H(208a), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(03b8), H(03c9), H(03b5), H(03c1), H(03c4), H(03c8), H(03c5), H(03b9), H(03bf), H(03c0), XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(03b1), H(03c3), H(03b4), H(03c6), H(03b3), H(03b7), XXXXXXX, H(03ba), H(03bb), H(2026), H(00b7), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(03b6), H(03be), H(03c7), XXXXXXX, H(03b2), H(03bd), H(03bc), H(226a), H(2272), XXXXXXX, 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), - [_SHIFTGREEK] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, XXXXXXX, H(00b9), H(00b2), H(00b3), H(2074), H(2075), H(2076), H(2077), H(2078), H(2079), H(2070), H(207b), H(208b), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(0398), H(03a9), H(0395), H(03a1), H(03a4), H(03a8), H(03a5), H(0399), H(039f), H(03a0), XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(0391), H(03a3), H(0394), H(03a6), H(0393), H(0397), H(03d1), H(039a), H(039b), H(22ef), H(2022), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(0396), H(039e), H(03a7), H(03c2), H(0392), H(039d), H(039c), H(226b), H(2273), XXXXXXX, 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), - [_CADET] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, XXXXXXX, H(00a1), H(00ab), H(00a3), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(00b0), XXXXXXX, H(2205), H(00ac), H(2260), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(211a), XXXXXXX, H(2203), H(211d), XXXXXXX, H(2228), H(222a), H(221e), XXXXXXX, H(2261), H(00b1), H(2248), H(223c), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(2200), H(2208), H(2282), H(2286), H(2287), H(2190), H(2193), H(2191), H(2192), H(2194), H(2234), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(2124), H(2718), H(2102), H(2714), XXXXXXX, H(2115), XXXXXXX, H(2202), H(2270), XXXXXXX, 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), - [_SHIFTCADET] = LAYOUT_65_xt_ansi_blocker_tsangan( - KC_TRNS, KC_TRNS, XXXXXXX, H(00bf), H(00bb), H(20ac), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, H(2297), XXXXXXX, XXXXXXX, H(2296), H(2295), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, H(2204), XXXXXXX, XXXXXXX, H(2227), H(2229), H(2135), XXXXXXX, H(2262), H(2213), H(2249), H(2241), KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, H(212b), H(2209), H(2284), H(2288), H(2289), H(21d0), H(21d3), H(21d1), H(21d2), H(21d4), H(2299), KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, H(221a), XXXXXXX, XXXXXXX, XXXXXXX, H(222b), H(2271), H(2298), 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), - // The function layer mostly contains the accent marks, but also has a few meta-control - // operations. The accent marks are placed by analogy with Mac OS. - [_FUNCTION] = LAYOUT_65_xt_ansi_blocker_tsangan( - QK_BOOT, KC_TRNS, KC_CGRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, - KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_CAGU, XXXXXXX, XXXXXXX, XXXXXXX, KC_CDIA, KC_CCIR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - KC_TRNS, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, KC_CCED, XXXXXXX, XXXXXXX, KC_CTIL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, - KC_TRNS, KC_TRNS, KC_RCTL, KC_RGUI, KC_RALT, KC_TRNS, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX), -}; - -//////////////////////////////////////////////////////////////////////////////////////////////////// -// Accent implementation -// -// In the body of process_record_user, we store an "accent_request", which is the accent keycode if -// one was just selected, or zero otherwise. When the *next* key is hit, we look up whether the -// accent request plus that next keycode (plus the state of the shift key) together amount to an -// interesting combined (NFKC) character, and if so, emit it; otherwise, we emit the accent as a -// separate character and then process the next key normally. The resulting UI behavior is similar -// to that of the combining accent keys in MacOS. -// -// We store two arrays, depending on whether shift is or isn't held. Each is two-dimensional, with -// its outer key by the next keycode struck, and the inner key by the accent requested. The outer -// array has KC_Z + 1 as its upper bound, so that we can save memory by only coding alphabetic keys. -// The contents are either Unicode code points, or zero to indicate that we don't have a point for -// this combination. - -#define KC_NUM_ACCENTS (KC_ACCENT_END - KC_ACCENT_START) -#define KC_NUM_SLOTS (KC_Z + 1) - -const uint16_t PROGMEM unshifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = { - // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL - [KC_A] = { 0x00e0, 0x00e1, 0x00e4, 0x00e2, 0, 0x00e3 }, - [KC_E] = { 0x00e8, 0x00e9, 0x00eb, 0x00ea, 0, 0 }, - [KC_I] = { 0x00ec, 0x00ed, 0x00ef, 0x00ee, 0, 0 }, - [KC_O] = { 0x00f2, 0x00f3, 0x00f6, 0x00f4, 0, 0x00f5 }, - [KC_U] = { 0x00f9, 0x00fa, 0x00fc, 0x00fb, 0, 0 }, - [KC_Y] = { 0, 0, 0x00ff, 0, 0, 0 }, - [KC_N] = { 0, 0, 0, 0, 0, 0x00f1 }, - [KC_C] = { 0, 0, 0, 0, 0x00e7, 0 }, -}; - -const uint16_t PROGMEM shifted_accents[KC_NUM_SLOTS][KC_NUM_ACCENTS] = { - // KC_CGRV, KC_CAGU, KC_CDIA, KC_CCIR, KC_CCED, KC_CTIL - [KC_A] = { 0x00c0, 0x00c1, 0x00c4, 0x00c2, 0, 0x00c3 }, - [KC_E] = { 0x00c8, 0x00c9, 0x00cb, 0x00ca, 0, 0 }, - [KC_I] = { 0x00cc, 0x00cd, 0x00cf, 0x00ce, 0, 0 }, - [KC_O] = { 0x00d2, 0x00d3, 0x00d6, 0x00d4, 0, 0x00d5 }, - [KC_U] = { 0x00d9, 0x00da, 0x00dc, 0x00db, 0, 0 }, - [KC_Y] = { 0, 0, 0x00df, 0, 0, 0 }, - [KC_N] = { 0, 0, 0, 0, 0, 0x00d1 }, - [KC_C] = { 0, 0, 0, 0, 0x00c7, 0 }, -}; - -// The uncombined and combined forms of the accents, for when we want to emit them as single -// characters. -const uint16_t PROGMEM uncombined_accents[KC_NUM_ACCENTS] = { - [KC_CGRV - KC_ACCENT_START] = 0x0060, - [KC_CAGU - KC_ACCENT_START] = 0x00b4, - [KC_CDIA - KC_ACCENT_START] = 0x00a8, - [KC_CCIR - KC_ACCENT_START] = 0x005e, - [KC_CCED - KC_ACCENT_START] = 0x00b8, - [KC_CTIL - KC_ACCENT_START] = 0x02dc, -}; - -const uint16_t PROGMEM combined_accents[KC_NUM_ACCENTS] = { - [KC_CGRV - KC_ACCENT_START] = 0x0300, - [KC_CAGU - KC_ACCENT_START] = 0x0301, - [KC_CDIA - KC_ACCENT_START] = 0x0308, - [KC_CCIR - KC_ACCENT_START] = 0x0302, - [KC_CCED - KC_ACCENT_START] = 0x0327, - [KC_CTIL - KC_ACCENT_START] = 0x0303, -}; - -// This function manages keypresses that happen after an accent has been selected by an earlier -// keypress. -// Args: -// accent_key: The accent key which was earlier selected. This must be in the range -// [KC_ACCENT_START, KC_ACCENT_END). -// keycode: The keycode which was just pressed. -// is_shifted: The current shift state (as set by a combination of shift and caps lock) -// -// Returns true if the keycode has been completely handled by this function (and so should not be -// processed further by process_record_user) or false otherwise. -bool process_key_after_accent( - uint16_t accent_key, - uint16_t keycode, - bool is_shifted -) { - assert(accent_key >= KC_ACCENT_START); - assert(accent_key < KC_ACCENT_END); - const int accent_index = accent_key - KC_ACCENT_START; - - // If the keycode is outside A..Z, we know we shouldn't even bother with a table lookup. - if (keycode <= KC_Z) { - // Pick the correct array. Because this is progmem, we're going to need to do the - // two-dimensional array indexing by hand, and so we just cast it to a single-dimensional array. - const uint16_t *points = (const uint16_t*)(is_shifted ? shifted_accents : unshifted_accents); - const uint16_t code_point = pgm_read_word(points + KC_NUM_ACCENTS * keycode + accent_index); - if (code_point) { - register_unicode(code_point); - return true; - } - } - - // If we get here, there was no accent match. Emit the accent as its own character (i.e. a - // Unicode combining accent mark) and return false so that process_record_user also registers - // whatever is appropriate for the keycode after that. The host can figure out what to do with - // combining Unicode. - register_unicode(pgm_read_word(uncombined_accents + accent_index)); - return false; -} - -// This is a bitmask which selects the activation bits for layers *other* than our language -// selectors. -#define NON_LANGUAGE_LAYERS ~(((1UL << _LAST_LANGUAGE_LAYER) - 1) - ((1UL << _FIRST_LANGUAGE_LAYER) - 1)) - -// Update the current layer state and return the layer we're in. -uint8_t update_layer( - uint8_t layer_lock, - uint8_t layer_select_held, - bool shifted -) { - uint8_t current_layer = layer_lock; - layer_state_t language_layers = 0; - - // If there's a layer select being held right now, then it updates the current layer. - // (If it's the layer select for the currently locked layer, then instead it's a toggle - // back to _QWERTY!) - if (layer_select_held != _QWERTY) { - current_layer = (layer_lock == layer_select_held ? _QWERTY : layer_select_held); - } - - language_layers |= (1UL << current_layer); - - // If we're shifted (with either shift or caps lock), and we're in one of our special - // layers, bump up to the SHIFTED version of that layer. We don't do this for QWERTY; - // there we just emit USB HID codes and let the host deal with shift. - if (shifted && current_layer != _QWERTY) { - ++current_layer; - language_layers |= (1UL << current_layer); - } - - // Update the QMK layer state by stomping just the language layer bits. - const layer_state_t new_layer_state = (layer_state & NON_LANGUAGE_LAYERS) | language_layers; - if (new_layer_state != layer_state) { - layer_state_set(new_layer_state); - } - - return current_layer; -} - -void set_os_mode(uint8_t new_mode) { - os_mode = new_mode; - // NB: We set unicode_config.input_mode directly, rather than calling - // set_unicode_input_mode, because we don't want to persist this and so we shouldn't put - // extra load on the EEPROMs. - unicode_config.input_mode = (os_mode == _MAC ? UNICODE_MODE_MACOS : UNICODE_MODE_WINCOMPOSE); - // Swap LALT and LGUI depending on Mac/Windows. - keymap_config.swap_lalt_lgui = (os_mode == _MAC); - // This would be a great moment for some auditory or visual feedback, but this keyboard - // doesn't support it. :( -} - -void toggle_os_mode(void) { - set_os_mode((os_mode + 1) % _OS_MODES_MAX); -} - -void keyboard_post_init_user(void) { - set_os_mode(_WINDOWS); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - // We track these persistent globals and manage them on our own, rather than trying to rely on - // get_mods or the like, because this function is called *before* that's updated! - static bool shift_held = false; - static bool alt_held = false; - static bool ctrl_held = false; - static bool super_held = false; - - // These are where we remember the values of lock states. - static bool shift_lock = false; - static uint8_t layer_lock = _QWERTY; // The currently locked layer - static uint8_t next_layer_lock = _QWERTY; // Used when layer_lock is held - // Which layer select key is currently being held down. _QWERTY is equivalent to "none." - static uint8_t layer_select_held = _QWERTY; - - // When the hold on the platform key started - static uint16_t platform_hold_start = 0; - - // The accent request, or zero if there isn't one. - static uint16_t accent_request = 0; - - // What kind of key we're striking right now, so that we know what to do if any accent requests - // are hanging around. - uint8_t key_type = _NORMAL_KEY; - - // The layer selection and locking logic is: - // * By default, the current layer is given by saved value layer_lock. - // * If a layer select key is held down, we update the current layer to that value. - // (But special thing: If the current layer lock is <layer> and you hit the select key - // for <layer>, it instead toggles the current layer back to _QWERTY! That way you can - // insert some QWERTY keys in the midst of other-layer text.) - // * If the KC_LAYER_LOCK key is held down and a layer select key gets pressed, we update - // next_layer_lock to that selected layer. When KC_LAYER_LOCK is released, we update - // layer_lock to next_layer_lock. Note that that simply tapping KC_LAYER_LOCK resets - // layer_lock to _QWERTY. - // * After all of this is done, we check if shift is held (via either shift or caps lock); - // if it is, and our current layer isn't _QWERTY, then we bump the current layer ID by 1 - // to get the shifted layer. - - // Step 1: Process various interesting keycodes, especially ones that update our running - // state variables. - switch (keycode) { - // Monitoring the modifier keys, because we'll need them for our logic! - case KC_LSFT: - case KC_RSFT: - shift_held = record->event.pressed; - key_type = _MODIFIER_KEY; - break; - case KC_CAPS: - // If we're in QWERTY mode, caps lock is already going to be managed by the host OS, but by - // tracking it ourselves we can also usefully apply it to the GREEK and CADET layers. - shift_lock = !shift_lock; - key_type = _MODIFIER_KEY; - break; - case KC_LALT: - case KC_RALT: - alt_held = record->event.pressed; - key_type = _MODIFIER_KEY; - break; - case KC_LCTL: - case KC_RCTL: - ctrl_held = record->event.pressed; - key_type = _MODIFIER_KEY; - break; - case KC_LGUI: - case KC_RGUI: - super_held = record->event.pressed; - key_type = _MODIFIER_KEY; - break; - - case KC_LAYER_LOCK: - if (record->event.pressed) { - // On press, get ready for a layer selection. - next_layer_lock = _QWERTY; - } else { - // On release, propagate next_layer_lock to layer_lock. - layer_lock = next_layer_lock; - } - key_type = _MODIFIER_KEY; - break; - - // Layer selectors - case KC_GREEK: - if (record->event.pressed) { - layer_select_held = _GREEK; - next_layer_lock = _GREEK; - } else { - layer_select_held = _QWERTY; - } - key_type = _MODIFIER_KEY; - break; - case KC_CADET: - if (record->event.pressed) { - layer_select_held = _CADET; - next_layer_lock = _CADET; - } else { - layer_select_held = _QWERTY; - } - key_type = _MODIFIER_KEY; - break; - case KC_YIDDISH: - if (record->event.pressed) { - layer_select_held = _YIDDISH; - next_layer_lock = _YIDDISH; - } else { - layer_select_held = _QWERTY; - } - key_type = _MODIFIER_KEY; - break; - - // Accent selectors - case KC_CGRV: - case KC_CAGU: - case KC_CDIA: - case KC_CCIR: - case KC_CCED: - case KC_CTIL: - // The accent request keys normally update accent_request (whose effect will trigger the next - // time we see a "normal" key pressed). However, shift+accent request will instead immediately - // generate the Unicode combining accent symbol instead. - if (shift_held) { - register_unicode(pgm_read_word(combined_accents + keycode - KC_ACCENT_START)); - return false; - } else { - accent_request = keycode; - } - key_type = _MODIFIER_KEY; - break; - - // Our special keycodes - case KC_PLATFORM: - if (record->event.pressed) { - platform_hold_start = record->event.time; - } else if (platform_hold_start != 0 && record->event.time - platform_hold_start > PLATFORM_HOLD_DURATION) { - toggle_os_mode(); - } - key_type = _SPECIAL_KEY; - return true; - - case KC_VC_MUTE: - if (record->event.pressed) { - send_string(VC_MUTE_VALUES[os_mode]); - return true; - } - key_type = _SPECIAL_KEY; - break; - - case KC_VC_HAND: - if (record->event.pressed) { - send_string(VC_HAND_VALUES[os_mode]); - return true; - } - key_type = _SPECIAL_KEY; - break; - - case KC_SCRNSHT: - if (record->event.pressed) { - send_string(SCRNSHT_VALUES[os_mode]); - return true; - } - key_type = _SPECIAL_KEY; - break; - - case QK_BOOT: - key_type = _SPECIAL_KEY; - break; - } - - // Step 2: Finalize current_layer and update the QMK layer state. - const bool shifted = (shift_held != shift_lock); - const uint8_t current_layer = update_layer(layer_lock, layer_select_held, shifted); - - // Step 3: Handle accents. - bool handled = false; - if (accent_request && record->event.pressed) { - // If we're in any layer other than _QWERTY, or a modifier key is being held down, - // then we're actually generating a special key, not a normal one. - if (key_type == _NORMAL_KEY && - (current_layer != _QWERTY || ctrl_held || super_held || alt_held)) { - key_type = _SPECIAL_KEY; - } - - switch (key_type) { - case _NORMAL_KEY: - handled = process_key_after_accent(accent_request, keycode, shifted); - accent_request = 0; - break; - - case _SPECIAL_KEY: - accent_request = 0; - break; - - case _MODIFIER_KEY: - break; - } - } - - return !handled; -} diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md deleted file mode 100644 index fe1264a085..0000000000 --- a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -* A polyglot keymap for the RamaWorks Zenith -* Author: Yonatan Zunger (zunger@gmail.com) - -This keyboard is designed to make it easy to type a wide range of symbols and a wide range of -alphabets, without relying on the host OS, because... host OS's aren't fantastic at a lot of -things. - -See the keymap file for most of the documentation, in the form of comments; this is still in -development! diff --git a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk b/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk deleted file mode 100644 index a61cfa33fa..0000000000 --- a/keyboards/wilba_tech/wt65_xt/keymaps/zunger/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# You need Unicode for this map. -UNICODE_ENABLE = yes # Unicode diff --git a/keyboards/wilba_tech/wt75_a/rules.mk b/keyboards/wilba_tech/wt75_a/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt75_a/rules.mk +++ b/keyboards/wilba_tech/wt75_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt75_a/wt75_a.c b/keyboards/wilba_tech/wt75_a/wt75_a.c new file mode 100644 index 0000000000..8b64397b95 --- /dev/null +++ b/keyboards/wilba_tech/wt75_a/wt75_a.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT75_A) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT75_A) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt75_b/rules.mk b/keyboards/wilba_tech/wt75_b/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt75_b/rules.mk +++ b/keyboards/wilba_tech/wt75_b/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt75_b/wt75_b.c b/keyboards/wilba_tech/wt75_b/wt75_b.c new file mode 100644 index 0000000000..9095bf5d6f --- /dev/null +++ b/keyboards/wilba_tech/wt75_b/wt75_b.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT75_B) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT75_B) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt75_c/rules.mk b/keyboards/wilba_tech/wt75_c/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt75_c/rules.mk +++ b/keyboards/wilba_tech/wt75_c/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt75_c/wt75_c.c b/keyboards/wilba_tech/wt75_c/wt75_c.c new file mode 100644 index 0000000000..c3446b2af6 --- /dev/null +++ b/keyboards/wilba_tech/wt75_c/wt75_c.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT75_C) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT75_C) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt80_a/rules.mk b/keyboards/wilba_tech/wt80_a/rules.mk index 9ca8e8f973..f7482c7a2f 100644 --- a/keyboards/wilba_tech/wt80_a/rules.mk +++ b/keyboards/wilba_tech/wt80_a/rules.mk @@ -11,7 +11,7 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality AUDIO_ENABLE = no # Audio output # project specific files -SRC = drivers/led/issi/is31fl3736-simple.c \ +SRC = drivers/led/issi/is31fl3736-mono.c \ quantum/color.c \ keyboards/wilba_tech/wt_mono_backlight.c \ keyboards/wilba_tech/wt_main.c diff --git a/keyboards/wilba_tech/wt80_a/wt80_a.c b/keyboards/wilba_tech/wt80_a/wt80_a.c new file mode 100644 index 0000000000..cf29760b62 --- /dev/null +++ b/keyboards/wilba_tech/wt80_a/wt80_a.c @@ -0,0 +1,120 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +#if defined(MONO_BACKLIGHT_WT80_A) +# include "drivers/led/issi/is31fl3736-mono.h" +#endif + +#if defined(LED_MATRIX_ENABLE) || defined(MONO_BACKLIGHT_WT80_A) +const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { + {0, A_1}, + {0, A_2}, + {0, A_3}, + {0, A_4}, + {0, A_5}, + {0, A_6}, + {0, A_7}, + {0, A_8}, + + {0, B_1}, + {0, B_2}, + {0, B_3}, + {0, B_4}, + {0, B_5}, + {0, B_6}, + {0, B_7}, + {0, B_8}, + + {0, C_1}, + {0, C_2}, + {0, C_3}, + {0, C_4}, + {0, C_5}, + {0, C_6}, + {0, C_7}, + {0, C_8}, + + {0, D_1}, + {0, D_2}, + {0, D_3}, + {0, D_4}, + {0, D_5}, + {0, D_6}, + {0, D_7}, + {0, D_8}, + + {0, E_1}, + {0, E_2}, + {0, E_3}, + {0, E_4}, + {0, E_5}, + {0, E_6}, + {0, E_7}, + {0, E_8}, + + {0, F_1}, + {0, F_2}, + {0, F_3}, + {0, F_4}, + {0, F_5}, + {0, F_6}, + {0, F_7}, + {0, F_8}, + + {0, G_1}, + {0, G_2}, + {0, G_3}, + {0, G_4}, + {0, G_5}, + {0, G_6}, + {0, G_7}, + {0, G_8}, + + {0, H_1}, + {0, H_2}, + {0, H_3}, + {0, H_4}, + {0, H_5}, + {0, H_6}, + {0, H_7}, + {0, H_8}, + + {0, I_1}, + {0, I_2}, + {0, I_3}, + {0, I_4}, + {0, I_5}, + {0, I_6}, + {0, I_7}, + {0, I_8}, + + {0, J_1}, + {0, J_2}, + {0, J_3}, + {0, J_4}, + {0, J_5}, + {0, J_6}, + {0, J_7}, + {0, J_8}, + + {0, K_1}, + {0, K_2}, + {0, K_3}, + {0, K_4}, + {0, K_5}, + {0, K_6}, + {0, K_7}, + {0, K_8}, + + {0, L_1}, + {0, L_2}, + {0, L_3}, + {0, L_4}, + {0, L_5}, + {0, L_6}, + {0, L_7}, + {0, L_8} +}; +#endif diff --git a/keyboards/wilba_tech/wt_mono_backlight.c b/keyboards/wilba_tech/wt_mono_backlight.c index e218f0af4b..1523fbdb85 100644 --- a/keyboards/wilba_tech/wt_mono_backlight.c +++ b/keyboards/wilba_tech/wt_mono_backlight.c @@ -33,7 +33,7 @@ #error VIA_EEPROM_CUSTOM_CONFIG_SIZE was not defined to store backlight_config struct #endif -#include "drivers/led/issi/is31fl3736-simple.h" +#include "drivers/led/issi/is31fl3736-mono.h" #define BACKLIGHT_EFFECT_MAX 3 @@ -50,116 +50,6 @@ backlight_config g_config = { .color_1 = MONO_BACKLIGHT_COLOR_1, }; -const is31fl3736_led_t PROGMEM g_is31fl3736_leds[IS31FL3736_LED_COUNT] = { - {0, A_1}, - {0, A_2}, - {0, A_3}, - {0, A_4}, - {0, A_5}, - {0, A_6}, - {0, A_7}, - {0, A_8}, - - {0, B_1}, - {0, B_2}, - {0, B_3}, - {0, B_4}, - {0, B_5}, - {0, B_6}, - {0, B_7}, - {0, B_8}, - - {0, C_1}, - {0, C_2}, - {0, C_3}, - {0, C_4}, - {0, C_5}, - {0, C_6}, - {0, C_7}, - {0, C_8}, - - {0, D_1}, - {0, D_2}, - {0, D_3}, - {0, D_4}, - {0, D_5}, - {0, D_6}, - {0, D_7}, - {0, D_8}, - - {0, E_1}, - {0, E_2}, - {0, E_3}, - {0, E_4}, - {0, E_5}, - {0, E_6}, - {0, E_7}, - {0, E_8}, - - {0, F_1}, - {0, F_2}, - {0, F_3}, - {0, F_4}, - {0, F_5}, - {0, F_6}, - {0, F_7}, - {0, F_8}, - - {0, G_1}, - {0, G_2}, - {0, G_3}, - {0, G_4}, - {0, G_5}, - {0, G_6}, - {0, G_7}, - {0, G_8}, - - {0, H_1}, - {0, H_2}, - {0, H_3}, - {0, H_4}, - {0, H_5}, - {0, H_6}, - {0, H_7}, - {0, H_8}, - - {0, I_1}, - {0, I_2}, - {0, I_3}, - {0, I_4}, - {0, I_5}, - {0, I_6}, - {0, I_7}, - {0, I_8}, - - {0, J_1}, - {0, J_2}, - {0, J_3}, - {0, J_4}, - {0, J_5}, - {0, J_6}, - {0, J_7}, - {0, J_8}, - - {0, K_1}, - {0, K_2}, - {0, K_3}, - {0, K_4}, - {0, K_5}, - {0, K_6}, - {0, K_7}, - {0, K_8}, - - {0, L_1}, - {0, L_2}, - {0, L_3}, - {0, L_4}, - {0, L_5}, - {0, L_6}, - {0, L_7}, - {0, L_8} -}; - bool g_suspend_state = false; // Global tick at 20 Hz diff --git a/keyboards/wilba_tech/wt_rgb_backlight.c b/keyboards/wilba_tech/wt_rgb_backlight.c index 72ddb34ee7..cf36288705 100644 --- a/keyboards/wilba_tech/wt_rgb_backlight.c +++ b/keyboards/wilba_tech/wt_rgb_backlight.c @@ -980,34 +980,34 @@ void backlight_update_pwm_buffers(void) #if defined(RGB_BACKLIGHT_M6_B) is31fl3218_update_pwm_buffers(); #elif defined(RGB_BACKLIGHT_PORTICO75) - is31fl3741_update_pwm_buffers( IS31FL3741_I2C_ADDRESS_1, 0 ); - is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 ); + is31fl3741_update_pwm_buffers( 0 ); + is31fl3741_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_M10_C) - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_pwm_buffers( 0 ); + is31fl3731_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_HS60) - is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_pwm_buffers( 0 ); + is31fl3733_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_NK65) || defined(RGB_BACKLIGHT_NEBULA68) || defined(RGB_BACKLIGHT_NK87) || defined(RGB_BACKLIGHT_KW_MEGA) - is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_pwm_buffers( IS31FL3733_I2C_ADDRESS_2, 1 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_pwm_buffers( 0 ); + is31fl3733_update_pwm_buffers( 1 ); + is31fl3733_update_led_control_registers( 0 ); + is31fl3733_update_led_control_registers( 1 ); #elif defined(RGB_BACKLIGHT_NEBULA12) - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_pwm_buffers( 0 ); + is31fl3731_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_U80_A) static uint8_t driver = 0; switch ( driver ) { case 0: - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_pwm_buffers( 0 ); break; case 1: - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 ); + is31fl3731_update_pwm_buffers( 1 ); break; case 2: - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_3, 2 ); + is31fl3731_update_pwm_buffers( 2 ); break; } if ( ++driver > 2 ) @@ -1015,10 +1015,10 @@ void backlight_update_pwm_buffers(void) driver = 0; } #else - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_1, 0 ); - is31fl3731_update_pwm_buffers( IS31FL3731_I2C_ADDRESS_2, 1 ); - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 ); + is31fl3731_update_pwm_buffers( 0 ); + is31fl3731_update_pwm_buffers( 1 ); + is31fl3731_update_led_control_registers( 0 ); + is31fl3731_update_led_control_registers( 1 ); #endif } @@ -2134,7 +2134,7 @@ void backlight_init_drivers(void) // This actually updates the LED drivers is31fl3218_update_led_control_registers(); #elif defined(RGB_BACKLIGHT_HS60) - is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); + is31fl3733_init( 0 ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2153,10 +2153,10 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); + is31fl3733_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_NK65) - is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( 0 ); + is31fl3733_init( 1 ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2167,11 +2167,11 @@ void backlight_init_drivers(void) } is31fl3733_set_led_control_register( 7+64-1, 0, 1, 0 ); //Enable LB7 green enable for indicators // This actually updates the LED drivers - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_led_control_registers( 0 ); + is31fl3733_update_led_control_registers( 1 ); #elif defined(RGB_BACKLIGHT_NK87) - is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( 0 ); + is31fl3733_init( 1 ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2197,11 +2197,11 @@ void backlight_init_drivers(void) } is31fl3733_set_led_control_register( 48+64-1, 0, 0, 1 ); //Enable LB48 blue enable for indicators // This actually updates the LED drivers - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_led_control_registers( 0 ); + is31fl3733_update_led_control_registers( 1 ); #elif defined(RGB_BACKLIGHT_NEBULA68) - is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( 0 ); + is31fl3733_init( 1 ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2211,20 +2211,20 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_led_control_registers( 0 ); + is31fl3733_update_led_control_registers( 1 ); #elif defined(RGB_BACKLIGHT_PORTICO75) - is31fl3741_init( IS31FL3741_I2C_ADDRESS_1 ); + is31fl3741_init( 0 ); bool enabled = true; for ( int index = 0; index < IS31FL3741_LED_COUNT; index++ ) { is31fl3741_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3741_update_led_control_registers( IS31FL3741_I2C_ADDRESS_1, 0 ); + is31fl3741_update_led_control_registers( 0 ); #elif defined(RGB_BACKLIGHT_KW_MEGA) - is31fl3733_init( IS31FL3733_I2C_ADDRESS_1, IS31FL3733_SYNC_NONE ); - is31fl3733_init( IS31FL3733_I2C_ADDRESS_2, IS31FL3733_SYNC_NONE ); + is31fl3733_init( 0 ); + is31fl3733_init( 1 ); for ( int index = 0; index < IS31FL3733_LED_COUNT; index++ ) { @@ -2234,18 +2234,18 @@ void backlight_init_drivers(void) is31fl3733_set_led_control_register( index, enabled, enabled, enabled ); } // This actually updates the LED drivers - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_1, 0 ); - is31fl3733_update_led_control_registers( IS31FL3733_I2C_ADDRESS_2, 1 ); + is31fl3733_update_led_control_registers( 0 ); + is31fl3733_update_led_control_registers( 1 ); #else // Init the #1 driver - is31fl3731_init( IS31FL3731_I2C_ADDRESS_1 ); + is31fl3731_init( 0 ); // Init the #2 driver (if used) #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - is31fl3731_init( IS31FL3731_I2C_ADDRESS_2 ); + is31fl3731_init( 1 ); #endif // Init the #3 driver (if used) #if defined(RGB_BACKLIGHT_U80_A) - is31fl3731_init( IS31FL3731_I2C_ADDRESS_3 ); + is31fl3731_init( 2 ); #endif // Experimental feature, not in configuration yet @@ -2378,12 +2378,12 @@ void backlight_init_drivers(void) } // This actually updates the LED drivers // TODO: refactor this to use DRIVER_COUNT - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_1, 0 ); + is31fl3731_update_led_control_registers( 0 ); #if !defined(RGB_BACKLIGHT_NEBULA12) && !defined(RGB_BACKLIGHT_M10_C) - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_2, 1 ); + is31fl3731_update_led_control_registers( 1 ); #endif #if defined(RGB_BACKLIGHT_U80_A) - is31fl3731_update_led_control_registers( IS31FL3731_I2C_ADDRESS_3, 2 ); + is31fl3731_update_led_control_registers( 2 ); #endif #endif diff --git a/keyboards/wilba_tech/zeal60/keymaps/tusing/README.md b/keyboards/wilba_tech/zeal60/keymaps/tusing/README.md deleted file mode 100644 index 1fbd745742..0000000000 --- a/keyboards/wilba_tech/zeal60/keymaps/tusing/README.md +++ /dev/null @@ -1,79 +0,0 @@ -# RGB Underglow Strip on the Zeal60: A Guide - -<img src="https://i.imgur.com/UuUdOCb.jpg" width="800"> - -## Requirements - -- WS2812B RGB strip, preferably 60 LEDs/meter -- Wire, solder -- Tape, hot glue, or some sort of adhesive - -## A. Connecting the strip -You might find the [**full PCB image**](https://cdn.shopify.com/s/files/1/0490/7329/files/zeal60jumpers.png) helpful. Ignore the red boxes! - -1. Connect V+ to the receiving end of the thermistor labeled F1; connect GND to the board's GND pin. (*Avoid connecting +V to the board's +5V pin* - you will likely overload the thermistor, and you will limit your maximum brightness.) - - <img src="https://i.imgur.com/jd7qivh.png" width="300"> - -2. Connect DI to PB0. - - <img src="https://i.imgur.com/BiMyMLv.jpg" width="300"> - -3. Should look something like this when finished: - - <img src="https://i.imgur.com/ngxYMuA.jpg" width="600"> - -*Optional:* To allow considerably more light to escape, consider angling the strip outwards by using some sort of fulcrum under the strip. (I used a thick wire.) - -## B. Enabling the strip -1. If it is not present already, add the following to your ***keymap's*** ```Makefile```: - - ```Makefile - RGBLIGHT_ENABLE = yes - AUDIO_ENABLE = no #Underglow animations cannot be used with audio. - ``` -2. If it is not present already, add the following to your *keymap's* ```config.h```, and edit the values as necessary: - - ```c - // Set up RGB underglow. - #define WS2812_DI_PIN B0 // The pin your RGB strip is wired to - #define RGBLED_NUM 35 // Number of LEDs - #define RGBLIGHT_HUE_STEP 5 // How much each press of rgb_hue changes hue - #define RGBLIGHT_SAT_STEP 10 // How much each press of rgb_sat changes sat - #define RGBLIGHT_VAL_STEP 10 // How much each press of rgb_val changes val - ``` -3. If they are not present already, add the following keycodes to your keymap to control the RGB strip: ```RGB_TOG``` (on/off), ```RGB_MOD``` (step through modes), ```RGB_HUI```, ```RGB_HUD```, ```RGB_SAI```, ```RGB_SAD```, ```RGB_VAI```, ```RGB_VAD``` (HSV increase/decrease). Add these to your keymap. - -## C. Dealing with current limits -USB 2.0 ports on laptops provide up to 500mA max, but USB 3.0 ports can provide up to 900mA; USB 3.1 up to 1.5A; and powered USB hubs even more. We can run our keyboard at a higher brightness if we draw more power. **The Zeal60 uses 500mA at max brightness.** This means that **you have about 400mA remaining for the strip to use on a USB 3.0 port**; 1000mA free on a USB 3.1 port, so on and so forth. - -***Warning:*** **This means you will need to turn *off* your RGB strip before connecting to a USB 2.0 port**, as USB 2.0 cannot sustain the current necessary! - -1. If not present already, add the following to your keymap's ```config.h```. Change the numbers based on your needs. The ones below are safe underestimates. - - ```c - // Enable current limiting for RGB underglow. - #define RGBSTRIP_CURRENT_LIMIT 400 // Strip current limit in mA. (USB amperage - 500mA for keyboard) - #define RGBSTRIP_MAX_CURRENT_PER_LIGHT 50 // mA per light when at max brightness. - ``` - *Example:* I use a USB port capable of providing 1800 mA. The keyboard uses 500mA, so my personal value (in the `tusing` keymap) for `RGBSTRIP_CURRENT_LIMIT` is 1300. The particular WS2812B RGB strip I have uses a maximum of 60 mA per LED, so that is my personal value for `RGBSTRIP_MAX_CURRENT_PER_LIGHT`. -2. Toggle on the LED strip (```RGB_TOG```) and step through animations (```RGB_MOD```) to test it out! - -## D. Sources and resources -### A. Connecting the strip. -* [In-depth description of connecting an RGB strip to the GH60](https://www.reddit.com/r/MechanicalKeyboards/comments/4d5or2/my_first_custom_build_satan_gh60_rbg_underglow_in/d1nz3o7/) -* [32U4 Pinout](https://40.media.tumblr.com/93b6bbd4113418c2b45459bb177e67c5/tumblr_mi49a20QMB1s5t695o1_1280.png) -* [Redditor describes connecting RGB strips on his Satan GH60](https://www.reddit.com/r/MechanicalKeyboards/comments/4hbjw4/finally_finished_my_satan_gh60_also_granite_o/d2qn8zx/?context=3) -* [Another Redditor on RGB with the Satan GH60](https://www.reddit.com/r/MechanicalKeyboards/comments/4ewzdx/gh60_satan_with_the_rgb_mod/d251uu6/ ) - -### B. Enabling the strip. -* [QMK Wiki portion on underglow](https://github.com/jackhumbert/qmk_firmware/wiki#rgb-under-glow-mod) -* [Planck ```Makefile```, ```config.h```, and ```keymap.c``` config example](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/planck/keymaps/yang) -* [Video demonstrating keycode functions and RGB modes on a KC60](https://www.youtube.com/watch?v=VKrpPAHlisY) - -### C. Dealing with current limits. -* [Discussion of cutting jumpers and adding resistors to lower current from Zeal60](https://www.reddit.com/r/MechanicalKeyboards/comments/5hou92/photos_zeal60_lets_just_say_santa_came_early_this/db23qid/) -* [A selection of 900mA-1.5A current hold fuses - look for an SMD 0805-sized fuse.](https://goo.gl/748avG) -* [Video detailing technique to solder 0805 resistors](https://www.youtube.com/watch?v=PU7wLcuqc-I&t=123s&list=FLheMlKEVQ5cmVXazUt6HrxQ&index=2) -* [QMK feature request to implement max power draw limits in ```config.h```](https://github.com/jackhumbert/qmk_firmware/issues/954) -* [Commit enabling max power draw limits in ```config.h```](https://github.com/jackhumbert/qmk_firmware/commit/83e613ad239459582ae28f78b6c81535b9b138d7) diff --git a/keyboards/wilba_tech/zeal60/keymaps/tusing/config.h b/keyboards/wilba_tech/zeal60/keymaps/tusing/config.h deleted file mode 100644 index e797f81941..0000000000 --- a/keyboards/wilba_tech/zeal60/keymaps/tusing/config.h +++ /dev/null @@ -1,45 +0,0 @@ -#pragma once - -/* Enable/disable LEDs based on layout. */ -#undef RGB_BACKLIGHT_USE_SPLIT_BACKSPACE -#define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 - -#undef RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT -#define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 - -#undef RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT -#define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 - -#undef RGB_BACKLIGHT_USE_7U_SPACEBAR -#define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 - -#undef RGB_BACKLIGHT_USE_ISO_ENTER -#define RGB_BACKLIGHT_USE_ISO_ENTER 0 - -#undef RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS -#define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 - -// Set up RGB underglow. -#define WS2812_DI_PIN B0 // The pin your RGB strip is wired to -#define RGBLIGHT_EFFECT_BREATHING -#define RGBLIGHT_EFFECT_RAINBOW_MOOD -#define RGBLIGHT_EFFECT_RAINBOW_SWIRL -#define RGBLIGHT_EFFECT_SNAKE -#define RGBLIGHT_EFFECT_KNIGHT -#define RGBLIGHT_EFFECT_CHRISTMAS -#define RGBLIGHT_EFFECT_STATIC_GRADIENT -#define RGBLIGHT_EFFECT_RGB_TEST -#define RGBLIGHT_EFFECT_ALTERNATING -#define RGBLIGHT_EFFECT_TWINKLE -#define RGBLED_NUM 35 // Number of LEDs -#define RGBLIGHT_HUE_STEP 5 // How much each press of rgb_hue changes hue -#define RGBLIGHT_SAT_STEP 10 // How much each press of rgb_sat changes sat -#define RGBLIGHT_VAL_STEP 10 // How much each press of rgb_val changes val - -// Enable current limiting for RGB underglow. -#define RGBSTRIP_CURRENT_LIMIT 1300 // Strip current limit in mA. (USB amperage - 500mA for keyboard) -#define RGBSTRIP_MAX_CURRENT_PER_LIGHT 40 // mA per light when at max brightness. - -// Scale brightnes according to BRIGHTNESS_CORRECTION_TABLE in quantum/rgblight.c. -// This allows to mitigate uneven brightness from LED underglow strips. -// #define LED_BRIGHTNESS_CORRECTION diff --git a/keyboards/wilba_tech/zeal60/keymaps/tusing/keymap.c b/keyboards/wilba_tech/zeal60/keymaps/tusing/keymap.c deleted file mode 100644 index 21cb2cd73f..0000000000 --- a/keyboards/wilba_tech/zeal60/keymaps/tusing/keymap.c +++ /dev/null @@ -1,48 +0,0 @@ -// Default layout for Zeal60 -#include QMK_KEYBOARD_H - -// For readability. -#define _x_ KC_NO -#define AUD_PRV LCTL(KC_MPRV) // Previous music track -#define AUD_PLY LCTL(KC_MPLY) // Pause music -#define AUD_NXT LCTL(KC_MNXT) // Next music track - -// Zeal60-specific keys: -// EF_INC, EF_DEC, // next/previous backlight effect -// H1_INC, H1_DEC, // Color 1 hue increase/decrease -// S1_INC, S1_DEC, // Color 1 saturation increase/decrease -// H2_INC, H2_DEC, // Color 2 hue increase/decrease -// S2_INC, S2_DEC, // Color 2 saturation increase/decrease -// BR_INC, BR_DEC, // backlight brightness increase/decrease - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -// Default layer: Pressing caps-lock momentarily switches to Layer 1. -// This is the default layer. Pressing an empty keycode on another layer will take you here. - [0] = { - {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_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}, - {MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, _x_ }, - {KC_LSFT, _x_ , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _x_ }, - {KC_LCTL, KC_LGUI, KC_LALT, _x_ , _x_ , _x_ , _x_ , KC_SPC, _x_ , _x_ , KC_LEFT, KC_UP, KC_DOWN, KC_RGHT} - }, - -// Layer 1: Pressing enter switches to layer 2, where backlight controls live. -// This is a momentary layer: once you let go of caps, you'll be back in layer 1. - [1] = { - {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_DEL }, - {_______, KC_VOLD, KC_MUTE, KC_VOLU, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, KC_INS, KC_DEL, _______}, - {_______, AUD_PRV, AUD_PLY, AUD_NXT, _______, _______, _______, _______, _______, _______, _______, _______, TO(2) , _x_ }, - {KC_CAPS, _x_ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _x_ }, - {KC_RCTL, KC_RGUI, KC_RALT, _x_ , _x_ , _x_ , _x_ , _______, _x_ , _x_ , KC_HOME, KC_PGUP, KC_PGDN, KC_END} - }, - -// Layer 2: Zeal60 and backlight configuration. (Get here quickly by pressing Caps+Enter from Layer 1.) -// This is a persistent layer. Get back to the default layer by pressing enter. - [2] = { - {QK_BOOT, EF_DEC, EF_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, _______, _______, _______, _______, _______, _______, _______}, - {_______, H1_DEC, H1_INC, S1_DEC, S1_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______}, - {_______, H2_DEC, H2_INC, S2_DEC, S2_INC, _______, _______, _______, _______, _______, _______, _______, TO(0) , _x_ }, - {RGB_MOD, _x_ , RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _x_ }, - {RGB_TOG, RGB_VAD, RGB_VAI, _x_ , _x_ , _x_ , _x_ , _______, _x_ , _x_ , _______, _______, _______, _______} - } -}; diff --git a/keyboards/wilba_tech/zeal60/keymaps/tusing/rules.mk b/keyboards/wilba_tech/zeal60/keymaps/tusing/rules.mk deleted file mode 100644 index 762905da03..0000000000 --- a/keyboards/wilba_tech/zeal60/keymaps/tusing/rules.mk +++ /dev/null @@ -1,6 +0,0 @@ -# Build Options -# change to "no" to disable the options, or define them in the Makefile in -# the appropriate keymap folder that will get included automatically -# -RGBLIGHT_ENABLE = yes -AUDIO_ENABLE = no # Underglow cannot be used with audio. |