 1aacbc44d1
			
		
	
	
		1aacbc44d1
		
			
		
	
	
	
	
		
			
			* 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>
		
			
				
	
	
		
			79 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
	
		
			4.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|   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"
 | |
| 
 | |
| extern keymap_config_t keymap_config;
 | |
| 
 | |
| // Use an expanded macro with VA_ARGS to ensure that the common
 | |
| // rows get expanded out before getting passed to the LAYOUT
 | |
| // macro.
 | |
| 
 | |
| #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
 | |
| 
 | |
| const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | |
|   [BASE] = LAYOUT_wrapper( \
 | |
|     ROW5_LEFT_BASE,          KC_F5,                                     KC_F6,            ROW5_RGHT_BASE,
 | |
|     ROW4_LEFT_BASE,          TG(GAME),                                  TG(GAME_ARROW),   ROW4_RGHT_BASE,
 | |
|     ROW3_LEFT_BASE,          KC_LGUI,                                   KC_BSPC,          ROW3_RGHT_BASE,
 | |
|     ROW2_LEFT_BASE,          TD(TD_COPY_PASTE),                         KC_UP ,           ROW2_RGHT_BASE,
 | |
|     ROW1_LEFT_BASE, KC_BSPC, TD(TD_SYM_VIM),    KC_DEL,         KC_ENT, KC_SPC , KC_DOWN, ROW1_RGHT_BASE
 | |
|   ),
 | |
| 
 | |
|   [SYMB] = LAYOUT_wrapper(
 | |
|     ROW5_LEFT_SYMB,          _______,                           _______,          ROW5_RGHT_SYMB,
 | |
|     ROW4_LEFT_SYMB,          PSCREEN_APP,                       _______,          ROW4_RGHT_SYMB,
 | |
|     ROW3_LEFT_SYMB,          KC_PSCR,                           KC_VOLU,          ROW3_RGHT_SYMB,
 | |
|     ROW2_LEFT_SYMB,          _______,                           KC_VOLD,          ROW2_RGHT_SYMB,
 | |
|     ROW1_LEFT_SYMB, _______, _______, _______,         KC_MPRV, KC_MPLY, KC_MNXT, ROW1_RGHT_SYMB
 | |
|   ),
 | |
| 
 | |
|   [VIM] = LAYOUT_wrapper(
 | |
|     ROW5_LEFT_VIM,          _______,                           _______,          ROW5_RGHT_VIM,
 | |
|     ROW4_LEFT_VIM,          _______,                           _______,          ROW4_RGHT_VIM,
 | |
|     ROW3_LEFT_VIM,          _______,                           _______,          ROW3_RGHT_VIM,
 | |
|     ROW2_LEFT_VIM,          _______,                           _______,          ROW2_RGHT_VIM,
 | |
|     ROW1_LEFT_VIM, _______, _______, _______,         _______, _______, _______, ROW1_RGHT_VIM
 | |
|   ),
 | |
| 
 | |
|   [GAME] = LAYOUT_wrapper(
 | |
|       KC_ESC,   SIX_TRNS,                                                   _______, SIX_TRNS,
 | |
|       SIX_TRNS,                                              _______,     _______, SIX_TRNS,
 | |
|       KC_LCTL,  FOUR_TRNS,                          _______, KC_F6,         _______, SIX_TRNS,
 | |
|       KC_LSFT,  KC_Z,    FOUR_TRNS,                          KC_F5,         _______, SIX_TRNS,
 | |
|       KC_ENT,   _______, KC_LOCK, KC_BSPC, KC_LALT, KC_SPC,  OSM(SYMB),     _______, SIX_TRNS
 | |
|   ),
 | |
| 
 | |
|   [GAME_ARROW] = LAYOUT_wrapper(
 | |
|       KC_ESC,   SIX_TRNS,                                                  _______, SIX_TRNS,
 | |
|       _______,  _______, KC_UP,   _______,  _______, _______, _______,     _______, SIX_TRNS,
 | |
|       KC_LCTL,  KC_LEFT, KC_DOWN, KC_RGHT,  _______, _______, KC_F6,       _______, SIX_TRNS,
 | |
|       KC_LSFT,  KC_Z,    FOUR_TRNS,                           KC_F5,       _______, SIX_TRNS,
 | |
|       KC_ENT,   _______, KC_LOCK, KC_BSPC, KC_LALT, KC_SPC,  OSM(SYMB),    _______, SIX_TRNS
 | |
|   )
 | |
| };
 | |
| 
 | |
| bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | |
|   tap_dance_process_keycode(keycode);
 | |
|   return !try_handle_macro(keycode, record);
 | |
| }
 |