From f12dcb0659918657d35dc599e69f1aec43a22e97 Mon Sep 17 00:00:00 2001 From: Brandon Schlack Date: Wed, 4 Nov 2020 21:55:03 -0800 Subject: [Keymap] add brandonschlack userspace and keymaps (#10411) --- .../launchpad/keymaps/brandonschlack/config.h | 32 ++++ .../launchpad/keymaps/brandonschlack/keymap.c | 213 +++++++++++++++++++++ .../launchpad/keymaps/brandonschlack/readme.md | 31 +++ .../launchpad/keymaps/brandonschlack/rules.mk | 13 ++ 4 files changed, 289 insertions(+) create mode 100644 keyboards/launchpad/keymaps/brandonschlack/config.h create mode 100644 keyboards/launchpad/keymaps/brandonschlack/keymap.c create mode 100644 keyboards/launchpad/keymaps/brandonschlack/readme.md create mode 100644 keyboards/launchpad/keymaps/brandonschlack/rules.mk (limited to 'keyboards/launchpad') diff --git a/keyboards/launchpad/keymaps/brandonschlack/config.h b/keyboards/launchpad/keymaps/brandonschlack/config.h new file mode 100644 index 0000000000..6aaf996e57 --- /dev/null +++ b/keyboards/launchpad/keymaps/brandonschlack/config.h @@ -0,0 +1,32 @@ +/* Copyright 2020 Brandon Schlack + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +/* Underlight Configuration */ +#ifdef RGB_DI_PIN + #undef RGB_DI_PIN + #define RGB_DI_PIN F4 + #undef RGBLED_NUM + #define RGBLED_NUM 2 // Number of LEDs +#endif +#define RGBLIGHT_EFFECT_BREATHING // Only have Breathing Animation +#define RGBLIGHT_HUE_STEP 10 +#define RGBLIGHT_SAT_STEP 17 +#define RGBLIGHT_VAL_STEP 17 + +/* Mouse Keys Configuration */ +#define MK_3_SPEED +#define MK_W_INTERVAL_UNMOD 20 diff --git a/keyboards/launchpad/keymaps/brandonschlack/keymap.c b/keyboards/launchpad/keymaps/brandonschlack/keymap.c new file mode 100644 index 0000000000..1ef77ccc6e --- /dev/null +++ b/keyboards/launchpad/keymaps/brandonschlack/keymap.c @@ -0,0 +1,213 @@ +/* Copyright 2020 Brandon Schlack + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "brandonschlack.h" + +/** + * Layer Names + */ +#define _REEDER _BASE +enum bdn9_layers { + _MEDIA = KEYMAP_LAYERS, + _NAVI, + _KARABINER +}; + +/** + * Keycodes & Macros + */ +#define DF_REDR DF(_REEDER) // Set Default Layer to Reeder shortcuts +#define DF_MEDA DF(_MEDIA) // Set Default Layer to Media controls +#define DF_NAVI DF(_NAVI) // Set Default Layer to Navigation shortcuts +#define DF_KBNR DF(_KARABINER) // Set Default Layer to Basic Macro keys + +// Tap Dances +enum launchpad_dances { + TD_SHLD_LGHT = 0, + TD_SHLD_ADJT, + TD_REDR_H +}; +//Tap Dance Definitions +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_SHLD_LGHT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _LIGHT), + [TD_SHLD_ADJT] = ACTION_TAP_DANCE_TRIGGER_LAYER(SINGLE_HOLD, _ADJUST), + [TD_REDR_H] = ACTION_TAP_DANCE_DOUBLE(KC_H, KC_R) +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Reeder + * ┌──────┬──────┐ + * │CmdTab│ View │ + * ├──────┼──────┤ + * │PrvSub│PrvItm│ + * ├──────┼──────┤ + * │NxtSub│NxtItm│ + * ├──────┼──────┤ + * │ Clr │ Sync │ + * └──────┴──────┘ + */ +[_REEDER] = LAYOUT( \ + CMD_TAB, TD(TD_REDR_H), \ + KC_P, KC_K, \ + KC_N, KC_J, \ + TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \ +), + +/* Media + * ┌──────┬──────┐ + * │ Mute │ Play │ + * ├──────┼──────┤ + * │ Vol+ │PrvTrk│ + * ├──────┼──────┤ + * │ Vol- │NxtTrk│ + * ├──────┼──────┤ + * │ Spce │ Plyr │ + * └──────┴──────┘ + */ +[_MEDIA] = LAYOUT( \ + KC_MUTE, KC_MPLY, \ + KC_VOLU, KC_MNXT, \ + KC_VOLD, KC_MPRV, \ + TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \ +), + +/* Navigation + * ┌──────┬──────┐ + * │ PTab │ NTab │ + * ├──────┼──────┤ + * │ SclL │ SclU │ + * ├──────┼──────┤ + * │ SclR │ SclD │ + * ├──────┼──────┤ + * │LstTab│ClsTab│ + * └──────┴──────┘ + */ +[_NAVI] = LAYOUT( \ + PRV_TAB, NXT_TAB, \ + MC_WH_L, MC_WH_U, \ + MC_WH_R, MC_WH_D, \ + TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \ +), + +/* Macro + * ┌──────┬──────┐ + * │ 1 │ 2 │ + * ├──────┼──────┤ + * │ 3 │ 4 │ + * ├──────┼──────┤ + * │ 5 │ 6 │ + * ├──────┼──────┤ + * │ 7 │ 8 │ + * └──────┴──────┘ + */ +[_KARABINER] = LAYOUT( \ + KC_P1, KC_P2, \ + KC_P3, KC_P4, \ + KC_P5, KC_P6, \ + TD(TD_SHLD_LGHT), TD(TD_SHLD_ADJT) \ +), + +/* Lights + * ┌──────┬──────┐ + * │ THM+ │ HUE+ │ + * ├──────┼──────┤ + * │ SAT- │ SAT+ │ + * ├──────┼──────┤ + * │ VAL- │ VAL+ │ + * ├──────┼──────┤ + * │ XXXX │ Mde+ │ + * └──────┴──────┘ + */ +[_LIGHT] = LAYOUT( \ + RGB_THM, RGB_HUI, \ + RGB_SAD, RGB_SAI, \ + RGB_VAD, RGB_VAI, \ + XXXXXXX, RGB_MOD \ +), + +/* Adjust + * ┌──────┬──────┐ + * │ Make │ Rset │ + * ├──────┼──────┤ + * │ Redr │ Meda │ + * ├──────┼──────┤ + * │ Navi │ Mcro │ + * ├──────┼──────┤ + * │ Lght │ XXXX │ + * └──────┴──────┘ + */ +[_ADJUST] = LAYOUT( \ + QM_MAKE, RESET, \ + DF_REDR, DF_MEDA, \ + DF_NAVI, DF_KBNR, \ + TG_LGHT, XXXXXXX \ +) + +}; + +void matrix_init_keymap(void) { +} + +// Runs once after keyboard initializes +void keyboard_post_init_keymap(void) { +}; + +/** + * Tap Dances + */ +void process_tap_dance_keycode (bool reset, uint8_t toggle_layer) { + uint16_t keycode = 0; + switch (toggle_layer) { + case _LIGHT: + switch (get_highest_layer(layer_state)) { + case _REEDER: + keycode = KC_L; + break; + case _MEDIA: + keycode = KC_SPC; + break; + case _NAVI: + keycode = REO_TAB; + break; + case _KARABINER: + keycode = KC_P7; + break; + } + break; + case _ADJUST: + switch (get_highest_layer(layer_state)) { + case _REEDER: + keycode = KC_R; + break; + case _MEDIA: + keycode = MC_PLYR; + break; + case _NAVI: + keycode = CLS_TAB; + break; + case _KARABINER: + keycode = KC_P8; + break; + } + break; + } + if (!reset) { + register_code16(keycode); + } else { + unregister_code16(keycode); + } +} diff --git a/keyboards/launchpad/keymaps/brandonschlack/readme.md b/keyboards/launchpad/keymaps/brandonschlack/readme.md new file mode 100644 index 0000000000..a91a1b80ac --- /dev/null +++ b/keyboards/launchpad/keymaps/brandonschlack/readme.md @@ -0,0 +1,31 @@ +# brandonschlack's layout for Launchpad +Fun little macropad build, with an awesome case from [StrataKB](https://stratakb.com/store/cases/launchpad-v2-full-case). + +## Media Layer +This layer is used for media controls. Player button is a hotkey to focus the current media player with [BeardedSpice](https://beardedspice.github.io/) +| | | +|:-:|:-:| +| Mute | Play/Pause | +| Vol + | Next Track | +| Vol - | Prev Track | +| | Current Player | +--- + +## Keypad Layer +This layer is used to send keypad keys, meant to be remapped based on current app with [Karabiner](https://pqrs.org/osx/karabiner/) +| | | +|:-:|:-:| +| 1 | 2 | +| 3 | 4 | +| 5 | 6 | +| 7 | 8 | +--- + +## Magic Layer +This layer is used as a meta layer for the pad. This layer is accessed by holding key in Row 3, Col 0 +| | | +|:-:|:-:| +| MAKE | RESET | +| **Media** Layer | **Keypad** Layer| +| XXX | XXX | +| ___ | XXX | diff --git a/keyboards/launchpad/keymaps/brandonschlack/rules.mk b/keyboards/launchpad/keymaps/brandonschlack/rules.mk new file mode 100644 index 0000000000..ac92af928e --- /dev/null +++ b/keyboards/launchpad/keymaps/brandonschlack/rules.mk @@ -0,0 +1,13 @@ +# Use macropad-specific defines, layers, functions. Flash bootloader with QM_MAKE +IS_MACROPAD = yes + +# Use dfu bootloader for Elite-C +BOOTLOADER = atmel-dfu + +# Build Options +BOOTMAGIC_ENABLE = lite +RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. +CONSOLE_ENABLE = yes # Console for debug(+400) +MOUSEKEY_ENABLE = yes # Use mouse keys for scrolling. +COMMAND_ENABLE = no # Disable Command, breaks with Mouse Keys set to constant. +TAP_DANCE_ENABLE = yes # Use tap dance -- cgit v1.2.3