[Keymap] rootiest for planck/rev6/ (#13294)
* squashed commits to master * Fix in case of missing user_song_list Substitutes missing songs with safe versions Also updated and added detail to keymap readme * Adjust Readme to match qmk contrib conventions * Update keyboards/planck/keymaps/rootiest/config.h * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Update keyboards/planck/keymaps/rootiest/keymap.c * Fixed license header to GPLv2+ * Fix Volume key delay Use a static number instead of removed MEDIA_KEY_DELAY * Use TAP_CODE_DELAY * added license to config.h * Clean up formatting - Fixed markdown in readme - Removed extra commented line from config.h * Update keyboards/planck/keymaps/rootiest/config.h
This commit is contained in:
		
							parent
							
								
									59b5c884ff
								
							
						
					
					
						commit
						79d5b27993
					
				
					 4 changed files with 2137 additions and 0 deletions
				
			
		
							
								
								
									
										146
									
								
								keyboards/planck/keymaps/rootiest/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								keyboards/planck/keymaps/rootiest/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,146 @@
 | 
			
		|||
/* Copyright 2021 Chris Laprade
 | 
			
		||||
 *
 | 
			
		||||
 * 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/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * USB/POWER OPTIONS
 | 
			
		||||
 */
 | 
			
		||||
// #define USB_MAX_POWER_CONSUMPTION 500
 | 
			
		||||
#define USB_SUSPEND_WAKEUP_DELAY 200
 | 
			
		||||
#define USB_POLLING_INTERVAL_MS 1
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * MUSIC/AUDIO options
 | 
			
		||||
 */
 | 
			
		||||
#ifdef AUDIO_ENABLE
 | 
			
		||||
#    define AUDIO_CLICKY
 | 
			
		||||
#    define MUSIC_MAP
 | 
			
		||||
#    define AUDIO_VOICES
 | 
			
		||||
#    define AUDIO_VOICE_DEFAULT something
 | 
			
		||||
#    define AUDIO_DAC_SAMPLE_MAX 2732U
 | 
			
		||||
 | 
			
		||||
#    define DEFAULT_LAYER_SONGS \
 | 
			
		||||
        { SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND), SONG(DVORAK_SOUND) }
 | 
			
		||||
 | 
			
		||||
/* Plays during keyboard startup */
 | 
			
		||||
#    define STARTUP_SONG SONG(NO_SOUND)
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * MIDI options
 | 
			
		||||
 */
 | 
			
		||||
/* enable basic MIDI features:
 | 
			
		||||
    - MIDI notes can be sent when in Music mode is on
 | 
			
		||||
*/
 | 
			
		||||
#define MIDI_BASIC
 | 
			
		||||
 | 
			
		||||
/* enable advanced MIDI features:
 | 
			
		||||
    - MIDI notes can be added to the keymap
 | 
			
		||||
    - Octave shift and transpose
 | 
			
		||||
    - Virtual sustain, portamento, and modulation wheel
 | 
			
		||||
    - etc.
 | 
			
		||||
*/
 | 
			
		||||
#define MIDI_ADVANCED
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * ENCODER options
 | 
			
		||||
 */
 | 
			
		||||
#define ENCODER_DIRECTION_FLIP
 | 
			
		||||
#define ENCODER_RESOLUTION 4  // Define number of stages between detents on encoders
 | 
			
		||||
#define ENCODERS_PAD_A \
 | 
			
		||||
    { B12 }
 | 
			
		||||
#define ENCODERS_PAD_B \
 | 
			
		||||
    { B13 }
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * RGB options
 | 
			
		||||
 */
 | 
			
		||||
#ifdef RGBLIGHT_ENABLE
 | 
			
		||||
#    define RGBLIGHT_SLEEP                    // Allows rgb to sleep when the host/keyboard does
 | 
			
		||||
#    define RGBLIGHT_ANIMATIONS               // Enable using rgb animations
 | 
			
		||||
#    define RGBLIGHT_LAYERS                   // Enable indicating layers using layered rgb assignments
 | 
			
		||||
#    define RGBLIGHT_LAYER_BLINK              // Allows rgb layers to be blinked (activate for a set amount of time)
 | 
			
		||||
#    define RGBLIGHT_MAX_LAYERS 32            // Overides the default (8) max number of rgb layers
 | 
			
		||||
#    define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF  // Allows rgb layers to work even when rgb is toggled off
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * UNICODE options
 | 
			
		||||
 */
 | 
			
		||||
#define UNICODE_SELECTED_MODES UC_WINC, UC_LNX, UC_MAC  // Define the methods used for in/outputting unicode
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * TAP-DANCE options
 | 
			
		||||
 */
 | 
			
		||||
#define TAPPING_TERM 250     // Default time allowed before resetting a Tap-Dance combo
 | 
			
		||||
#define ONESHOT_TAP_TOGGLE 5 /* Tapping this number of times holds the key until tapped once again. */
 | 
			
		||||
#define ONESHOT_TIMEOUT 5000 /* Time (in ms) before the one shot key is released */
 | 
			
		||||
#define TAPPING_TOGGLE 3
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * LEADER-KEY options
 | 
			
		||||
 */     // Used for on-board chording
 | 
			
		||||
#define LEADER_PER_KEY_TIMING
 | 
			
		||||
#define LEADER_TIMEOUT 500
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * COMBO-KEY options
 | 
			
		||||
 */
 | 
			
		||||
#define COMBO_COUNT 2
 | 
			
		||||
#define COMBO_TERM 300
 | 
			
		||||
/*
 | 
			
		||||
 * MACRO per-key options
 | 
			
		||||
 */
 | 
			
		||||
#define RETRO_TAPPING_PER_KEY             // Control Retro-Tap individually by key
 | 
			
		||||
#define TAPPING_FORCE_HOLD_PER_KEY        // Control Force-Hold individually by key
 | 
			
		||||
#define IGNORE_MOD_TAP_INTERRUPT_PER_KEY  // Control Mod-Tap-Interrupt individually by key
 | 
			
		||||
#define PERMISSIVE_HOLD_PER_KEY           // Control Permissive-Hold individually by key
 | 
			
		||||
 | 
			
		||||
#define MK_KINETIC_SPEED  // Use kinetic acceleration for mouse-keys
 | 
			
		||||
 | 
			
		||||
// Fall-back defines to prevent compile errors if user_song_list is missing
 | 
			
		||||
#ifndef ZELDA_PUZZLE2
 | 
			
		||||
#    define ZELDA_PUZZLE2 Q__NOTE(_G5)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef SONIC_RING2
 | 
			
		||||
#    define SONIC_RING2 E__NOTE(_E6)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef ZELDA_CHEST2
 | 
			
		||||
#    define ZELDA_CHEST2 Q__NOTE(_G5)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef COIN_SOUND2
 | 
			
		||||
#    define COIN_SOUND2 E__NOTE(_A5)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef ONE_UP_SOUND2
 | 
			
		||||
#    define ONE_UP_SOUND2 Q__NOTE(_E6)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef IMPERIAL_MARCH
 | 
			
		||||
#    define IMPERIAL_MARCH HD_NOTE(_A4)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef MARIO_GAMEOVER
 | 
			
		||||
#    define MARIO_GAMEOVER HD_NOTE(_C5)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef LEAD_START_SOUND
 | 
			
		||||
#    define LEAD_START_SOUND E__NOTE(_C5)
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef LEAD_SUCCESS_SOUND
 | 
			
		||||
#    define LEAD_SUCCESS_SOUND E__NOTE(_A5), HD_NOTE(_E6),
 | 
			
		||||
#endif
 | 
			
		||||
#ifndef LEAD_FAIL_SOUND
 | 
			
		||||
#    define LEAD_FAIL_SOUND E__NOTE(_A5), HD_NOTE(_E4),
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										1928
									
								
								keyboards/planck/keymaps/rootiest/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1928
									
								
								keyboards/planck/keymaps/rootiest/keymap.c
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										37
									
								
								keyboards/planck/keymaps/rootiest/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/planck/keymaps/rootiest/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,37 @@
 | 
			
		|||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
# The Rootiest Planck Layout
 | 
			
		||||
 | 
			
		||||
This layout takes advantage of as many QMK features as possible for a huge complicated beast of a keyboard!
 | 
			
		||||
 | 
			
		||||
## Features include
 | 
			
		||||
 | 
			
		||||
- Encoder functions further extended by layers and modifiers
 | 
			
		||||
- Extensive use of the on-board speaker
 | 
			
		||||
- Extensive use of the backlight LEDs for startup animations, layer indicators, and bootloader/debug warnings, etc
 | 
			
		||||
- Many layers, both toggled and momentary.
 | 
			
		||||
- A toggled Numpad layer, with an emphasis on coding/accounting and with arrow keys on WASD
 | 
			
		||||
- A "Tabular" layer accessed by holding Tab with frequently used functions, including Alt+Tab via pressing Space
 | 
			
		||||
- A toggled Mouse-keys layer that allows full control of the mouse movement and buttons from the keyboard
 | 
			
		||||
- Use of Space-Cadet Shift/Ctrl keys on various layers
 | 
			
		||||
- Hold enter for Right-Shift
 | 
			
		||||
- Shift+BackSpace for Delete
 | 
			
		||||
- Grave-Esc in the top-left Esc key position
 | 
			
		||||
- Music, Terminal, MIDI, and RGB control on Functions layer
 | 
			
		||||
- QWERTY, COLEMAK, DVORAK, and PLOVER layers
 | 
			
		||||
- Special keys for common Ctrl+ combos like Ctrl+C, Ctrl+V, etc
 | 
			
		||||
- Special keys for Copy-Line, Cut-Line, Delete-Line, etc
 | 
			
		||||
- Special keys for Ctrl+Alt+Del, Alt+F4, etc
 | 
			
		||||
- Settings like rgb animation state and startup animation/sound are stored in the EEPROM to survive restart
 | 
			
		||||
- "Sticky keys" with audible indication allow most modifiers to be locked by pressing multiple times in quick succession
 | 
			
		||||
- Sticky-locking the Shift key toggles CapsLock instead of locking Shift
 | 
			
		||||
- Unicode characters and emoji can be sent via custom tap-dance keys
 | 
			
		||||
- Emoji and app-specific functions can be sent via leader-key chording
 | 
			
		||||
- VelociKey and word-per-minute tracking are also included
 | 
			
		||||
 | 
			
		||||
See the layout here: [Keyboard Layout](http://www.keyboard-layout-editor.com/#/gists/e48e19bc251a8d07ff8475fc1a16f43b)
 | 
			
		||||
 | 
			
		||||
To build and flash this keymap, use this command:
 | 
			
		||||
 | 
			
		||||
    qmk flash -kb planck/rev6 -km rootiest
 | 
			
		||||
							
								
								
									
										26
									
								
								keyboards/planck/keymaps/rootiest/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/planck/keymaps/rootiest/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
SRC += muse.c
 | 
			
		||||
ENCODER_ENABLE = yes # Enables basic encoder support
 | 
			
		||||
OLED_DRIVER_ENABLE = yes # Enables support for OLED displays
 | 
			
		||||
# UNICODE_ENABLE = yes # Allow inputting basic unicode characters
 | 
			
		||||
UNICODEMAP_ENABLE = yes # Enable use of Unicode mapping array
 | 
			
		||||
# UCIS_ENABLE = yes # Another method for generating Unicode characters via maps
 | 
			
		||||
TAP_DANCE_ENABLE = yes # Enable Tap-Dance
 | 
			
		||||
NKRO_ENABLE = yes # Enable N-Key rollover
 | 
			
		||||
MOUSEKEY_ENABLE = yes # Enable mouse emulation
 | 
			
		||||
EXTRAKEY_ENABLE = yes # Allows audio control and System control
 | 
			
		||||
RAW_ENABLE = yes # Enable bi-directional communication to host
 | 
			
		||||
CONSOLE_ENABLE = yes # Enable outputting debugging data/logs to terminal
 | 
			
		||||
WPM_ENABLE = yes # Enable on-board words-per-minute tracking
 | 
			
		||||
VELOCIKEY_ENABLE = yes # Enables dynamically changing rgb animation speed based on WPM
 | 
			
		||||
LEADER_ENABLE = yes # Enables Leader-Key
 | 
			
		||||
COMBO_ENABLE = yes # Enables combo keys
 | 
			
		||||
KEY_LOCK_ENABLE = yes # Enables using lock key to maintain holds
 | 
			
		||||
# LTO_ENABLE = yes # Does some optimisation to make firmware size smaller
 | 
			
		||||
# SWAP_HANDS_ENABLE = yes # Enables the swap hands function
 | 
			
		||||
# DEBOUNCE_TYPE = sym_eager_pk # Change debounce algorithm
 | 
			
		||||
 | 
			
		||||
# NOTE: The following requires a lot of memory to include
 | 
			
		||||
TERMINAL_ENABLE = yes # Enables a command-line-like interface designed to communicate through a text editor with keystrokes
 | 
			
		||||
 | 
			
		||||
# NOTE: The following is not yet available in main qmk branch
 | 
			
		||||
KEY_OVERRIDE_ENABLE = yes # Allows overiding modifier combos (change Shift+1 without affecting 1 or Shift's normal operation)
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue