[Keymap] Added 333fred 5x6_5 keymap (#10272)
* First pass at manuform layout. * Updates from actual usage on my board. Fixed a couple of bugs, added a stormlight quote randomizer. * Use a 32-bit timer that can actually hit 5 minutes. * Some updates after a day of usage: * Turn off WPM. It's too inaccurate and takes up a decent amount of space that can be devoted to quotes. * Turn off the OLEDs after 5 minutes * Move the keys around a bit. * Add many more quotes. * Adjust the quotes to make room for missing and misswritten WoT quote. Adjusted the keymap slightly. Adjust the mods display to include one_shots. * Revert osm on lgui as it makes start menu search impossible to use. * Use LTO_ENABLE flag. * License all of my (333fred's) keymaps as MIT. * Update users/333fred/rgb.c Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
This commit is contained in:
parent
793de76bb4
commit
1aacbc44d1
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include QMK_KEYBOARD_CONFIG_H
|
#include QMK_KEYBOARD_CONFIG_H
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,25 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2018 Fredric Silberberg (333fred)
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
it under the terms of the GNU General Public License as published by
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
in the Software without restriction, including without limitation the rights
|
||||||
(at your option) any later version.
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
The above copyright notice and this permission notice shall be included in all
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
copies or substantial portions of the Software.
|
||||||
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
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// Long tapping term on the big switch, because it takes so long to press
|
// Long tapping term on the big switch, because it takes so long to press
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define USE_SERIAL
|
#define USE_SERIAL
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define USE_SERIAL
|
||||||
|
#define EE_HANDS
|
||||||
|
|
||||||
|
#undef TAPPING_TERM
|
||||||
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { F4 }
|
||||||
|
#define ENCODERS_PAD_B { F5 }
|
||||||
|
|
||||||
|
#undef SOFT_SERIAL_PIN
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
|
||||||
|
#undef OLED_TIMEOUT
|
||||||
|
#define OLED_TIMEOUT 240000
|
|
@ -0,0 +1,579 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "333fred.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[BASE] = LAYOUT_5x6_5(
|
||||||
|
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
|
||||||
|
KC_F4, KC_LALT, KC_BSPC, TD(TD_SYM_VIM), KC_DEL, KC_UP, KC_ENT, KC_SPC, OSL(VIM), KC_EQL,
|
||||||
|
KC_LGUI, TD(TD_COPY_PASTE), KC_DOWN, OSM(MOD_RCTL)
|
||||||
|
),
|
||||||
|
|
||||||
|
[SYMB] = LAYOUT_5x6_5(
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||||
|
_______, KC_EXLM, KC_AT, KC_LPRN, KC_RPRN, KC_PIPE, _______, KC_7, KC_8, KC_9, _______, KC_F12,
|
||||||
|
_______, KC_HASH, KC_DLR, KC_LCBR, KC_RCBR, KC_GRV, _______, KC_4, KC_5, KC_6, _______, _______,
|
||||||
|
_______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, _______, KC_1, KC_2, KC_3, _______, _______,
|
||||||
|
KC_F7, _______, _______, _______, _______, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, KC_ENT,
|
||||||
|
_______, _______, KC_VOLD, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[VIM] = LAYOUT_5x6_5(
|
||||||
|
_______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, RESET, _______,
|
||||||
|
_______, _______, _______, _______, KC_LSFT, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, DLEFT, DRIGHT, KC_LCTL, KC_LGUI, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______,_______, _______, TG(GAME), _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
[GAME] = LAYOUT_5x6_5(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||||
|
KC_T, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_G, KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_B, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_LOCK, KC_LALT, KC_SPC, KC_ENT, KC_GRV, TG(GAME), _______, _______, _______, KC_EQL,
|
||||||
|
KC_BSPC, KC_F5, KC_F6, _______
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
uint32_t quote_timer;
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) { quote_timer = 0; }
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
tap_dance_process_keycode(keycode);
|
||||||
|
return !try_handle_macro(keycode, record);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_led_status(void) {
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
if (led_state.num_lock || led_state.caps_lock || led_state.scroll_lock) {
|
||||||
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_mods_status(void) {
|
||||||
|
uint8_t mods = get_mods() | get_oneshot_mods();
|
||||||
|
bool ctrl = mods & MOD_MASK_CTRL;
|
||||||
|
bool shft = mods & MOD_MASK_SHIFT;
|
||||||
|
bool alt = mods & MOD_MASK_ALT;
|
||||||
|
bool gui = mods & MOD_MASK_GUI;
|
||||||
|
|
||||||
|
oled_write_P(ctrl ? PSTR("CTRL ") : PSTR(" "), false);
|
||||||
|
oled_write_P(shft ? PSTR("SHIFT ") : PSTR(" "), false);
|
||||||
|
oled_write_P(alt ? PSTR("ALT ") : PSTR(" "), false);
|
||||||
|
oled_write_ln_P(gui ? PSTR("GUI ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define MAX_LINES 8
|
||||||
|
|
||||||
|
void write_quote(const char* data, const uint8_t num_lines) {
|
||||||
|
uint8_t current_line = 0;
|
||||||
|
for (; current_line < (MAX_LINES - num_lines) / 2; current_line++) {
|
||||||
|
oled_advance_page(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
oled_write_ln_P(data, false);
|
||||||
|
|
||||||
|
for (current_line += num_lines; current_line < MAX_LINES; current_line++)
|
||||||
|
{
|
||||||
|
oled_advance_page(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_logo();
|
||||||
|
oled_advance_page(/* clearPageRemainder */ true);
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case BASE:
|
||||||
|
oled_write_ln_P(PSTR("Base"), false);
|
||||||
|
break;
|
||||||
|
case SYMB:
|
||||||
|
oled_write_ln_P(PSTR("Symbols"), false);
|
||||||
|
break;
|
||||||
|
case VIM:
|
||||||
|
oled_write_ln_P(PSTR("Vim"), false);
|
||||||
|
break;
|
||||||
|
case GAME:
|
||||||
|
oled_write_ln_P(PSTR("Gaming"), false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
render_mods_status();
|
||||||
|
render_led_status();
|
||||||
|
} else {
|
||||||
|
if ((quote_timer != 0 && timer_elapsed32(quote_timer) < 300000 /* 5 minutes */) || !is_oled_on()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
srand(timer_read32());
|
||||||
|
int currentQuote = rand() % 63;
|
||||||
|
quote_timer = timer_read32();
|
||||||
|
|
||||||
|
// Max character count on my screen is 20 characters per line.
|
||||||
|
// Quotes are from various fantasy books, mostly either from
|
||||||
|
// The Stormlight Archive or from The Wheel of Time.
|
||||||
|
switch (currentQuote) {
|
||||||
|
case 0:
|
||||||
|
write_quote(PSTR(" Life before Death \n"
|
||||||
|
" Strength before \n"
|
||||||
|
" Weakness \n"
|
||||||
|
" Journey before \n"
|
||||||
|
" Destination"),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
write_quote(PSTR(" Honor is dead, but \n"
|
||||||
|
"I'll see what I can \n"
|
||||||
|
" do."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
write_quote(PSTR(" You cannot have my \n"
|
||||||
|
" pain!"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
write_quote(PSTR(" Pride doesn't win \n"
|
||||||
|
" battles"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
write_quote(PSTR(" I have practice \n"
|
||||||
|
" following fools in \n"
|
||||||
|
" their reckless \n"
|
||||||
|
" pursuits."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
write_quote(PSTR(" What is the most \n"
|
||||||
|
" important step a \n"
|
||||||
|
" man can take?"),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
write_quote(PSTR(" It's the next one. \n"
|
||||||
|
" Always the next \n"
|
||||||
|
" step, Dalinar."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
write_quote(PSTR(" NO MATING."), 1);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
write_quote(PSTR(" Inappropriate? \n"
|
||||||
|
"Such as... dividing \n"
|
||||||
|
" by zero?"),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
write_quote(PSTR(" I am a stick!"), 1);
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
write_quote(PSTR(" But you could be \n"
|
||||||
|
" fire!"),
|
||||||
|
1);
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
write_quote(PSTR(" Sometimes a \n"
|
||||||
|
" hyprocrite is \n"
|
||||||
|
" nothing more than \n"
|
||||||
|
" than a man in the \n"
|
||||||
|
"process of changing"),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
write_quote(PSTR(" You surrender when \n"
|
||||||
|
" you are dead. Many \n"
|
||||||
|
"a man has been given\n"
|
||||||
|
" less."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
write_quote(PSTR(" Kneel and swear to \n"
|
||||||
|
" the Lord Dragon,...\n"
|
||||||
|
" or you will be \n"
|
||||||
|
" knelt."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
write_quote(PSTR("I'm right, anyway. I\n"
|
||||||
|
"wish I wasn't, but I\n"
|
||||||
|
" am. I bloody am."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
write_quote(PSTR(" Death rides on my \n"
|
||||||
|
" shoulder,. Death \n"
|
||||||
|
" walks in my \n"
|
||||||
|
" footsteps. I am \n"
|
||||||
|
" death."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
write_quote(PSTR(" The Golden Crane \n"
|
||||||
|
" flies for Tarmon \n"
|
||||||
|
" Gai'don"),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
write_quote(PSTR("You humans are very \n"
|
||||||
|
" excitable"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
write_quote(PSTR(" Phaw!"), 1);
|
||||||
|
break;
|
||||||
|
case 19:
|
||||||
|
write_quote(PSTR("I may be a fool, but\n"
|
||||||
|
" I intend to be a \n"
|
||||||
|
" live fool."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
write_quote(PSTR(" Anyone who claimed \n"
|
||||||
|
" that old age had \n"
|
||||||
|
" brought them \n"
|
||||||
|
"patience was either \n"
|
||||||
|
" lying or senile."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 21:
|
||||||
|
write_quote(PSTR("Death is light as a \n"
|
||||||
|
"feather; duty, heavy\n"
|
||||||
|
" as a mountain"),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 22:
|
||||||
|
write_quote(PSTR("Dovie'andi se tovya \n"
|
||||||
|
" sagain."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 23:
|
||||||
|
write_quote(PSTR(" Carai an Caldazar! \n"
|
||||||
|
"Carai an Ellisande! \n"
|
||||||
|
" Al Ellisande!"),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 24:
|
||||||
|
write_quote(PSTR(" Mia dovienya \n"
|
||||||
|
" nesodhin soende."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
write_quote(PSTR(" The Wheel of Time \n"
|
||||||
|
"turns, and Ages come\n"
|
||||||
|
" and pass, leaving \n"
|
||||||
|
"memories that become\n"
|
||||||
|
" legend."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 26:
|
||||||
|
write_quote(PSTR(" Legend fades to \n"
|
||||||
|
"myth, and even myth \n"
|
||||||
|
" is long forgotten \n"
|
||||||
|
" when the Age that \n"
|
||||||
|
"gave it birth comes \n"
|
||||||
|
" again."),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
case 27:
|
||||||
|
write_quote(PSTR(" What is too absurd \n"
|
||||||
|
" to believe is \n"
|
||||||
|
"believed because it \n"
|
||||||
|
"is too absurd to be \n"
|
||||||
|
" a lie."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 28:
|
||||||
|
write_quote(PSTR("And you gave me the \n"
|
||||||
|
" way out! Chew on \n"
|
||||||
|
"that bitterness for \n"
|
||||||
|
"lunch, you flaming, \n"
|
||||||
|
"burning, misbegotten\n"
|
||||||
|
" liars!"),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
case 29:
|
||||||
|
write_quote(PSTR(" He was going to \n"
|
||||||
|
"start having, 'I am \n"
|
||||||
|
"not a bloody Lord', \n"
|
||||||
|
" embroidered on his \n"
|
||||||
|
" coats."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
write_quote(PSTR("All was not lost, of\n"
|
||||||
|
" course. All was \n"
|
||||||
|
" never lost as long \n"
|
||||||
|
" as you were alive."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 31:
|
||||||
|
write_quote(PSTR(" Everything is just \n"
|
||||||
|
" bloody fine!"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 32:
|
||||||
|
write_quote(PSTR("The wheel weaves as \n"
|
||||||
|
" the wheel wills"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 33:
|
||||||
|
write_quote(PSTR(" Time to toss the \n"
|
||||||
|
" dice"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 34:
|
||||||
|
write_quote(PSTR("Always plan for the \n"
|
||||||
|
" worst, child, that \n"
|
||||||
|
" way all your \n"
|
||||||
|
" surprises are \n"
|
||||||
|
" pleasant ones."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 35:
|
||||||
|
write_quote(PSTR("'Pessimism, she is a\n"
|
||||||
|
" fond friend of \n"
|
||||||
|
"yours, yes?' 'That's\n"
|
||||||
|
" uncalled for. I \n"
|
||||||
|
" barely know her. \n"
|
||||||
|
"Mere acquaintances, \n"
|
||||||
|
" at best.'"),
|
||||||
|
7);
|
||||||
|
break;
|
||||||
|
case 36:
|
||||||
|
write_quote(PSTR(" Do not trouble \n"
|
||||||
|
"trouble till trouble\n"
|
||||||
|
" troubles you."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 37:
|
||||||
|
write_quote(PSTR("If your enemy offers\n"
|
||||||
|
" you two targets, \n"
|
||||||
|
" strike at a third."),
|
||||||
|
3);
|
||||||
|
break;
|
||||||
|
case 38:
|
||||||
|
write_quote(PSTR("The wind was not the\n"
|
||||||
|
"beginning. There are\n"
|
||||||
|
" neither beginnings \n"
|
||||||
|
" nor endings to the \n"
|
||||||
|
" turning of the \n"
|
||||||
|
" Wheel of Time. But \n"
|
||||||
|
" it was _a_ \n"
|
||||||
|
" beginning."),
|
||||||
|
8);
|
||||||
|
break;
|
||||||
|
case 39:
|
||||||
|
write_quote(PSTR("Bloody flaming ashes"), 1);
|
||||||
|
break;
|
||||||
|
case 40:
|
||||||
|
write_quote(PSTR("Then follow Lord Mat\n"
|
||||||
|
" whenever he calls \n"
|
||||||
|
"To dance with Jak O'\n"
|
||||||
|
" the Shadows."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 41:
|
||||||
|
write_quote(PSTR(" There are no \n"
|
||||||
|
" endings, and never \n"
|
||||||
|
"will be endings, to \n"
|
||||||
|
" the turning of the \n"
|
||||||
|
" Wheel of Time. But \n"
|
||||||
|
" it was an ending."),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
case 42:
|
||||||
|
write_quote(PSTR(" TAI'SHAR MALKIER!"), 1);
|
||||||
|
break;
|
||||||
|
case 43:
|
||||||
|
write_quote(PSTR("I would not mind you\n"
|
||||||
|
" in my head, if you \n"
|
||||||
|
"were not so clearly \n"
|
||||||
|
" mad."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 44:
|
||||||
|
write_quote(PSTR(" ILYENA, MY LOVE, \n"
|
||||||
|
" FORGIVE ME!"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 45:
|
||||||
|
write_quote(PSTR(" Oh, Light. That's \n"
|
||||||
|
"impossible! We can't\n"
|
||||||
|
" use it! Cast it \n"
|
||||||
|
"away! That is death \n"
|
||||||
|
" we hold, death and \n"
|
||||||
|
"betrayal. It is HIM."),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
case 46:
|
||||||
|
write_quote(PSTR("Nothing ever goes as\n"
|
||||||
|
" you expect. Expect \n"
|
||||||
|
" nothing, and you \n"
|
||||||
|
" will not be \n"
|
||||||
|
" surprised. Expect \n"
|
||||||
|
" nothing. Hope for \n"
|
||||||
|
" nothing. Nothing."),
|
||||||
|
7);
|
||||||
|
break;
|
||||||
|
case 47:
|
||||||
|
write_quote(PSTR(" Distant Weeping"), 1);
|
||||||
|
break;
|
||||||
|
case 48:
|
||||||
|
write_quote(PSTR("Are you real? Am I?"), 1);
|
||||||
|
break;
|
||||||
|
case 49:
|
||||||
|
write_quote(PSTR(" I'm just an old \n"
|
||||||
|
"gleeman, who could I\n"
|
||||||
|
" possibly be \n"
|
||||||
|
" dangerous to?"),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 50:
|
||||||
|
write_quote(PSTR(" Mat bloody Cauthon \n"
|
||||||
|
" is no bloody hero!"),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 51:
|
||||||
|
write_quote(PSTR("You are a coward and\n"
|
||||||
|
" a tyrant. I'd name \n"
|
||||||
|
" you Darkfriend as \n"
|
||||||
|
"well, but I suspect \n"
|
||||||
|
" that the Dark One \n"
|
||||||
|
" would perhaps be \n"
|
||||||
|
" embarrassed to \n"
|
||||||
|
"associate with you."),
|
||||||
|
8);
|
||||||
|
break;
|
||||||
|
case 52:
|
||||||
|
write_quote(PSTR(" I win again, Lews \n"
|
||||||
|
" Therin."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 53:
|
||||||
|
write_quote(PSTR("May you always find \n"
|
||||||
|
" water and shade."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 54:
|
||||||
|
write_quote(PSTR(" I will never serve \n"
|
||||||
|
"you, Father of Lies.\n"
|
||||||
|
"In a thousand lives,\n"
|
||||||
|
"I never have. I know\n"
|
||||||
|
" that. I'm sure of \n"
|
||||||
|
"it. Come. It is time\n"
|
||||||
|
" to die."),
|
||||||
|
7);
|
||||||
|
break;
|
||||||
|
case 55:
|
||||||
|
write_quote(PSTR(" There may be more \n"
|
||||||
|
"than one way to skin\n"
|
||||||
|
" a cat, but the cat \n"
|
||||||
|
"isn't going to like \n"
|
||||||
|
" any of them."),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 56:
|
||||||
|
write_quote(PSTR("Please see that they\n"
|
||||||
|
" know, although the \n"
|
||||||
|
"word Black may brand\n"
|
||||||
|
"my name forever, my \n"
|
||||||
|
"soul is Brown. Tell \n"
|
||||||
|
" them..."),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
case 57:
|
||||||
|
write_quote(PSTR(" 'Your soul is of a \n"
|
||||||
|
"pure white, Verin,' \n"
|
||||||
|
"Egwene said softly. \n"
|
||||||
|
" 'Like the Light \n"
|
||||||
|
" itself.'"),
|
||||||
|
5);
|
||||||
|
break;
|
||||||
|
case 58:
|
||||||
|
write_quote(PSTR(" Asha'man, Kill!"), 1);
|
||||||
|
break;
|
||||||
|
case 59:
|
||||||
|
write_quote(PSTR(" Let the lord of \n"
|
||||||
|
" chaos rule."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 60:
|
||||||
|
write_quote(PSTR(" There's always \n"
|
||||||
|
" another secret."),
|
||||||
|
2);
|
||||||
|
break;
|
||||||
|
case 61:
|
||||||
|
write_quote(PSTR(" You see the great \n"
|
||||||
|
"thing about madness \n"
|
||||||
|
"is that it's all in \n"
|
||||||
|
" your head."),
|
||||||
|
4);
|
||||||
|
break;
|
||||||
|
case 62:
|
||||||
|
write_quote(PSTR(" In one Age, called \n"
|
||||||
|
" the Third Age by \n"
|
||||||
|
"some, an Age yet to \n"
|
||||||
|
" come, an Age long \n"
|
||||||
|
" past, a wind rose \n"
|
||||||
|
" above..."),
|
||||||
|
6);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
// On the left, control the volume. On the right, scroll the page
|
||||||
|
if (index == 0) {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_WH_U);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_WH_D);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
KEY_LOCK_ENABLE = yes
|
||||||
|
CONSOLE_ENABLE = no
|
||||||
|
OLED_DRIVER_ENABLE = yes
|
||||||
|
ENCODER_ENABLE = yes
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define USE_SERIAL
|
#define USE_SERIAL
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,23 @@
|
||||||
/*
|
/*
|
||||||
Copyright 2018 Fredric Silberberg
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
it under the terms of the GNU General Public License as published by
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
in the Software without restriction, including without limitation the rights
|
||||||
(at your option) any later version.
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
The above copyright notice and this permission notice shall be included in all
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
copies or substantial portions of the Software.
|
||||||
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
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include QMK_KEYBOARD_CONFIG_H
|
#include QMK_KEYBOARD_CONFIG_H
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "action_layer.h"
|
#include "action_layer.h"
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define USE_SERIAL
|
#define USE_SERIAL
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
|
|
|
@ -1,16 +1,37 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "layout_macros.h"
|
#include "layout_macros.h"
|
||||||
|
|
||||||
#define BASE 0
|
#define BASE 0
|
||||||
#define CODE 1 // code layer
|
#define CODEFLOW 1
|
||||||
#define CODEFLOW 2
|
#define SYMB 2
|
||||||
#define SYMB 3
|
#define MDIA 3 // media keys
|
||||||
#define MDIA 4 // media keys
|
#define VIM 4
|
||||||
#define VIM 5
|
#define GAME 5
|
||||||
#define GAME 6
|
#define GAME_ARROW 6
|
||||||
#define GAME_ARROW 7
|
|
||||||
|
|
||||||
// Tap dance config shared between my keyboards
|
// Tap dance config shared between my keyboards
|
||||||
enum tap_dance_declarations {
|
enum tap_dance_declarations {
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define SIX_TRNS _______, _______, _______, _______, _______, _______
|
#define SIX_TRNS _______, _______, _______, _______, _______, _______
|
||||||
|
|
|
@ -1,3 +1,25 @@
|
||||||
|
/*
|
||||||
|
Copyright (c) 2020 Fred Silberberg
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
#include "333fred.h"
|
#include "333fred.h"
|
||||||
|
|
||||||
|
|
|
@ -7,3 +7,4 @@ endif
|
||||||
TAP_DANCE_ENABLE=yes
|
TAP_DANCE_ENABLE=yes
|
||||||
NKRO_ENABLE = yes
|
NKRO_ENABLE = yes
|
||||||
PERMISSIVE_HOLD = yes
|
PERMISSIVE_HOLD = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
|
Loading…
Reference in New Issue