forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] Hub16 AutoHotKey Companion (qmk#10159)
* Hub16 AutoHotKey Companion * Revised after PR comments by Drashna * Update keyboards/hub16/keymaps/ahk_companion/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/hub16/keymaps/ahk_companion/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/hub16/keymaps/ahk_companion/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/hub16/keymaps/ahk_companion/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/hub16/keymaps/ahk_companion/readme.md Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> * Update keyboards/hub16/keymaps/ahk_companion/keymap.c Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> Co-authored-by: Drashna Jaelre <drashna@live.com>
- Loading branch information
1 parent
c05c767
commit d135fb1
Showing
5 changed files
with
403 additions
and
0 deletions.
There are no files selected for viewing
104 changes: 104 additions & 0 deletions
104
keyboards/hub16/keymaps/ahk_companion/ahk_companion.ahk
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
#Persistent | ||
#SingleInstance force | ||
|
||
;================================================================= | ||
; Macro Pad Shortcuts ; | ||
;================================================================= | ||
|
||
;================================================================= | ||
; Layer 0 | ||
;;================================================================= | ||
;Row 1 | ||
|
||
F13::Send a | ||
F14::Send b | ||
F15::Send c | ||
F16::Send d | ||
|
||
;Row 2 | ||
|
||
F17::Send e | ||
F18::Send f | ||
F19::Send g | ||
F20::Send h | ||
|
||
;Row 3 | ||
|
||
F21::Send i | ||
F22::Send j | ||
F23::Send k | ||
F24::Send l | ||
|
||
|
||
;================================================================= | ||
; Layer 1 | ||
;;================================================================= | ||
;Row 1 | ||
|
||
!F13::Send m | ||
!F14::Send n | ||
!F15::Send o | ||
!F16::Send p | ||
|
||
;Row 2 | ||
|
||
!F17::Send q | ||
!F18::Send r | ||
!F19::Send s | ||
!F20::Send t | ||
|
||
;Row 3 | ||
|
||
!F21::Send u | ||
!F22::Send v | ||
!F23::Send w | ||
!F24::Send x | ||
|
||
|
||
;================================================================= | ||
; Layer 2 | ||
;;================================================================= | ||
;Row 1 | ||
|
||
+F13::Send y | ||
+F14::Send z | ||
+F15::Send A | ||
+F16::Send B | ||
|
||
;Row 2 | ||
|
||
+F17::Send C | ||
+F18::Send D | ||
+F19::Send E | ||
+F20::Send F | ||
|
||
;Row 3 | ||
|
||
+F21::Send G | ||
+F22::Send H | ||
+F23::Send I | ||
+F24::Send J | ||
|
||
;================================================================= | ||
; Layer 3 | ||
;;================================================================= | ||
;Row 1 | ||
|
||
^F13::Send K | ||
^F14::Send L | ||
^F15::Send M | ||
^F16::Send N | ||
|
||
;Row 2 | ||
|
||
^F17::Send O | ||
^F18::Send P | ||
^F19::Send Q | ||
^F20::Send R | ||
|
||
;Row 3 | ||
|
||
^F21::Send S | ||
^F22::Send T | ||
^F23::Send U | ||
^F24::Send V |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* | ||
Copyright 2019 Josh Johnson | ||
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 | ||
|
||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | ||
// /*== all animations enable ==*/ | ||
// #define RGBLIGHT_ANIMATIONS | ||
// /*== or choose animations ==*/ | ||
// #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 | ||
// /*== customize breathing effect ==*/ | ||
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ | ||
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 | ||
// /*==== use exp() and sin() ====*/ | ||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 | ||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 | ||
// #endif | ||
|
||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | ||
#define DEBOUNCE 20 | ||
|
||
// Time out one shot layers after 3 seconds | ||
#define ONESHOT_TIMEOUT 3000 | ||
|
||
// Undef and redefine default brightness to half of 255 | ||
#undef RGBLIGHT_LIMIT_VAL | ||
#define RGBLIGHT_LIMIT_VAL 255 | ||
|
||
//Define a preview timeout for RGB reviews | ||
#define PREVIEW_TIMEOUT 5000 | ||
|
||
// Enable Light Layers implementation | ||
#define RGBLIGHT_LAYERS | ||
// Allow Light Layers to override RGB off configuration | ||
#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,168 @@ | ||
/* | ||
Copyright 2019 Josh Johnson | ||
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 | ||
|
||
#if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) | ||
static uint32_t rgb_preview_timer = 0; | ||
#endif | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
//Layer 0 - Base Layer (F13 to F24, and One Shot Layer 1,2,3 or Toggle Layer 4) | ||
[0] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
KC_F13, KC_F14, KC_F15, KC_F16, | ||
KC_F17, KC_F18, KC_F19, KC_F20, | ||
KC_F21, KC_F22, KC_F23, KC_F24, | ||
OSL(1), OSL(2), OSL(3), TG(4) //Transparent to let you go between layers | ||
), | ||
|
||
[1] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
LALT(KC_F13), LALT(KC_F14), LALT(KC_F15), LALT(KC_F16), | ||
LALT(KC_F17), LALT(KC_F18), LALT(KC_F19), LALT(KC_F20), | ||
LALT(KC_F21), LALT(KC_F22), LALT(KC_F23), LALT(KC_F24), | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers | ||
), | ||
|
||
//Layer 2 - Shift + Function Key Layer | ||
[2] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
LSFT(KC_F13), LSFT(KC_F14), LSFT(KC_F15), LSFT(KC_F16), | ||
LSFT(KC_F17), LSFT(KC_F18), LSFT(KC_F19), LSFT(KC_F20), | ||
LSFT(KC_F21), LSFT(KC_F22), LSFT(KC_F23), LSFT(KC_F24), | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers | ||
), | ||
|
||
//Layer 3 - Control + Function Key | ||
[3] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
LCTL(KC_F13), LCTL(KC_F14), LCTL(KC_F15), LCTL(KC_F16), | ||
LCTL(KC_F17), LCTL(KC_F18), LCTL(KC_F19), LCTL(KC_F20), | ||
LCTL(KC_F21), LCTL(KC_F22), LCTL(KC_F23), LCTL(KC_F24), | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers | ||
), | ||
|
||
//Layer 4 - Multimedia | ||
[4] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
KC_MPRV, KC_MPLY, KC_U, KC_K, | ||
KC_NO, KC_NO, KC_ENT, KC_X, | ||
KC_NO, RESET, LSFT(KC_HASH), KC_J, | ||
TG(5), KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers | ||
), | ||
|
||
//Layer 5 - Keyboard Lights, Programming and Special Functions | ||
[5] = LAYOUT( | ||
KC_MPLY, KC_MUTE, | ||
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, | ||
RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, | ||
RGB_TOG, EEP_RST, RESET, KC_LSHIFT, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS //Transparent to let you go between layers | ||
), | ||
}; | ||
|
||
const rgblight_segment_t PROGMEM my_layer0_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_ORANGE} | ||
); | ||
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_GREEN} | ||
); | ||
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_RED} | ||
); | ||
const rgblight_segment_t PROGMEM my_layer3_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_BLUE} | ||
); | ||
const rgblight_segment_t PROGMEM my_layer4_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_WHITE} | ||
); | ||
const rgblight_segment_t PROGMEM my_layer5_layer[] = RGBLIGHT_LAYER_SEGMENTS( | ||
{0,16,HSV_TEAL} | ||
); | ||
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( | ||
my_layer0_layer, | ||
my_layer1_layer, | ||
my_layer2_layer, | ||
my_layer3_layer, | ||
my_layer4_layer, | ||
my_layer5_layer | ||
); | ||
|
||
void encoder_update_user(uint8_t index, bool clockwise) { | ||
if (index == 0) { /* Left Encoder */ | ||
if (clockwise) { | ||
tap_code(KC_MPRV); | ||
} else { | ||
tap_code(KC_MNXT); | ||
} | ||
} else if (index == 1) { /* Right Encoder */ | ||
if (clockwise) { | ||
tap_code(KC_VOLD); | ||
} else { | ||
tap_code(KC_VOLU); | ||
} | ||
} | ||
} | ||
void post_process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
// Allow for a preview of changes when modifying RGB | ||
# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) | ||
switch (keycode) { | ||
case RGB_TOG ... VLK_TOG: | ||
for (uint8_t i = 0; i < RGBLIGHT_MAX_LAYERS; i++) { | ||
rgblight_set_layer_state(i, false); | ||
} | ||
rgb_preview_timer = timer_read32(); | ||
break; | ||
} | ||
# endif | ||
return; | ||
} | ||
|
||
//Set the appropriate layer color | ||
layer_state_t layer_state_set_user(layer_state_t state) { | ||
rgblight_set_layer_state(1, layer_state_cmp(state, 1)); | ||
rgblight_set_layer_state(2, layer_state_cmp(state, 2)); | ||
rgblight_set_layer_state(3, layer_state_cmp(state, 3)); | ||
rgblight_set_layer_state(4, layer_state_cmp(state, 4)); | ||
rgblight_set_layer_state(5, layer_state_cmp(state, 5)); | ||
return state; | ||
} | ||
|
||
void keyboard_post_init_user(void) { | ||
//Enable the LED layers | ||
rgblight_layers = my_rgb_layers; | ||
layer_state_set_user(layer_state); | ||
} | ||
|
||
void matrix_scan_user(void) { | ||
# if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_LAYERS) | ||
// Allow preview for | ||
if (rgb_preview_timer && TIMER_DIFF_32(timer_read32(), rgb_preview_timer) > PREVIEW_TIMEOUT) { | ||
rgb_preview_timer = 0; | ||
default_layer_state_set_user(default_layer_state); | ||
layer_state_set_user(layer_state); | ||
led_update_user((led_t) host_keyboard_leds()); | ||
} | ||
# endif | ||
} | ||
|
||
//EEPROM Reset Function | ||
void eeconfig_init_user(void) { | ||
rgblight_enable(); // Enable RGB by default | ||
rgblight_sethsv_orange(); // Set it to orange by default | ||
} |
Oops, something went wrong.