Compare commits
20 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
524053e3c0 | ||
|
19b02bf267 | ||
|
298ac18dfa | ||
|
c6ce959f49 | ||
|
3b801880a0 | ||
|
21a37a5245 | ||
|
3cff95c8df | ||
|
93eabc4b2c | ||
|
01f91bf6f4 | ||
|
2c1ba03a98 | ||
|
27d32378b5 | ||
|
3f3d0551cd | ||
|
f746174874 | ||
|
a8daf3ffba | ||
|
3b4d26e344 | ||
|
767f7a8cf0 | ||
|
ee176f2b27 | ||
|
c72c1db68b | ||
|
d469aaa166 | ||
|
d54de1c5f2 |
@@ -27,3 +27,38 @@ Shortcuts for bootmagic options. You can use these even when bootmagic is off.
|
||||
|`MAGIC_UNHOST_NKRO` | |Force NKRO off |
|
||||
|`MAGIC_UNSWAP_ALT_GUI` |`AG_NORM`|Unswap Left Alt and GUI |
|
||||
|`MAGIC_TOGGLE_NKRO` | |Turn NKRO on or off |
|
||||
|
||||
|
||||
## Bootmagc Hotkeys
|
||||
|
||||
Use this by holding the SPACEBAR and the documented key while
|
||||
plugging in the USB connection. e.g. to get into bootloader mode
|
||||
hold `SPACE` and `B` while plugging in USB.
|
||||
|
||||
|
||||
|Key |Description |
|
||||
|-----------|------------------------------------------------------------------------|
|
||||
|`ESC` | Skip bootmagic and saved eeprom configuration |
|
||||
|`B` | Enter bootloader instead of firmware |
|
||||
|`BACKSPACE`| Clear the saved settings from flash |
|
||||
|`LCTRL` | Swap `Control` and `Capslock` and save into flash |
|
||||
|`CAPSLOCK` | Swap `Capslock` and `Control` and save into flash |
|
||||
|`LALT` | Swap Left `Alt` and `GUI` and save into flash, e.g. for OSX Opt and Cmd|
|
||||
|`RALT` | Swap Right `Alt` and `GUI` and save into flash |
|
||||
|`LGUI` | Disable GUI key - e.g. disable Windows key during gaming |
|
||||
|`GRAVE` | Swap ' and `ESC` and save into flash |
|
||||
|`BACKSLASH`| Swap Blackslash and Backspace and save into flash |
|
||||
|`N` | Enable NKRO (N Key Roll Over) |
|
||||
|`0` | Make Layer 0 the default layer at bootup, e.g. switch to dvorak |
|
||||
|`1` | Make Layer 1 the default layer at bootup |
|
||||
|`2` | Make Layer 2 the default layer at bootup |
|
||||
|`3` | Make Layer 3 the default layer at bootup |
|
||||
|`4` | Make Layer 4 the default layer at bootup |
|
||||
|`5` | Make Layer 5 the default layer at bootup |
|
||||
|`6` | Make Layer 6 the default layer at bootup |
|
||||
|`7` | Make Layer 7 the default layer at bootup |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -37,6 +37,7 @@ Debian / Ubuntu example:
|
||||
sudo apt-get install gcc unzip wget zip gcc-avr binutils-avr avr-libc dfu-programmer dfu-util gcc-arm-none-eabi binutils-arm-none-eabi libnewlib-arm-none-eabi
|
||||
|
||||
Fedora / Red Hat example:
|
||||
|
||||
sudo dnf install gcc unzip wget zip dfu-util dfu-programmer avr-gcc avr-libc binutils-avr32-linux-gnu arm-none-eabi-gcc-cs arm-none-eabi-binutils-cs arm-none-eabi-newlib
|
||||
|
||||
## Nix
|
||||
@@ -131,7 +132,7 @@ docker run -e keymap=gwen -e keyboard=ergodox_ez --rm -v $('pwd'):/qmk:rw edasqu
|
||||
On Windows Docker seems to have issues with the VOLUME tag in Dockerfile, and `$('pwd')` won't print a Windows compliant path; use full path instead, like this:
|
||||
|
||||
```bash
|
||||
docker run -e keymap=default -e keyboard=ergobox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
|
||||
docker run -e keymap=default -e keyboard=ergodox_ez --rm -v D:/Users/Sacapuces/Documents/Repositories/qmk:/qmk:rw edasque/qmk_firmware
|
||||
|
||||
```
|
||||
|
||||
|
@@ -14,6 +14,19 @@
|
||||
|
||||
static bool mouse_lock = false;
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
|
||||
// Cloud9 macros
|
||||
CLOUD9_TAB_LEFT,
|
||||
CLOUD9_TAB_RIGHT,
|
||||
CLOUD9_TAB_CLOSE,
|
||||
CLOUD9_GOTO_SYMBOL,
|
||||
CLOUD9_GOTO_LINE,
|
||||
CLOUD9_NAVIGATE,
|
||||
|
||||
};
|
||||
|
||||
// building instructions:
|
||||
// make atreus:dvorak_42_key
|
||||
|
||||
@@ -30,10 +43,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
},
|
||||
|
||||
[KEYNAV] = {
|
||||
{KC_ESC, MEH(KC_F9), RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, },
|
||||
{MEH(KC_F11), MEH(KC_F12), RSFT(KC_TAB), KC_TAB, MEH(KC_A), KC_TRNS, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), },
|
||||
{MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, },
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), }
|
||||
{KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, },
|
||||
{MEH(KC_F11), CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A), KC_TRNS, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), },
|
||||
{MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN, },
|
||||
{KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE), }
|
||||
},
|
||||
|
||||
[KEYSEL] = {
|
||||
@@ -64,6 +77,40 @@ const uint16_t PROGMEM fn_actions[] = {
|
||||
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if(record->event.pressed) {
|
||||
switch (keycode) {
|
||||
// Cloud9 macros
|
||||
case CLOUD9_TAB_LEFT:
|
||||
SEND_STRING(SS_LCTRL("["));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_RIGHT:
|
||||
SEND_STRING(SS_LCTRL("]"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_CLOSE:
|
||||
SEND_STRING(SS_LALT("w"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_SYMBOL:
|
||||
SEND_STRING(SS_LSFT(SS_LCTRL("e")));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_LINE:
|
||||
SEND_STRING(SS_LCTRL("g"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_NAVIGATE:
|
||||
SEND_STRING(SS_LCTRL("e"));
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
|
134
keyboards/clueboard/60/keymaps/yanfali/keymap.c
Normal file
134
keyboards/clueboard/60/keymaps/yanfali/keymap.c
Normal file
@@ -0,0 +1,134 @@
|
||||
#include "60.h"
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum keyboard_layers {
|
||||
_BL,
|
||||
_FL,
|
||||
_CL,
|
||||
_YF
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
S_BSKTC = SAFE_RANGE,
|
||||
S_ODEJY,
|
||||
S_RCKBY,
|
||||
S_DOEDR,
|
||||
S_SCALE,
|
||||
S_ONEUP,
|
||||
S_COIN,
|
||||
S_SONIC,
|
||||
S_ZELDA
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float song_basketcase[][2] = SONG(BASKET_CASE);
|
||||
float song_ode_to_joy[][2] = SONG(ODE_TO_JOY);
|
||||
float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY);
|
||||
float song_doe_a_deer[][2] = SONG(DOE_A_DEER);
|
||||
float song_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
float song_coin[][2] = SONG(COIN_SOUND);
|
||||
float song_one_up[][2] = SONG(ONE_UP_SOUND);
|
||||
float song_sonic_ring[][2] = SONG(SONIC_RING);
|
||||
float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE);
|
||||
#endif
|
||||
|
||||
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Layer 0: Default Layer
|
||||
* ,-----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| `|BSp|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |MT(CTL, ESC)| A| S| D| F| G| H| J| K| L| ;| '|Enter |
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Fn0|
|
||||
* |-----------------------------------------------------------------'
|
||||
* |Ctrl |Alt|Gui | Space |Alt |Gui|Fn |Ctrl |
|
||||
* `-----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = KEYMAP(
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_GRV, KC_BSPC,\
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,KC_RBRC,KC_BSLS, \
|
||||
MT(MOD_LCTL, KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NUHS, KC_ENT, \
|
||||
KC_LSFT, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT, MO(_YF), \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, MO(_FL), KC_RCTL),
|
||||
[_FL] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,_______,\
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(_YF), \
|
||||
_______,_______,_______, _______, _______, _______, MO(_FL), _______),
|
||||
[_CL] = KEYMAP(
|
||||
BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
|
||||
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
|
||||
_______, _______, _______, _______, _______, _______, MO(_FL), _______),
|
||||
[_YF] = KEYMAP(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
|
||||
_______,_______,KC_UP ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
|
||||
_______,KC_LEFT,KC_DOWN,KC_RIGHT,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(_YF), \
|
||||
_______, _______, _______, _______, _______, _______, MO(_FL), _______)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case S_BSKTC:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_basketcase);
|
||||
}
|
||||
return false;
|
||||
case S_ODEJY:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_ode_to_joy);
|
||||
}
|
||||
return false;
|
||||
case S_RCKBY:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_rock_a_bye_baby);
|
||||
}
|
||||
return false;
|
||||
case S_DOEDR:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_doe_a_deer);
|
||||
}
|
||||
return false;
|
||||
case S_SCALE:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_scale);
|
||||
}
|
||||
return false;
|
||||
case S_ONEUP:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_one_up);
|
||||
}
|
||||
return false;
|
||||
case S_COIN:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_coin);
|
||||
}
|
||||
return false;
|
||||
case S_SONIC:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_sonic_ring);
|
||||
}
|
||||
return false;
|
||||
case S_ZELDA:
|
||||
if (record->event.pressed) {
|
||||
stop_all_notes();
|
||||
PLAY_SONG(song_zelda_puzzle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
14
keyboards/clueboard/60/keymaps/yanfali/readme.md
Normal file
14
keyboards/clueboard/60/keymaps/yanfali/readme.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# /u/yanfali keymap for clueboard 60%
|
||||
|
||||
Almost the same as default but differs in the following ways
|
||||
|
||||
1. `Caps Lock` -> `MT(KC_LCTL, KC_ESC)`.
|
||||
I'm a heavy vim user and I prefer escape to be closer than default. I also move `Control` to this key if you hold it.
|
||||
1. Switch Alt and GUI.
|
||||
I spend most of my time on OSX, so I reverse Alt and GUI to be
|
||||
more comfortable on OSX.
|
||||
1. Added a custom layer.
|
||||
I use this to map the cursor keys to WASD, the familiar directional
|
||||
gaming keys. As I use a split right shift, this naturally leads
|
||||
to the left hand being used for navigation. This is also the
|
||||
best place to add custom mappings, macros and combo keys.
|
@@ -1,5 +1,9 @@
|
||||
#include "66.h"
|
||||
|
||||
enum custom_keycodes {
|
||||
M_SHRUG = SAFE_RANGE
|
||||
};
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
@@ -30,9 +34,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _CL: Control layer
|
||||
*/
|
||||
[_CL] = LAYOUT(
|
||||
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI,
|
||||
M_SHRUG, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI,
|
||||
_______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD,
|
||||
_______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______,
|
||||
MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI,
|
||||
_______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD,RGB_SAD,RGB_HUI),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch(keycode) {
|
||||
case M_SHRUG:
|
||||
SEND_STRING("/shrug"SS_TAP(X_ENTER));
|
||||
return false; break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
65
keyboards/e6v2/config.h
Normal file
65
keyboards/e6v2/config.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0002
|
||||
#define MANUFACTURER Exclusive / E-Team
|
||||
#define PRODUCT E6-V2
|
||||
#define DESCRIPTION E6-V2 QMK PCB (Mid-Port)
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/* QMK E6-V2 PCB default pin-out */
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { C7, C6, B5, B4, D7, D6, D4, F6, F7, F5, F4, F1, F0, B0, B1 }
|
||||
#define UNUSED_PINS { E6, B2, B3, B7 }
|
||||
|
||||
#define RGB_DI_PIN E2
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 8
|
||||
#define RGBLIGHT_HUE_STEP 12
|
||||
#define RGBLIGHT_SAT_STEP 12
|
||||
#define RGBLIGHT_VAL_STEP 12
|
||||
#endif
|
||||
|
||||
#define BACKLIGHT_PIN B6
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 5
|
||||
#define BACKLIGHT_BREAHTING
|
||||
#define BREATHING_PERIOD 3
|
||||
#endif
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
|
||||
|
||||
#endif
|
53
keyboards/e6v2/e6v2.c
Normal file
53
keyboards/e6v2/e6v2.c
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "e6v2.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
DDRB |= (1<<6);
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
// output low
|
||||
DDRB |= (1<<2);
|
||||
PORTB &= ~(1<<2);
|
||||
} else {
|
||||
// Hi-Z
|
||||
DDRB &= ~(1<<2);
|
||||
PORTB &= ~(1<<2);
|
||||
}
|
||||
// DDRB |= (1<<7);
|
||||
// DDRB |= (1<<1);
|
||||
// DDRB |= (1<<3);
|
||||
// DDRE |= (1<<6);
|
||||
if (usb_led == 0){
|
||||
PORTB |= (1<<6);
|
||||
// PORTB |= (1<<7);
|
||||
// PORTB |= (1<<1);
|
||||
// PORTB |= (1<<3);
|
||||
// PORTE |= (1<<6);
|
||||
}
|
||||
else{
|
||||
PORTB &= ~(1<<6);
|
||||
// PORTB &= ~(1<<7);
|
||||
}
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
66
keyboards/e6v2/e6v2.h
Normal file
66
keyboards/e6v2/e6v2.h
Normal file
@@ -0,0 +1,66 @@
|
||||
#ifndef E6V2_H
|
||||
#define E6V2_H
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define KEYMAP( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_ANSI( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, KC_NO }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_HHKB( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K41, K42, K46, K4B, K4C \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
|
||||
}
|
||||
|
||||
#define KEYMAP_HHKB_SPLITS( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,\
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K41, K42, K46, K4B, K4C \
|
||||
)\
|
||||
{\
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO }, \
|
||||
{ KC_NO, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, KC_NO, K4B, K4C, KC_NO, KC_NO }, \
|
||||
}
|
||||
|
||||
#endif
|
1
keyboards/e6v2/keymaps/amnesia0287/config.h
Normal file
1
keyboards/e6v2/keymaps/amnesia0287/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
79
keyboards/e6v2/keymaps/amnesia0287/keymap.c
Normal file
79
keyboards/e6v2/keymaps/amnesia0287/keymap.c
Normal file
@@ -0,0 +1,79 @@
|
||||
#include "e6v2.h"
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _BL 0
|
||||
#define _HLa 1
|
||||
#define _HLb 2
|
||||
#define _HL 3
|
||||
#define _XL 4
|
||||
|
||||
enum hype_keycodes {
|
||||
FN_HLa = SAFE_RANGE,
|
||||
FN_HLb
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = KEYMAP_HHKB(
|
||||
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_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, FN_HLb,
|
||||
KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, FN_HLa
|
||||
),
|
||||
[_HLa] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HLb] = KEYMAP_HHKB(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HL] = KEYMAP_HHKB(
|
||||
RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, LALT(KC_F4),
|
||||
RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case FN_HLa:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FN_HLb:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
8
keyboards/e6v2/keymaps/amnesia0287/readme.md
Normal file
8
keyboards/e6v2/keymaps/amnesia0287/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
amnesia0287's Keymap
|
||||
===
|
||||
|
||||
Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
|
||||
Difference from base layout: Primarily the HHKB-ness
|
||||
|
||||
Intended usage: Daily driver for programming
|
0
keyboards/e6v2/keymaps/amnesia0287/rules.mk
Normal file
0
keyboards/e6v2/keymaps/amnesia0287/rules.mk
Normal file
1
keyboards/e6v2/keymaps/default/config.h
Normal file
1
keyboards/e6v2/keymaps/default/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
18
keyboards/e6v2/keymaps/default/keymap.c
Normal file
18
keyboards/e6v2/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,18 @@
|
||||
#include "e6v2.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP_ANSI(
|
||||
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_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_MENU, KC_RCTL
|
||||
),
|
||||
[1] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
8
keyboards/e6v2/keymaps/default/readme.md
Normal file
8
keyboards/e6v2/keymaps/default/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
Default Keymap
|
||||
===
|
||||
|
||||
Super simple default keymap with only a base layer.
|
||||
|
||||
Keymap Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
|
||||
Intended usage: This is mostly provided for testing before you build your own keymap and as a reference to a stock(ish) configuration
|
0
keyboards/e6v2/keymaps/default/rules.mk
Normal file
0
keyboards/e6v2/keymaps/default/rules.mk
Normal file
18
keyboards/e6v2/readme.md
Normal file
18
keyboards/e6v2/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
E6-V2
|
||||
===
|
||||
|
||||
These docs are for the QMK version of the PCB. [More info on qmk.fm](http://qmk.fm/)
|
||||
|
||||
Keyboard Maintainer: [Jason Gorman](https://github.com/amnesia0287)
|
||||
Hardware Supported: E6-V2 Mid Port rev.qmk
|
||||
Hardware Availability: [geekhack.org/index.php?topic=90787.0](https://geekhack.org/index.php?topic=90787.0)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make e6v2:default
|
||||
|
||||
Or to make and flash:
|
||||
|
||||
make e6v2:default:dfu
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
|
68
keyboards/e6v2/rules.mk
Normal file
68
keyboards/e6v2/rules.mk
Normal file
@@ -0,0 +1,68 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1287
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Boot Section Size in *bytes*
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = yes
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
@@ -7,6 +7,12 @@
|
||||
// to build this keymap
|
||||
// make ergodox_ez:dvorak_42_key:teensy
|
||||
|
||||
// keeping fork up to date:
|
||||
// https://help.github.com/articles/configuring-a-remote-for-a-fork/
|
||||
// https://help.github.com/articles/syncing-a-fork/
|
||||
// pushing dev branch
|
||||
// git push origin dev:dev
|
||||
|
||||
static bool mouse_lock = false;
|
||||
|
||||
enum custom_keycodes {
|
||||
@@ -17,6 +23,7 @@ enum custom_keycodes {
|
||||
// shell nav macros
|
||||
SHELL_LS,
|
||||
SHELL_LSLTR,
|
||||
SHELL_LSLA,
|
||||
SHELL_CDPRE,
|
||||
SHELL_LESS,
|
||||
SHELL_PLESS,
|
||||
@@ -31,6 +38,15 @@ enum custom_keycodes {
|
||||
SHELL_SCREEN_LIST,
|
||||
SHELL_MKE,
|
||||
SHELL_HTCSTATUS,
|
||||
|
||||
// Cloud9 macros
|
||||
CLOUD9_TAB_LEFT,
|
||||
CLOUD9_TAB_RIGHT,
|
||||
CLOUD9_TAB_CLOSE,
|
||||
CLOUD9_GOTO_SYMBOL,
|
||||
CLOUD9_GOTO_LINE,
|
||||
CLOUD9_NAVIGATE,
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -39,8 +55,11 @@ enum custom_keycodes {
|
||||
#define KEYSEL 2 // arrow navigation + shift (allow text selection)
|
||||
#define SHELL_NAV 3 // bash shortcuts
|
||||
#define SHELL_SCREEN 4 // linux screen shortcuts
|
||||
#define MOUSE 5 // mouse layer (can be locked with lock key)
|
||||
#define COMBINED 6 // combined numbers and symbols layer
|
||||
#define SCREEN_NAV 5 // navigate between linux screen tabs
|
||||
#define MOUSE 6 // mouse layer (can be locked with lock key), unmapped for now
|
||||
#define BROWSER_CONTROL 7 // control browser and mouse
|
||||
#define COMBINED 8 // combined numbers and symbols layer
|
||||
|
||||
|
||||
// macros
|
||||
#define MOUSE_TOGGLE 1
|
||||
@@ -64,7 +83,18 @@ enum custom_keycodes {
|
||||
#define SCREEN_8 20
|
||||
#define SCREEN_9 21
|
||||
#define SCREEN_DETACH 22
|
||||
#define SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND 30
|
||||
#define SCREEN_UP_JUMP 23
|
||||
#define SCREEN_DOWN_JUMP 24
|
||||
#define SCREEN_READREG_1 25
|
||||
#define SCREEN_READREG_2 26
|
||||
#define SCREEN_READREG_3 27
|
||||
#define SCREEN_PASTEREG_1 28
|
||||
#define SCREEN_PASTEREG_2 29
|
||||
#define SCREEN_PASTEREG_3 30
|
||||
#define SHELL_WRITE_LOGPATTERN 31
|
||||
#define SHELL_WRITE_TRANPATTERN 32
|
||||
#define SHELL_EXPAND_PATTERN 33
|
||||
|
||||
|
||||
|
||||
#define MACRO_SCREEN_NUM(MACRO_NAME,NUM) \
|
||||
@@ -73,16 +103,50 @@ enum custom_keycodes {
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(NUM), END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
#define MACRO_SCREEN_REG(MACRO_NAME,NUM) \
|
||||
case MACRO_NAME:\
|
||||
if (record->event.pressed) {\
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(SCOLON), U(LSFT),\
|
||||
T(R),\
|
||||
T(E),\
|
||||
T(A),\
|
||||
T(D),\
|
||||
T(R),\
|
||||
T(E),\
|
||||
T(G),\
|
||||
T(SPC),\
|
||||
T(NUM),\
|
||||
T(ENTER),\
|
||||
END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
#define MACRO_SCREEN_PASTE(MACRO_NAME,NUM)\
|
||||
case MACRO_NAME:\
|
||||
if (record->event.pressed) {\
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), D(LSFT), T(SCOLON), U(LSFT),\
|
||||
T(P),\
|
||||
T(A),\
|
||||
T(S),\
|
||||
T(T),\
|
||||
T(E),\
|
||||
T(SPC),\
|
||||
T(NUM),\
|
||||
T(ENTER),\
|
||||
END);\
|
||||
}\
|
||||
break;\
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[BASE] = KEYMAP(
|
||||
// left hand
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
KC_TAB, KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MEH(KC_2),
|
||||
OSL(SCREEN_NAV), KC_QUOTE, KC_COMMA, KC_DOT, KC_P, KC_Y, MEH(KC_2),
|
||||
OSL(SHELL_NAV), KC_A, KC_O, KC_E, KC_U, KC_I,
|
||||
OSL(SHELL_SCREEN), KC_SCOLON, KC_Q, KC_J, KC_K, KC_X, MEH(KC_3),
|
||||
MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), M(MOUSE_TOGGLE), MO(KEYSEL),
|
||||
MEH(KC_1), OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL),
|
||||
|
||||
// left thumb cluster
|
||||
MEH(KC_4), MEH(KC_5),
|
||||
@@ -91,8 +155,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// right hand
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MEH(KC_9),
|
||||
MEH(KC_7), KC_F, KC_G, KC_C, KC_R, KC_L, MEH(KC_F1),
|
||||
KC_D, KC_H, KC_T, KC_N, KC_S, MEH(KC_F2),
|
||||
MEH(KC_7), KC_F, KC_G, KC_C, KC_R, KC_L, KC_TAB,
|
||||
KC_D, KC_H, KC_T, KC_N, KC_S, RCTL(KC_BSPC),
|
||||
MEH(KC_8), KC_B, KC_M, KC_W, KC_V, KC_Z, MEH(KC_F3),
|
||||
KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT),MEH(KC_F4),
|
||||
|
||||
@@ -103,11 +167,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[KEYNAV] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_ESC, MEH(KC_F9), RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS,
|
||||
KC_TRNS,MEH(KC_F11), MEH(KC_F12), RSFT(KC_TAB), KC_TAB, MEH(KC_A),
|
||||
KC_TRNS,MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_ESC, CLOUD9_GOTO_LINE, RCTL(KC_Z), RCTL(KC_S), MEH(KC_F10), KC_TRNS,
|
||||
KC_TRNS,KC_LSFT, CLOUD9_GOTO_SYMBOL, RSFT(KC_TAB), KC_TAB, MEH(KC_A),
|
||||
KC_TRNS,MEH(KC_B), CLOUD9_NAVIGATE, CLOUD9_TAB_LEFT, CLOUD9_TAB_RIGHT, CLOUD9_TAB_CLOSE, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// left thumb cluster
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,TO(MOUSE),KC_TRNS,KC_TRNS,
|
||||
|
||||
@@ -130,7 +194,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,MEH(KC_L), MEH(KC_M),MEH(KC_N), MEH(KC_O), MEH(KC_P),
|
||||
KC_TRNS,MEH(KC_Q), MEH(KC_R),MEH(KC_S), MEH(KC_T), MEH(KC_U), KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
RESET,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
@@ -151,9 +215,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// shell navigation layer
|
||||
[SHELL_NAV] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, SHELL_PGREP, SHELL_PLESS, SHELL_LESS, KC_TRNS, SHELL_H3,
|
||||
KC_TRNS,SHELL_MKE, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_PWD,
|
||||
KC_TRNS,SHELL_MKE, SHELL_CDPRE, SHELL_LSLTR, SHELL_LS, SHELL_LSLA,
|
||||
KC_TRNS,SHELL_SCREEN_LIST, SHELL_SCREENRD, SHELL_SCREEN_NEW, SHELL_TAILF, SHELL_HTCSTATUS, SHELL_AMMCOLO,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
@@ -162,10 +226,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(SWITCH_NDS),
|
||||
RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, KC_TRNS, RCTL(KC_R),
|
||||
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), LALT(KC_DOT),
|
||||
RCTL(KC_C), RCTL(KC_U), M(SCREEN_COPY_MODE), M(SCREEN_PASTE), MEH(KC_V), RCTL(KC_K), M(SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND),
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(SHELL_WRITE_TRANPATTERN),
|
||||
RCTL(KC_L), RCTL(KC_W), KC_HOME, KC_UP, KC_END, KC_TRNS, M(SHELL_WRITE_LOGPATTERN),
|
||||
LALT(KC_B), KC_LEFT, KC_DOWN, KC_RIGHT, LALT(KC_F), RCTL(KC_W),
|
||||
RCTL(KC_C), RCTL(KC_U), LALT(KC_DOT), RCTL(KC_R), MEH(KC_V), RCTL(KC_K), M(SHELL_EXPAND_PATTERN),
|
||||
// bottom row (match functionality of base layer)
|
||||
KC_BSPC, RCTL(KC_W), KC_DELETE, LALT(KC_D), RCTL(KC_U),
|
||||
// thumb cluster
|
||||
@@ -178,7 +242,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// linux screen layer
|
||||
[SHELL_SCREEN] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
@@ -201,6 +265,35 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
// navigation within screen (for copy/paste)
|
||||
[SCREEN_NAV] = KEYMAP(
|
||||
// left hand
|
||||
// left hand
|
||||
KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, M(SCREEN_READREG_3), M(SCREEN_READREG_2), M(SCREEN_READREG_1), KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, M(SCREEN_PASTEREG_3), M(SCREEN_PASTEREG_2), M(SCREEN_PASTEREG_1), KC_TRNS,
|
||||
KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_0, KC_UP, KC_DLR, M(SCREEN_UP_JUMP), KC_TRNS,
|
||||
KC_B, KC_LEFT, KC_DOWN, KC_RIGHT, KC_W, M(SCREEN_COPY_MODE),
|
||||
KC_TRNS, KC_TRNS, S(KC_W), S(KC_Y), M(SCREEN_PASTE), M(SCREEN_DOWN_JUMP), MEH(KC_V),
|
||||
// bottom row (match functionality of base layer)
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// thumb cluster
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
|
||||
|
||||
|
||||
[COMBINED] = KEYMAP(
|
||||
|
||||
@@ -222,7 +315,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// bottom row
|
||||
KC_0, KC_DOT, KC_PIPE, KC_BSLS, MEH(KC_P),
|
||||
// thumb cluster
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS),
|
||||
KC_TRNS,KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TAB),
|
||||
|
||||
|
||||
[MOUSE] = KEYMAP(
|
||||
@@ -246,6 +341,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_BTN1, KC_BTN2
|
||||
),
|
||||
|
||||
[BROWSER_CONTROL] = KEYMAP(
|
||||
// left hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_BTN3, KC_MS_U, KC_BTN1, KC_BTN2, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
// right hand
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_UP, KC_PGUP, KC_PGDN, KC_MS_WH_UP, KC_TRNS, KC_TRNS,
|
||||
KC_DOWN, RSFT(RCTL(KC_TAB)), RCTL(KC_TAB), KC_MS_WH_DOWN, LALT(KC_LEFT), KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, RCTL(KC_1), RCTL(KC_9), KC_F6, KC_F5, KC_TRNS,
|
||||
// bottom row
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS,
|
||||
KC_TRNS,
|
||||
KC_TRNS, RCTL(KC_W), RCTL(KC_T)
|
||||
),
|
||||
|
||||
|
||||
};
|
||||
@@ -317,6 +436,14 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
}
|
||||
break;
|
||||
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_1,1);
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_2,2);
|
||||
MACRO_SCREEN_REG(SCREEN_READREG_3,3);
|
||||
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_1,1);
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_2,2);
|
||||
MACRO_SCREEN_PASTE(SCREEN_PASTEREG_3,3);
|
||||
|
||||
MACRO_SCREEN_NUM(SCREEN_0,0);
|
||||
MACRO_SCREEN_NUM(SCREEN_1,1);
|
||||
MACRO_SCREEN_NUM(SCREEN_2,2);
|
||||
@@ -328,6 +455,18 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
MACRO_SCREEN_NUM(SCREEN_8,8);
|
||||
MACRO_SCREEN_NUM(SCREEN_9,9);
|
||||
|
||||
case SCREEN_UP_JUMP:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(5), T(UP), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCREEN_DOWN_JUMP:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(5), T(DOWN), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SCREEN_COPY_MODE:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(ESC), END);
|
||||
@@ -338,23 +477,39 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
return MACRO( D(LCTL), T(A), U(LCTL), T(RBRC), END);
|
||||
}
|
||||
break;
|
||||
case SWITCH_NDS:
|
||||
|
||||
case SHELL_WRITE_LOGPATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LSFT),
|
||||
T(F11),
|
||||
U(LSFT),
|
||||
W(255),
|
||||
D(LALT),
|
||||
T(TAB),
|
||||
U(LALT),
|
||||
END);
|
||||
}
|
||||
break;
|
||||
case SHELL_RECALL_LAST_ARG_REMOVE_FIRST_COMMAND:
|
||||
return MACRO( D(LSFT),
|
||||
T(8),
|
||||
T(8),
|
||||
U(LSFT),
|
||||
T(L),
|
||||
T(O),
|
||||
T(G),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
T(LEFT),
|
||||
END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SHELL_WRITE_TRANPATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( T(UP), T(HOME), D(LALT), T(D), U(LALT), END);
|
||||
}
|
||||
break;
|
||||
return MACRO( D(LSFT),
|
||||
T(8),
|
||||
T(8),
|
||||
U(LSFT), T(T), T(R), T(A), T(N), T(LEFT), T(LEFT), T(LEFT), T(LEFT), T(LEFT), END);
|
||||
}
|
||||
break;
|
||||
|
||||
case SHELL_EXPAND_PATTERN:
|
||||
if (record->event.pressed) {
|
||||
return MACRO( D(LALT), T(F), U(LALT), D(LCTL), T(X), U(LCTL), D(LSFT), T(8), D(LSFT), END);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
@@ -393,6 +548,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
SEND_STRING("ls -ltr\n");
|
||||
return true;
|
||||
break;
|
||||
case SHELL_LSLA:
|
||||
SEND_STRING("ls -la\n");
|
||||
return true;
|
||||
break;
|
||||
case SHELL_CDPRE:
|
||||
SEND_STRING("cd ..\n");
|
||||
return true;
|
||||
@@ -445,6 +604,32 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
SEND_STRING("htcStatus -j ");
|
||||
return true;
|
||||
break;
|
||||
// Cloud9 macros
|
||||
case CLOUD9_TAB_LEFT:
|
||||
SEND_STRING(SS_LCTRL("["));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_RIGHT:
|
||||
SEND_STRING(SS_LCTRL("]"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_TAB_CLOSE:
|
||||
SEND_STRING(SS_LALT("w"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_SYMBOL:
|
||||
SEND_STRING(SS_LSFT(SS_LCTRL("e")));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_GOTO_LINE:
|
||||
SEND_STRING(SS_LCTRL("g"));
|
||||
return true;
|
||||
break;
|
||||
case CLOUD9_NAVIGATE:
|
||||
SEND_STRING(SS_LCTRL("e"));
|
||||
return true;
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,9 +659,11 @@ void matrix_scan_user(void) {
|
||||
case SHELL_SCREEN:
|
||||
case KEYNAV:
|
||||
case KEYSEL:
|
||||
case SCREEN_NAV:
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
case MOUSE:
|
||||
case BROWSER_CONTROL:
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
break;
|
||||
|
228
keyboards/ergodox_ez/keymaps/smurmann/keymap.c
Normal file
228
keyboards/ergodox_ez/keymaps/smurmann/keymap.c
Normal file
@@ -0,0 +1,228 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define MDIA 1 // media keys
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
|
||||
bool capsOn = false;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | Bksp |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | E | R | T | { | | } | Y | U | I | O | P | \ |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* |HyperCaps| A | S | D | F | G |------| |------| H | J | K | L |; / L1| Enter |
|
||||
* |--------+------+------+------+------+------| Alt | | L1 |------+------+------+------+------+--------|
|
||||
* | LShift | Z/L1 | X | C | V | B | | | | N | M | , | . | ? | RShift |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* |lCrtr | [ | ] | ` | ' | | Left | Up | Down | Right| PlayWin |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* |PRTSRN| Win | | Home | End |
|
||||
* ,------|------|------| |------+--------+------.
|
||||
* | | | Ins | | PgUp | | |
|
||||
* | Space|Backsp|------| |------| Enter |Space |
|
||||
* | |ace | Del | | PgDn | | |
|
||||
* `--------------------' `----------------------'
|
||||
*/
|
||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
// Otherwise, it needs KC_*
|
||||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||||
// left hand
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LCBR,
|
||||
ALL_T(KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LSFT, LT(MDIA,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_LALT,
|
||||
KC_LCTRL, KC_LBRC, KC_RBRC, KC_GRV, KC_QUOT,
|
||||
KC_PSCR, KC_LGUI,
|
||||
KC_INS,
|
||||
KC_SPC,KC_BSPC,KC_DEL,
|
||||
// right hand
|
||||
KC_7, KC_8, KC_9, KC_0,KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_RCBR, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN),KC_ENT,
|
||||
TG(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LEFT, KC_UP,KC_DOWN,KC_RGHT, GUI_T(KC_MPLY),
|
||||
KC_HOME, KC_END,
|
||||
KC_PGUP,
|
||||
KC_PGDN,KC_ENT, KC_SPC
|
||||
),
|
||||
/* Keymap 1: Media and mouse keys
|
||||
*
|
||||
* ,---------------------------------------------------. ,--------------------------------------------------.
|
||||
* |Version | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
|
||||
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* |BootLoad | | Lclk | MsUp | Rclk | | | | | | | Up | | | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsLeft|MsDown|MsRght| |------| |------| | Left | Down | Right| | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | |MsAcl0|MsAcl1|MsAcl2| | | | | | | Mute | Mute | | |
|
||||
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | Prev |VolUp |VolDn | Next | |
|
||||
* `-----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | | | | | |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | | | |
|
||||
* | | |------| |------| | |
|
||||
* | | | | | | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// Functions
|
||||
[MDIA] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
RESET,_______,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,
|
||||
_______,_______,KC_MS_L,KC_MS_D,KC_MS_R,_______,
|
||||
_______,_______,KC_ACL0,KC_ACL1,KC_ACL2,_______,_______,
|
||||
_______,_______,_______,_______,_______,
|
||||
_______,_______,
|
||||
_______,
|
||||
_______,_______,_______,
|
||||
// right hand
|
||||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______,
|
||||
_______,_______,_______, KC_UP ,_______,_______,_______,
|
||||
_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,
|
||||
_______,_______,_______,KC_MUTE,KC_MUTE,_______,_______,
|
||||
KC_MPRV,KC_VOLU,KC_VOLD,KC_MNXT,_______,
|
||||
_______, _______,
|
||||
_______,
|
||||
_______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
[1] = ACTION_LAYER_TAP_TOGGLE(MDIA) // FN1 - Momentary Layer 1 (Symbols)
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
#ifdef RGBLIGHT_COLOR_LAYER_0
|
||||
rgblight_setrgb(RGBLIGHT_COLOR_LAYER_0);
|
||||
#endif
|
||||
};
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
if(layer == 1)
|
||||
{
|
||||
ergodox_right_led_2_on();
|
||||
ergodox_right_led_3_on();
|
||||
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
|
||||
}
|
||||
|
||||
if(capsOn)
|
||||
{
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_1_on ();
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LSFT))
|
||||
{
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_1_on ();
|
||||
} else {
|
||||
ergodox_right_led_1_set (LED_BRIGHTNESS_LO);
|
||||
|
||||
if(!capsOn)
|
||||
{
|
||||
ergodox_right_led_1_off ();
|
||||
}
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LALT))
|
||||
{
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_2_on ();
|
||||
} else {
|
||||
ergodox_right_led_2_set (LED_BRIGHTNESS_LO);
|
||||
if(layer != 1)
|
||||
{
|
||||
ergodox_right_led_2_off ();
|
||||
}
|
||||
}
|
||||
|
||||
if(keyboard_report->mods & MOD_BIT(KC_LCTRL))
|
||||
{
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_HI);
|
||||
ergodox_right_led_3_on ();
|
||||
} else {
|
||||
ergodox_right_led_3_set (LED_BRIGHTNESS_LO);
|
||||
if(layer != 1)
|
||||
{
|
||||
ergodox_right_led_3_off ();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
void led_set_user(uint8_t usb_led){
|
||||
if (usb_led & (1 << USB_LED_CAPS_LOCK))
|
||||
{
|
||||
capsOn = true;
|
||||
}else {
|
||||
capsOn = false;
|
||||
}
|
||||
}
|
@@ -0,0 +1,3 @@
|
||||
# Truly Ergonomic like layout
|
||||
|
||||
A basic ErgoDox layout that imitates the Truly Ergonomic keyboard layout.
|
177
keyboards/ergodox_infinity/keymaps/trulyergonomic/keymap.c
Normal file
177
keyboards/ergodox_infinity/keymaps/trulyergonomic/keymap.c
Normal file
@@ -0,0 +1,177 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "debug.h"
|
||||
#include "action_layer.h"
|
||||
#include "version.h"
|
||||
|
||||
#define BASE 0 // default layer
|
||||
#define EXTRA 1 // extra
|
||||
|
||||
enum custom_keycodes {
|
||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||
EPRM,
|
||||
VRSN,
|
||||
RGB_SLD
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap 0: Basic layer
|
||||
*
|
||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | LGui | | LGui | 6 | 7 | 8 | 9 | 0 | - |
|
||||
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
|
||||
* | Tab | Q | W | E | R | T | Del | | Tab | Y | U | I | O | P | = |
|
||||
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | RShift |
|
||||
* |--------+------+------+------+------+------| Back | | Back |------+------+------+------+------+--------|
|
||||
* | LCtrl | Z | X | C | V | B | space| | space| N | M | , | . | ' | RCtrl |
|
||||
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | LAlt | Home | PgUp | PgDn | End | | Left | Up | Down | Rigth| RAlt |
|
||||
* `----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* | ~ | | | | [ | ] |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | L1 | | Grv | | |
|
||||
* | Space|Enter |------| |------| Enter|Space |
|
||||
* | | | / | | \ | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
|
||||
// Otherwise, it needs KC_*
|
||||
[BASE] = LAYOUT_ergodox( // layer 0 : default
|
||||
// left hand
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LGUI,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DELT,
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G,
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_BSPC,
|
||||
KC_LALT, KC_HOME, KC_PGUP, KC_PGDN, KC_END,
|
||||
KC_TILD, KC_PIPE,
|
||||
TG(EXTRA),
|
||||
KC_SPC, KC_ENT, KC_SLSH,
|
||||
// right hand
|
||||
KC_LGUI, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
KC_TAB, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_EQL,
|
||||
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RSFT,
|
||||
KC_BSPC, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT, KC_RCTL,
|
||||
KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_RALT,
|
||||
KC_LBRC, KC_RBRC,
|
||||
KC_GRV,
|
||||
KC_BSLS, KC_ENT, KC_SPC
|
||||
),
|
||||
/* Keymap 1: Extra Layer
|
||||
*
|
||||
* ,---------------------------------------------------. ,--------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | | | PSCR | F6 | F7 | F8 | F9 | F10 | F11 |
|
||||
* |---------+------+------+------+------+------+------| |------+------+------+------+------+------+--------|
|
||||
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | Caps | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
|
||||
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
|
||||
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
|
||||
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
|
||||
* | | | | | | | 0 | , | . | = | |
|
||||
* `-----------------------------------' `----------------------------------'
|
||||
* ,-------------. ,-------------.
|
||||
* |VolUp |VolDn | | Prev | Next |
|
||||
* ,------|------|------| |------+------+------.
|
||||
* | | | | | Stop |Bright|Bright|
|
||||
* | Mute |Pause |------| |------|ness- |ness+ |
|
||||
* | | | | | Play | | |
|
||||
* `--------------------' `--------------------'
|
||||
*/
|
||||
// SYMBOLS
|
||||
[EXTRA] = LAYOUT_ergodox(
|
||||
// left hand
|
||||
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
|
||||
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
|
||||
KC_CAPS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
|
||||
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
|
||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
||||
KC_VOLU,KC_VOLD,
|
||||
KC_TRNS,
|
||||
KC_MUTE,KC_PAUS,KC_TRNS,
|
||||
// right hand
|
||||
KC_PSCR, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
|
||||
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
|
||||
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
|
||||
KC_0, KC_COMM, KC_DOT, KC_EQL, KC_TRNS,
|
||||
KC_MPRV, KC_MNXT,
|
||||
KC_STOP,
|
||||
KC_MPLY, RGB_VAD, RGB_VAI
|
||||
),
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (record->event.pressed) { // For resetting EEPROM
|
||||
eeconfig_init();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
// dynamically generate these.
|
||||
case EPRM:
|
||||
if (record->event.pressed) {
|
||||
eeconfig_init();
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case VRSN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RGB_SLD:
|
||||
if (record->event.pressed) {
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
rgblight_mode(1);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Runs just one time when the keyboard initializes.
|
||||
void matrix_init_user(void) {
|
||||
|
||||
};
|
||||
|
||||
|
||||
// Runs constantly in the background, in a loop.
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
uint8_t layer = biton32(layer_state);
|
||||
|
||||
ergodox_board_led_off();
|
||||
ergodox_right_led_1_off();
|
||||
ergodox_right_led_2_off();
|
||||
ergodox_right_led_3_off();
|
||||
switch (layer) {
|
||||
// TODO: Make this relevant to the ErgoDox EZ.
|
||||
case 1:
|
||||
ergodox_right_led_1_on();
|
||||
break;
|
||||
case 2:
|
||||
ergodox_right_led_2_on();
|
||||
break;
|
||||
default:
|
||||
// none
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
@@ -49,6 +49,13 @@
|
||||
/*tap dance definition */
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
//Mousekeys Settings
|
||||
#define MOUSEKEY_INTERVAL 1
|
||||
#define MOUSEKEY_DELAY 0
|
||||
#define MOUSEKEY_TIME_TO_MAX 1
|
||||
#define MOUSEKEY_MAX_SPEED 15
|
||||
#define MOUSEKEY_WHEEL_DELAY 0
|
||||
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
@@ -173,14 +173,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | left | down | right | PrScr | SHIFT | CTRL | PgDn | END | [ | ] |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | | | | | | | | | ALT | / |
|
||||
// * | P-Brk | | | | | | | RGUI | ALT | / |
|
||||
// * '-----------------------------------------------------------------------------------------'
|
||||
// */
|
||||
//
|
||||
[DIR] = KEYMAP( /* Directional Modifiers */
|
||||
KC_TAB, KC_UP, KC_TRNS, KC_INS, KC_LCTL, KC_RSFT, KC_PGUP, KC_HOME, KC_MINS, KC_EQL ,
|
||||
KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC ,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RALT, KC_SLSH
|
||||
KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_LALT, KC_SLSH
|
||||
),
|
||||
//
|
||||
// /*
|
||||
@@ -205,17 +205,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// /*
|
||||
// * ETC
|
||||
// * .-----------------------------------------------------------------------------------------.
|
||||
// * | ` | | | | | | | | | \ |
|
||||
// * | ` | mUP | | | | SHIFT | mUp | mDown | | \ |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | CAPS | P-Brk | | | | | | | ; | ' |
|
||||
// * | mLeft | mDown | mRight | | SHIFT | | mBtn1 | mBtn2 | ; | ' |
|
||||
// * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
// * | SHIFT | | | | | C-A-D | | GUI | | DEL |
|
||||
// * | Sft//Cp| | | | | C-A-D | | | ALT | DEL |
|
||||
// * '-----------------------------------------------------------------------------------------'
|
||||
// */
|
||||
//
|
||||
[ETC] = KEYMAP( /* ETC */
|
||||
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_BSLS ,
|
||||
KC_CAPS, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT ,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LALT(LCTL(KC_DEL)), KC_TRNS, KC_RGUI, KC_TRNS, KC_DEL
|
||||
KC_GRV, KC_MS_U, _______, _______, _______, KC_RSFT, KC_WH_U, KC_WH_D, _______, KC_BSLS ,
|
||||
KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_LSFT, KC_TRNS, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT ,
|
||||
TD(TD_SFT_CAPS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LALT(LCTL(KC_DEL)), KC_TRNS, KC_TRNS, KC_LALT, KC_DEL
|
||||
),
|
||||
};
|
||||
|
@@ -1,12 +1,47 @@
|
||||

|
||||

|
||||
|
||||
# Gherkin Wanleg Layout
|
||||
|
||||
Here is the layout I came up with to preserve a standard QWERTY layout as much as possible, in as few layers as possible for a 30 key board.
|
||||
I originally set up a few Tap Dance keys, but eventually dropped most of them in favor of chorded versions, since in actual use, they tended to impede typing speed more than their (current) two-key versions.
|
||||
I originally set up a few Tap Dance keys, but dropped half of them in favor of chorded versions, since in actual use, they tended to impede typing speed more than their (current) two-key versions.
|
||||
I've left them in my layout ready for use if anyone wants to try them out:
|
||||
Single tap - Double tap - Hold
|
||||
space - enter - shift
|
||||
backspace - delete - control
|
||||
shift - caps lock - XXXX
|
||||
KC_Q - escape - XXXX
|
||||
|
||||
Legend Name | Single Tap | Double Tap | Hold
|
||||
--- | --- | --- | ---
|
||||
*null* | space | enter | shift
|
||||
*null* | backspace | delete | control
|
||||
Sft//Cp | shift | caps lock | *null*
|
||||
Q//Esc | KC_Q | escape | *null*
|
||||
|
||||
# Gherkin Flashing
|
||||
## Linux
|
||||
The ProMicro doesn't like dfu-programmer, so we have to use AVRdude. What follows below are instructions for Linux taken from https://deskthority.net/workshop-f7/how-to-use-a-pro-micro-as-a-cheap-controller-converter-like-soarer-s-t8448.html
|
||||
|
||||
`ls /dev/tty*`
|
||||
|
||||
Next, plug in your device and re-run the command, the same as before:
|
||||
|
||||
`ls /dev/tty*`
|
||||
|
||||
There should be one more output device than was seen previously. For me, it's /dev/ttyACM0.
|
||||
To flash the device, you need to have AVRdude installed. On Linux, you can do this with your normal package manager.
|
||||
Once you have AVRdude set up, navigate to the directory with your .hex file in it. Then, run the following:
|
||||
|
||||
`avrdude -p atmega32u4 -P YOUR_SERIAL_PORT -c avr109 -U flash:w:YOUR_FILENAME.hex`
|
||||
|
||||
Of course, replace YOUR_SERIAL_PORT with your serial port's device name, and YOUR_FILENAME.hex with the appropriate filename. For me, this line looks like this:
|
||||
|
||||
`avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
|
||||
|
||||
If it says ''device not in sync'' or similar, your device is no longer in bootloader mode. Unplug it, and get it back into bootloader mode like you did in the previous step (or short the reset pin), and try again.
|
||||
If this still doesn't work, try running the command again as root
|
||||
|
||||
`sudo avrdude -p atmega32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:Soarer_at2usb_v1.12_atmega32u4.hex`
|
||||
|
||||
## Windows
|
||||
1. Install the latest version of AVRdude for Windows from http://savannah.nongnu.org/projects/avrdude/
|
||||
Test that it installed correctly by running "avrdude" from Command Prompt. It should display a usage message with version information at the end
|
||||
2. Open Device Manager and take a look at your "Ports (COM & LPT)" section
|
||||
3. Plug in the Gherkin and short the RESET pin on the microcontroller to Ground to put it into bootloader mode. Take note of the new COM device that shows up. After 8 seconds or so the microcontroller will leave bootloader mode and it will disappear from that section
|
||||
4. Open Command Prompt and run the following (substituting "com7" with whatever port you saw earlier)
|
||||
|
||||
`avrdude -p atmega32u4 -P com7 -c avr109 -U flash:w:YOURHEX.hex`
|
||||
|
1
keyboards/jc65/v32u4/keymaps/dead_encryption/config.h
Normal file
1
keyboards/jc65/v32u4/keymaps/dead_encryption/config.h
Normal file
@@ -0,0 +1 @@
|
||||
#include "../../config.h"
|
35
keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c
Normal file
35
keyboards/jc65/v32u4/keymaps/dead_encryption/keymap.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include "v32u4.h"
|
||||
// How long (in ms) to wait between animation steps for the breathing mode
|
||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the rainbow mode
|
||||
const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the swirl mode
|
||||
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {30, 20, 3};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the snake mode
|
||||
const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
|
||||
// How long (in ms) to wait between animation steps for the knight modes
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
|
||||
// These control which colors are selected for the gradient mode
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_SPACE, KC_SPACE, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = KEYMAP(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_PAUS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_MOD, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS,
|
||||
KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_HUD, RGB_SAD, RGB_VAD, KC_DOWN, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, BL_TOGG, BL_STEP, BL_INC, BL_DEC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MPLY, KC_MPLY, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
10
keyboards/jc65/v32u4/keymaps/dead_encryption/readme.md
Normal file
10
keyboards/jc65/v32u4/keymaps/dead_encryption/readme.md
Normal file
@@ -0,0 +1,10 @@
|
||||
Dead's Keymap
|
||||
===
|
||||
|
||||
Split backspace, 6.25u space, 2 Function Layers, reset + rgb controls on layer(2)
|
||||
|
||||
Intended usage: This is my daily driver keymap
|
||||
|
||||
===
|
||||
|
||||
Encryption Complete
|
8
keyboards/jj40/keymaps/ajp10304/config.h
Normal file
8
keyboards/jj40/keymaps/ajp10304/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#define PREVENT_STUCK_MODIFIERS
|
||||
|
||||
#endif
|
70
keyboards/jj40/keymaps/ajp10304/jj40.h
Normal file
70
keyboards/jj40/keymaps/ajp10304/jj40.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
Copyright 2017 Luiz Ribeiro <luizribeiro@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef KEYMAP_COMMON_H
|
||||
#define KEYMAP_COMMON_H
|
||||
|
||||
#include "quantum.h"
|
||||
// #include "keycode.h"
|
||||
// #include "action.h"
|
||||
|
||||
#define KEYMAP_GRID( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K36, K37, K38, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP_MIT( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K3X, K38, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K3X, KC_NO, K38, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP_OFFSET( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \
|
||||
K31, K32, K33, K34, K35, K36, K3X, K39, K310, K311, K312 \
|
||||
) \
|
||||
{ \
|
||||
{ K012, K011, K010, K09, K05, K06, K07, K08, K04, K03, K02, K01 }, \
|
||||
{ K112, K111, K110, K19, K15, K16, K17, K18, K14, K13, K12, K11 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K212, K211, K210, K29, K25, K26, K27, K28, K24, K23, K22, K21 }, \
|
||||
{ K312, K311, K310, K39, K35, K36, K3X, KC_NO, K34, K33, K32, K31 } \
|
||||
}
|
||||
|
||||
#define KEYMAP KEYMAP_GRID
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_planck_grid
|
||||
|
||||
#endif
|
206
keyboards/jj40/keymaps/ajp10304/keymap.c
Normal file
206
keyboards/jj40/keymaps/ajp10304/keymap.c
Normal file
@@ -0,0 +1,206 @@
|
||||
#include "jj40.h"
|
||||
#include "action_layer.h"
|
||||
#include "eeconfig.h"
|
||||
#include "keymap_uk.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _QWERTY 0
|
||||
#define _LOWER 1
|
||||
#define _RAISE 2
|
||||
#define _FUNC 3
|
||||
#define _ADJUST 16
|
||||
#define _DYN 6
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
FUNC,
|
||||
LOWER,
|
||||
RAISE,
|
||||
DYNAMIC_MACRO_RANGE
|
||||
};
|
||||
|
||||
#include "dynamic_macro.h"
|
||||
|
||||
// Fillers to make layering more clear
|
||||
#define _______ KC_TRNS
|
||||
#define XXXXXXX KC_NO
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP(\
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC ,\
|
||||
MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) ,\
|
||||
KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT ,\
|
||||
MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) \
|
||||
),
|
||||
|
||||
/* Function
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = KEYMAP(\
|
||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12 ,\
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, UK_TILD, KC_INSERT ,\
|
||||
KC_LSHIFT, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_PAST, KC_MINS, KC_EQL, KC_BSLASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = KEYMAP(\
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC ,\
|
||||
LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LSFT(KC_0), LCTL(KC_DEL), LCTL(KC_BSPC) ,\
|
||||
KC_LSPO, KC_NONUS_BSLASH, KC_GRAVE, KC_NONUS_HASH, KC_QUOT, KC_MINS, KC_EQL, KC_NONUS_HASH, KC_LBRC, KC_RBRC, KC_QUOT, MT(MOD_RSFT, KC_ENT) ,\
|
||||
_______, _______, _______, _______, _______, KC_DEL, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY \
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | Alt | Enter|Raise | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = KEYMAP(\
|
||||
KC_GRV, XXXXXXX, M(1), KC_LBRC, KC_RBRC, XXXXXXX, XXXXXXX, KC_PGUP, KC_HOME, KC_PGDOWN, XXXXXXX, KC_PSCREEN ,\
|
||||
KC_GRV, XXXXXXX, XXXXXXX, LSFT(KC_9), LSFT(KC_0), XXXXXXX, XXXXXXX, KC_HOME, KC_UP, KC_END, XXXXXXX, LCTL(LSFT(KC_EQL)) ,\
|
||||
_______, XXXXXXX, XXXXXXX, LSFT(KC_LBRC), LSFT(KC_RBRC), XXXXXXX, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT), LCTL(KC_MINS) ,\
|
||||
_______, _______, _______, _______, _______, KC_LALT, KC_ENT, _______, XXXXXXX, _______, _______, _______ \
|
||||
),
|
||||
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | Prev | Vol- | Next | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | DYN | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP(\
|
||||
M(0), RESET, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL ,\
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, KC_AUDIO_MUTE, KC_AUDIO_VOL_UP, KC_MEDIA_PLAY_PAUSE, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK, _______, _______ ,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, MO(_DYN), _______, _______, _______ \
|
||||
),
|
||||
|
||||
/* DYN: Macro Recording and Playback
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | | | | | REC1 | REC2 | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | | | | PLAY1| PLAY2| | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | STOP | STOP | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DYN]= KEYMAP(\
|
||||
_______, _______, _______, _______, _______, DYN_REC_START1, DYN_REC_START2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______,\
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______\
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
|
||||
void persistant_default_layer_set(uint16_t default_layer) {
|
||||
eeconfig_update_default_layer(default_layer);
|
||||
default_layer_set(default_layer);
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
if (!process_record_dynamic_macro(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
persistant_default_layer_set(1UL<<_QWERTY);
|
||||
}
|
||||
return false;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
switch(id) {
|
||||
// These would trigger when you hit a key mapped as M(0)
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
// SENSITIVE
|
||||
END
|
||||
);
|
||||
}
|
||||
break;
|
||||
case 1: // Word Select
|
||||
if (record->event.pressed) {
|
||||
return MACRO(
|
||||
DOWN(KC_LCTL), DOWN(KC_RIGHT), UP(KC_RIGHT), DOWN(KC_LSFT), DOWN(KC_LEFT), UP(KC_LEFT), UP(KC_LSFT), UP(KC_LCTL),
|
||||
END
|
||||
);
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
91
keyboards/jj40/keymaps/ajp10304/readme.md
Normal file
91
keyboards/jj40/keymaps/ajp10304/readme.md
Normal file
@@ -0,0 +1,91 @@
|
||||
# AJP10304 Custom JJ40 Layout
|
||||
###Based on my Planck layout of the same name.
|
||||
|
||||
**Note:** In the tables below where there are two characters on a key,
|
||||
the second is the output when shift is applied.
|
||||
|
||||
**Note:** The below tables assume a UK layout.
|
||||
|
||||
##### Main Qwerty Layer
|
||||
|
||||
* Tab: when held, operates as shift.
|
||||
* Enter: when held, operates as shift.
|
||||
* MENU: perform right-click
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
|
||||
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | Shift| MENU | Ctrl | Fn |
|
||||
|
||||
##### Function Layer
|
||||
Activated when `fn` held in the above `qwerty` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
|
||||
##### Lower Layer
|
||||
Activated when `Lower` is held in the above `qwerty` layer.
|
||||
|
||||
* Numbers are along the top row, their shifted counterparts are on row 2.
|
||||
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
|
||||
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
|
||||
##### Raise Layer
|
||||
Activated when `Raise` is held in the above `qwerty` layer.
|
||||
|
||||
* Preferred layer for typing brackets.
|
||||
* Allows for cursor navigation to be used solely with the right hand.
|
||||
* WRDSEL: Select the word where the cursor is.
|
||||
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
|
||||
* Reset: Enter bootloader for flashing firmware to the keyboard.
|
||||
* CAPS: Toggle caps lock.
|
||||
* DYN: Enter `DYN` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### DYN
|
||||
Activated when `DYN` held along with `Lower` and `Raise`
|
||||
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
|
||||
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
||||
|
||||
####Manual Flashing of hex file
|
||||
`bootloadHID -r .build/jj40_ajp10304.hex`
|
5
keyboards/jj40/keymaps/ajp10304/rules.mk
Normal file
5
keyboards/jj40/keymaps/ajp10304/rules.mk
Normal file
@@ -0,0 +1,5 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
AUDIO_ENABLE = no
|
8
keyboards/lfkeyboards/lfk78/keymaps/ca178858/config.h
Normal file
8
keyboards/lfkeyboards/lfk78/keymaps/ca178858/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
197
keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
Normal file
197
keyboards/lfkeyboards/lfk78/keymaps/ca178858/keymap.c
Normal file
@@ -0,0 +1,197 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
#include "process_tap_dance.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
CS_GO, // 0x08
|
||||
FUNC, // 0x10
|
||||
SETTINGS, // 0x20
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_ESC_FUNC = 0,
|
||||
TD_ESC_CTRL,
|
||||
TD_SPC_SPAM
|
||||
};
|
||||
|
||||
bool spam_space = false;
|
||||
|
||||
|
||||
// {0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
// {0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
// {0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
// {0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
// {0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
{0x00000004, 0xFFFFFFFC, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000008, 0xFFFFFFE8, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap BASE: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* |Vol-|Vol+| |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del|PgDn|
|
||||
* |---------| |------------------------------------------------------------| `---------'
|
||||
* | F5 | F6 | |Control | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |---------| |------------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shift | Z| X| C| V| B| N| M| ,| .| /| Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Func|Alt |Cmd | Space |Cmd |Alt |Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[VANILLA] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_VOLD, KC_VOLU, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, LALT(KC_F5), KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(CS_GO), KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[CS_GO] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_LCTL, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | V- | V+ | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab | |PgU| | | | | | Up| | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | F10| |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, TO(CS_GO), KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_NO, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-----------------------------------------------------------. ,-------------.
|
||||
* | | | |FN0 |BL0|BL1|BL2|BL3| | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |---------| |-----------------------------------------------------------| |-------------|
|
||||
* | | | |Debug| | | | | | | | | | | | |RGBTst| |RGB Mode|Val-|
|
||||
* |---------| |-----------------------------------------------------------| `-------------'
|
||||
* | | | |LayrClr|Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-----------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |---------| |------------------------------------------------------------------------.
|
||||
* | | | | | | | Print Debug | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = SPLIT_SHIFT_KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, DEBUG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, KC_FN0, KC_FN6,KC_FN8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN10, KC_FN7,KC_FN9, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN0, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_FN0, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
|
||||
void tap_space_spam_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return;
|
||||
}
|
||||
if(state->pressed){
|
||||
spam_space = true;
|
||||
}
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
|
||||
void tap_space_spam_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
spam_space = false;
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
|
||||
void tap_esc_func_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(state->pressed){
|
||||
layer_on(FUNC);
|
||||
}else{
|
||||
register_code(KC_ESC);
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_esc_func_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(FUNC);
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_FUNC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_esc_func_finished, tap_esc_func_reset),
|
||||
[TD_SPC_SPAM] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_space_spam_finished, tap_space_spam_reset),
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_ESC_TILDE), // FN1 - esc+shift = ~, else escape
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN2 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN3 - set base layer to 0 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN4 - set base layer to 1 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN5 - set base layer to 2 and save
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN6 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN7 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN8 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN9 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN10 - Toggle audio click
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN11 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION(LFK_DEBUG_SETTINGS), // FN12 - prints LED and click settings to HID
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if(spam_space && !(get_mods() & (MOD_BIT(KC_LGUI)))){
|
||||
register_code(KC_SPC);
|
||||
unregister_code(KC_SPC);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if((layer_state & (1 << CS_GO)) && (keycode == 44)){
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk78/keymaps/ca178858/readme.md
Normal file
1
keyboards/lfkeyboards/lfk78/keymaps/ca178858/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for bluepad
|
53
keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk78/keymaps/ca178858/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = no # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
@@ -19,8 +19,9 @@ RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not q
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
CAPSLOCK_LED = no # Toggle back light LED of Caps Lock
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
@@ -34,6 +35,10 @@ ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(CAPSLOCK_LED)), yes)
|
||||
TMK_COMMON_DEFS += -DCAPSLOCK_LED
|
||||
endif
|
||||
|
||||
# Override the LFK78 hardware version:
|
||||
#
|
||||
# B - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
|
8
keyboards/lfkeyboards/lfk78/keymaps/iso/config.h
Normal file
8
keyboards/lfkeyboards/lfk78/keymaps/iso/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
125
keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
Normal file
125
keyboards/lfkeyboards/lfk78/keymaps/iso/keymap.c
Normal file
@@ -0,0 +1,125 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x02
|
||||
SETTINGS, // 0x04
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = ISO_KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret| | Del|PgDn|
|
||||
* |---------| |--------------------------------------------------------. | `---------'
|
||||
* | F5 | F6 | |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | |
|
||||
* |---------| |-----------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Ctrl|Win |Alt | Space |Alt |Ctrl|Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_F1, KC_F2, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | | | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab |Hom| Up|End|PgU| | | | | | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |MO(FUNC)|Lft|Dn |Rig|PgD| |Lft|Dwn| Up|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | | | | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | | |Ctrl|Win |Alt | PgD |Alt |Func |CTRL | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TR, KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,-------------.
|
||||
* | | | |LayClr| | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |---------| |-------------------------------------------------------------| |-------------|
|
||||
* | | | |MuMode | | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |---------| |-------------------------------------------------------------| `-------------'
|
||||
* | | | |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl |Hz-|MS-| | | | |MuTgl| | | |Layer Clr | |Hue+|
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `--------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk78/keymaps/iso/readme.md
Normal file
1
keyboards/lfkeyboards/lfk78/keymaps/iso/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for bluepad
|
53
keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk78/keymaps/iso/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
123
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
Normal file
123
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/keymap.c
Normal file
@@ -0,0 +1,123 @@
|
||||
#include "lfk78.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x02
|
||||
SETTINGS, // 0x04
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x0000, 0x0FFF, 0x0000}}, // base layer - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = SPLIT_BS_KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,---------. ,------------------------------------------------------------. ,---------.
|
||||
* | F1 | F2 | |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = | / | ` | | Ins|PgUp|
|
||||
* |---------| |------------------------------------------------------------| |---------|
|
||||
* | F3 | F4 | |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]|Backsp| | Del|PgDn|
|
||||
* |---------| |------------------------------------------------------------| `---------'
|
||||
* | F5 | F6 | |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |---------| |------------------------------------------------------------| ,----.
|
||||
* | F7 | F8 | |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | F9 | F10| |Ctrl|Alt |Cmd | Space |Cmd |Ctrl|Func | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_F1, KC_F2, KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_INS, KC_PGUP,
|
||||
KC_F3, KC_F4, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL, KC_PGDN,
|
||||
KC_F5, KC_F6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_F7, KC_F8, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_F9, KC_F10, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,---------.
|
||||
* | | | | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Ins |Del | | Ins|Home|
|
||||
* |---------| |-------------------------------------------------------------| |---------|
|
||||
* | | | |Tab |Hom| Up|End|PgU| | | | | | | | | | | Del|End |
|
||||
* |---------| |-------------------------------------------------------------| `---------'
|
||||
* | | | |MO(FUNC)|Lft|Dn |Rig|PgD| |Lft|Dwn| Up|Rgt| | | |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |Shift | | | | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |---------| |--------------------------------------------------------------------------.
|
||||
* | | | |Ctrl|Alt |Cmd | Enter |Alt |Func |CTRL | |Lft| Dn |Rig |
|
||||
* `---------' `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = SPLIT_BS_KEYMAP(
|
||||
KC_TR, KC_TR, KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL, KC_TR, KC_HOME,
|
||||
KC_TR, KC_TR, KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_END,
|
||||
KC_TR, KC_TR, KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO, KC_NO,
|
||||
KC_TR, KC_TR, KC_TR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_ENT, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,---------. ,-------------------------------------------------------------. ,-------------.
|
||||
* | | | |LayClr| | | | | | | | | | |BL-|BL+| | | |RGB Tog |Val+|
|
||||
* |---------| |-------------------------------------------------------------| |-------------|
|
||||
* | | | |MuMode | | | | | | | | | | | | |BLTogl| |RGB Mode|Val-|
|
||||
* |---------| |-------------------------------------------------------------| `-------------'
|
||||
* | | | |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |---------| |-------------------------------------------------------------| ,----.
|
||||
* | | | |ClickTgl |Hz-|MS-| | | | |MuTgl| | | |Layer Clr | |Hue+|
|
||||
* |---------| |-------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `---------' `--------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = SPLIT_BS_KEYMAP(
|
||||
KC_NO, KC_NO, KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, KC_NO, KC_NO, RGB_TOG, RGB_VAI,
|
||||
KC_NO, KC_NO, MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_TOGG, RGB_MOD, RGB_VAD,
|
||||
KC_NO, KC_NO, AU_TOG, KC_FN1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, KC_NO, KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
}
|
@@ -0,0 +1 @@
|
||||
# The split bs keymap for LFK78
|
47
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
Normal file
47
keyboards/lfkeyboards/lfk78/keymaps/split_bs_osx/rules.mk
Normal file
@@ -0,0 +1,47 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
CAPSLOCK_LED = no # Toggle back light LED of Caps Lock
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(CAPSLOCK_LED)), yes)
|
||||
TMK_COMMON_DEFS += -DCAPSLOCK_LED
|
||||
endif
|
||||
|
||||
# Override the LFK78 hardware version:
|
||||
#
|
||||
# B - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# C-H - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# J - at90usb646, C6 audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# LFK_REV = J
|
@@ -200,7 +200,15 @@ void reset_keyboard_kb(){
|
||||
void led_set_kb(uint8_t usb_led)
|
||||
{
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
#ifdef ISSI_ENABLE
|
||||
#ifdef CAPSLOCK_LED
|
||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
||||
activateLED(0, 3, 7, 255);
|
||||
}else{
|
||||
activateLED(0, 3, 7, 0);
|
||||
}
|
||||
#endif // CAPSLOCK_LED
|
||||
#endif // ISS_ENABLE
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
|
@@ -91,7 +91,7 @@ void click(uint16_t freq, uint16_t duration);
|
||||
{ k90, k91, k92, k93, k94, k95, k96, k97, }, \
|
||||
}
|
||||
#else
|
||||
/* RevC/D Keymap */
|
||||
/* RevC+ Keymap */
|
||||
// This a shortcut to help you visually see your layout.
|
||||
/*
|
||||
* ,---------. ,-----------------------------------------------------------------------. ,---------.
|
||||
@@ -122,6 +122,20 @@ void click(uint16_t freq, uint16_t duration);
|
||||
{k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \
|
||||
}
|
||||
|
||||
#define SPLIT_BS_KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k3G, k1H, k1I, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, \
|
||||
k41, k42, k43, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4H, \
|
||||
k51, k52, k53, k54, k55, k59, k5D, k5E, k5F, k5G, k5H, k5I \
|
||||
) { \
|
||||
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I}, \
|
||||
{k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I}, \
|
||||
{k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, k3F, k3G, KC_NO, KC_NO}, \
|
||||
{k41, k42, k43, KC_NO, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, KC_NO, k4H, KC_NO}, \
|
||||
{k51, k52, k53, k54, k55, KC_NO, KC_NO, KC_NO, k59, KC_NO, KC_NO, KC_NO, k5D, k5E, k5F, k5G, k5H, k5I} \
|
||||
}
|
||||
|
||||
#define SPLIT_SHIFT_KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1F, k1G, k1H, k1I, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2E, k2F, k2G, k2H, k2I, \
|
||||
|
8
keyboards/lfkeyboards/lfk87/keymaps/ca178858/config.h
Normal file
8
keyboards/lfkeyboards/lfk87/keymaps/ca178858/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
223
keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
Normal file
223
keyboards/lfkeyboards/lfk87/keymaps/ca178858/keymap.c
Normal file
@@ -0,0 +1,223 @@
|
||||
#include "lfk87.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
#include "process_tap_dance.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
DEFAULT_WKL, // 0x02 Function in CapsLock location, gui key disabled
|
||||
DEFAULT_OSX, // 0x04 Function in CapsLock location, gui/alt swapped for OSX
|
||||
CS_GO, // 0x08 Function in CapsLock location, gui/alt swapped for OSX
|
||||
FUNC, // 0x10
|
||||
SETTINGS, // 0x20
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_ESC_FUNC = 0,
|
||||
};
|
||||
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFF8, {0x00, 0xFF, 0x00}}, // base layers (VANILLA, DEFAULT_WKL, DEFAULT_OSX) - green
|
||||
{0x00000008, 0xFFFFFFF8, {0x07FF, 0x07FF, 0x0000}}, // CSGO layer - orange
|
||||
{0x00000010, 0xFFFFFFF0, {0x0000, 0x0000, 0x0FFF}}, // function layer - blue
|
||||
{0x00000020, 0xFFFFFFE0, {0x0FFF, 0x0000, 0x0FFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0x0FFF, 0x0FFF, 0x0FFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_0, KC_1, KC_2, KC_3, KC_4, KC_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_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), MO(SETTINGS), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap DEFAULT_TKL: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl| |Alt | Space |ALT | |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[DEFAULT_WKL] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
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_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
/* Keymap DEFAULT_OSX: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl| Opt |Cmd | Space |Cmd |Opt |CTRL |Func| |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[DEFAULT_OSX] = KEYMAP(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_SLCK, KC_PAUS, LALT(KC_F5), \
|
||||
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_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC),MO(SETTINGS), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
[CS_GO] = KEYMAP(
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_FN0, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_LCTL, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, TO(CS_GO), KC_TR, KC_TR, \
|
||||
KC_NO,KC_PGUP, KC_UP, KC_PGDN, KC_HOME, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, \
|
||||
KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |LayClr| | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |Debug| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AU_TOG |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |------------------------------------------------------------------------.
|
||||
* | | | | Print Debug | | | | |Sat-|Hue-|Sat+|
|
||||
* `------------------------------------------------------' `--------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN13, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN0,KC_FN3,KC_FN4,KC_FN5, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO,
|
||||
AU_TOG, KC_FN6,KC_FN8, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_FN10, KC_FN7,KC_FN9, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_FN0, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
void tap_esc_func_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(state->pressed){
|
||||
layer_on(FUNC);
|
||||
}else{
|
||||
register_code(KC_ESC);
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_esc_func_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(FUNC);
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_FUNC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_esc_func_finished, tap_esc_func_reset),
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_ESC_TILDE), // FN1 - esc+shift = ~, else escape
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN2 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, VANILLA), // FN3 - set base layer to 0 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, DEFAULT_WKL), // FN4 - set base layer to 1 and save
|
||||
ACTION_FUNCTION_OPT(LFK_SET_DEFAULT_LAYER, DEFAULT_OSX), // FN5 - set base layer to 2 and save
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN6 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN7 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN8 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN9 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN10 - Toggle audio click
|
||||
ACTION_FUNCTION(LFK_LED_TEST), // FN11 - cycle through LEDs for testing
|
||||
ACTION_FUNCTION(LFK_DEBUG_SETTINGS), // FN12 - prints LED and click settings to HID
|
||||
ACTION_FUNCTION(LFK_PLAY_ONEUP),
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if((layer_state & (1 << CS_GO)) && (keycode == 44)){
|
||||
if(get_mods() & (MOD_BIT(KC_LGUI))){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfk87/keymaps/ca178858/readme.md
Normal file
1
keyboards/lfkeyboards/lfk87/keymaps/ca178858/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for LFK87
|
53
keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
Normal file
53
keyboards/lfkeyboards/lfk87/keymaps/ca178858/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
8
keyboards/lfkeyboards/lfk87/keymaps/gbchk/config.h
Normal file
8
keyboards/lfkeyboards/lfk87/keymaps/gbchk/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
133
keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
Normal file
133
keyboards/lfkeyboards/lfk87/keymaps/gbchk/keymap.c
Normal file
@@ -0,0 +1,133 @@
|
||||
#include "lfk87.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x08
|
||||
SETTINGS, // 0x10
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x00, 0x00, 0x00}}, // base layers - off
|
||||
{0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |Func|CTRL | |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, LGUI(KC_D), KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
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_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DELETE, KC_END, KC_PGDN, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(FUNC), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_ESC, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_PSCR, KC_SLCK, KC_PAUS, \
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_DEL, KC_TR, KC_TR, KC_TR, \
|
||||
KC_NO,KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, \
|
||||
KC_TR, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, \
|
||||
KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, \
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |FN0 | | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |MuMode| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |--------------------------------------------------------------------------.
|
||||
* | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `----------------------------------------------------------------------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO,
|
||||
AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
54
keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
Normal file
54
keyboards/lfkeyboards/lfk87/keymaps/gbchk/rules.mk
Normal file
@@ -0,0 +1,54 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# Override the LFK87 hardware version.
|
||||
#
|
||||
# A - Green PCB. at90usb1286 Only 3 exist
|
||||
# B - We don't talk about RevB
|
||||
# C-D - Black PCB. at90usb646 First public release
|
||||
#
|
||||
# LFK_REV = C
|
||||
|
||||
# ifeq ($(LFK_REV), A)
|
||||
# MCU = at90usb1286
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=8192
|
||||
# else
|
||||
# MCU = at90usb646
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_TKL_REV_$(LFK_REV)
|
151
keyboards/lfkeyboards/lfkpad/config.h
Normal file
151
keyboards/lfkeyboards/lfkpad/config.h
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER LFKeyboards
|
||||
#define PRODUCT LFKPad 21
|
||||
#define DESCRIPTION QMK keyboard firmware for LFKPad LFK_REV_STRING
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 4
|
||||
#define MATRIX_ROW_PINS { D5, F4, F6, F7, C7, C6}
|
||||
#define MATRIX_COL_PINS { F1, F0, D4, D6}
|
||||
#define UNUSED_PINS { }
|
||||
#define RGBLED_NUM 28 // Number of LEDs
|
||||
|
||||
#define RGB_DI_PIN C7 // Have to set it to something to get the ws2812 code to compile
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
#endif
|
8
keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
Normal file
8
keyboards/lfkeyboards/lfkpad/keymaps/default/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
52
keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
Normal file
52
keyboards/lfkeyboards/lfkpad/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,52 @@
|
||||
#include "lfkpad.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = KEYMAP( /* Base */
|
||||
KC_ESC, KC_TAB, KC_PEQL, MO(1), \
|
||||
KC_LNUM, KC_PSLS, KC_PAST, KC_PMNS, \
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, \
|
||||
KC_P4, KC_P5, KC_P6, \
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, \
|
||||
KC_P0, KC_PDOT),
|
||||
|
||||
[1] = KEYMAP( /* RGB */
|
||||
RGB_SAI, RGB_VAI, RGB_HUI, KC_TRNS, \
|
||||
RGB_SAD, RGB_VAD, RGB_HUD, KC_TRNS, \
|
||||
RGB_M_X, RGB_M_G, RGB_MOD, RGB_RMOD, \
|
||||
RGB_M_SW, RGB_M_SN, RGB_M_K, \
|
||||
RGB_M_P, RGB_M_B, RGB_M_R, RGB_TOG, \
|
||||
KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
Normal file
1
keyboards/lfkeyboards/lfkpad/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap LFKPad 21
|
53
keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
Normal file
53
keyboards/lfkeyboards/lfkpad/keymaps/default/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not qmk base
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = no # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
176
keyboards/lfkeyboards/lfkpad/lfkpad.c
Normal file
176
keyboards/lfkeyboards/lfkpad/lfkpad.c
Normal file
@@ -0,0 +1,176 @@
|
||||
#include <avr/sfr_defs.h>
|
||||
#include <avr/timer_avr.h>
|
||||
#include <avr/wdt.h>
|
||||
#include "lfkpad.h"
|
||||
#include "keymap.h"
|
||||
#include "issi.h"
|
||||
#include "TWIlib.h"
|
||||
#include "lighting.h"
|
||||
#include "debug.h"
|
||||
#include "quantum.h"
|
||||
|
||||
uint16_t click_hz = CLICK_HZ;
|
||||
uint16_t click_time = CLICK_MS;
|
||||
uint8_t click_toggle = CLICK_ENABLED;
|
||||
|
||||
|
||||
void matrix_init_kb(void)
|
||||
{
|
||||
matrix_init_user();
|
||||
#ifndef AUDIO_ENABLE
|
||||
// If we're not using the audio pin, drive it low
|
||||
sbi(DDRC, 6);
|
||||
cbi(PORTC, 6);
|
||||
#endif
|
||||
|
||||
#ifdef ISSI_ENABLE
|
||||
issi_init();
|
||||
#endif
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
// This is done after turning the layer LED red, if we're caught in a loop
|
||||
// we should get a flashing red light
|
||||
wdt_enable(WDTO_500MS);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void)
|
||||
{
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
wdt_reset();
|
||||
#endif
|
||||
#ifdef ISSI_ENABLE
|
||||
// switch/underglow lighting update
|
||||
static uint32_t issi_device = 0;
|
||||
static uint32_t twi_last_ready = 0;
|
||||
if(twi_last_ready > 1000){
|
||||
// Its been way too long since the last ISSI update, reset the I2C bus and start again
|
||||
dprintf("TWI failed to recover, TWI re-init\n");
|
||||
twi_last_ready = 0;
|
||||
TWIInit();
|
||||
force_issi_refresh();
|
||||
}
|
||||
if(isTWIReady()){
|
||||
twi_last_ready = 0;
|
||||
// If the i2c bus is available, kick off the issi update, alternate between devices
|
||||
update_issi(issi_device, issi_device);
|
||||
if(issi_device){
|
||||
issi_device = 0;
|
||||
}else{
|
||||
issi_device = 3;
|
||||
}
|
||||
}else{
|
||||
twi_last_ready++;
|
||||
}
|
||||
#endif
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void click(uint16_t freq, uint16_t duration){
|
||||
#ifdef AUDIO_ENABLE
|
||||
if(freq >= 100 && freq <= 20000 && duration < 100){
|
||||
play_note(freq, 10);
|
||||
for (uint16_t i = 0; i < duration; i++){
|
||||
_delay_ms(1);
|
||||
}
|
||||
stop_all_notes();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
|
||||
{
|
||||
if (click_toggle && record->event.pressed){
|
||||
click(click_hz, click_time);
|
||||
}
|
||||
if (keycode == RESET) {
|
||||
reset_keyboard_kb();
|
||||
} else {
|
||||
}
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
|
||||
{
|
||||
#ifdef AUDIO_ENABLE
|
||||
int8_t sign = 1;
|
||||
#endif
|
||||
if(id == LFK_ESC_TILDE){
|
||||
// Send ~ on shift-esc
|
||||
void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key;
|
||||
uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT));
|
||||
if(layer_state == 0){
|
||||
method(shifted ? KC_GRAVE : KC_ESCAPE);
|
||||
}else{
|
||||
method(shifted ? KC_ESCAPE : KC_GRAVE);
|
||||
}
|
||||
send_keyboard_report();
|
||||
}else if(event->event.pressed){
|
||||
switch(id){
|
||||
case LFK_SET_DEFAULT_LAYER:
|
||||
// set/save the current base layer to eeprom, falls through to LFK_CLEAR
|
||||
eeconfig_update_default_layer(1UL << opt);
|
||||
default_layer_set(1UL << opt);
|
||||
case LFK_CLEAR:
|
||||
// Go back to default layer
|
||||
layer_clear();
|
||||
break;
|
||||
#ifdef AUDIO_ENABLE
|
||||
case LFK_CLICK_FREQ_LOWER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_FREQ_HIGHER:
|
||||
click_hz += sign * 100;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
case LFK_CLICK_TOGGLE:
|
||||
if(click_toggle){
|
||||
click_toggle = 0;
|
||||
click(4000, 100);
|
||||
click(1000, 100);
|
||||
}else{
|
||||
click_toggle = 1;
|
||||
click(1000, 100);
|
||||
click(4000, 100);
|
||||
}
|
||||
break;
|
||||
case LFK_CLICK_TIME_SHORTER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_TIME_LONGER:
|
||||
click_time += sign;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void reset_keyboard_kb(){
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
MCUSR = 0;
|
||||
wdt_disable();
|
||||
wdt_reset();
|
||||
#endif
|
||||
reset_keyboard();
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led)
|
||||
{
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
// LFK lighting info
|
||||
const uint8_t rgb_matrices[] = {0, 1};
|
||||
const uint8_t rgb_sequence[] = {
|
||||
32, 1, 2, 3,
|
||||
31, 30, 5, 6,
|
||||
28, 27, 7, 8,
|
||||
17, 18, 9,
|
||||
19, 21, 11, 12,
|
||||
22, 14,
|
||||
|
||||
16, 26,
|
||||
4, 25,
|
||||
13, 24,
|
||||
20
|
||||
|
||||
};
|
73
keyboards/lfkeyboards/lfkpad/lfkpad.h
Normal file
73
keyboards/lfkeyboards/lfkpad/lfkpad.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#ifndef LFKPAD_H
|
||||
#define LFKPAD_H
|
||||
|
||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
||||
#if __has_include("kb.h")
|
||||
#include "kb.h"
|
||||
#endif
|
||||
|
||||
#include "quantum.h"
|
||||
#include "matrix.h"
|
||||
#include <avr/sfr_defs.h>
|
||||
|
||||
#ifndef cbi
|
||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
||||
#endif
|
||||
|
||||
#ifndef sbi
|
||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct RGB_Color {
|
||||
uint16_t red;
|
||||
uint16_t green;
|
||||
uint16_t blue;
|
||||
} RGB_Color;
|
||||
|
||||
typedef struct Layer_Info {
|
||||
uint32_t layer;
|
||||
uint32_t mask;
|
||||
RGB_Color color;
|
||||
} Layer_Info;
|
||||
|
||||
extern const uint32_t layer_count;
|
||||
extern const Layer_Info layer_info[];
|
||||
|
||||
enum action_functions {
|
||||
LFK_CLEAR = 0, // Resets all layers
|
||||
LFK_ESC_TILDE, // esc+lshift = ~
|
||||
LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
|
||||
LFK_CLICK_TOGGLE, // Adjusts click duration
|
||||
LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
|
||||
LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
|
||||
LFK_CLICK_TIME_LONGER, // Adjusts click duration
|
||||
LFK_CLICK_TIME_SHORTER, // Adjusts click duration
|
||||
LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
|
||||
LFK_LED_TEST // cycles through switch and RGB LEDs
|
||||
};
|
||||
|
||||
#define CLICK_HZ 500
|
||||
#define CLICK_MS 2
|
||||
#define CLICK_ENABLED 0
|
||||
|
||||
void reset_keyboard_kb(void);
|
||||
void click(uint16_t freq, uint16_t duration);
|
||||
|
||||
#define KEYMAP( \
|
||||
k00, k01, k02, k03,\
|
||||
k10, k11, k12, k13,\
|
||||
k20, k21, k22, k23,\
|
||||
k30, k31, k32,\
|
||||
k40, k41, k42, k43,\
|
||||
k50, k52\
|
||||
) { \
|
||||
{ k00, k01, k02, k03 }, \
|
||||
{ k10, k11, k12, k13 }, \
|
||||
{ k20, k21, k22, k23 }, \
|
||||
{ k30, k31, k32, KC_NO }, \
|
||||
{ k40, k41, k42, k43 }, \
|
||||
{ k50, KC_NO, k52, KC_NO } \
|
||||
}
|
||||
|
||||
#endif //LFKPAD_H
|
28
keyboards/lfkeyboards/lfkpad/readme.md
Normal file
28
keyboards/lfkeyboards/lfkpad/readme.md
Normal file
@@ -0,0 +1,28 @@
|
||||
bluepad keyboard firmware
|
||||
======================
|
||||
|
||||
## Quantum MK Firmware
|
||||
|
||||
For the full Quantum feature list, see [the parent readme.md](/doc/readme.md).
|
||||
|
||||
## Building
|
||||
|
||||
Download or clone the whole firmware and navigate to the keyboards/bluepad folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file.
|
||||
|
||||
Depending on which keymap you would like to use, you will have to compile slightly differently.
|
||||
|
||||
### Default
|
||||
|
||||
To build with the default keymap, simply run `make`.
|
||||
|
||||
### Other Keymaps
|
||||
|
||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a folder with the name of your keymap in the keymaps folder, and see keymap documentation (you can find in top readme.md) and existant keymap files.
|
||||
|
||||
To build the firmware binary hex file with a keymap just do `make` with `keymap` option like:
|
||||
|
||||
```
|
||||
$ make keymap=[default|jack|<name>]
|
||||
```
|
||||
|
||||
Keymaps follow the format **__keymap.c__** and are stored in folders in the `keymaps` folder, eg `keymaps/my_keymap/`
|
14
keyboards/lfkeyboards/lfkpad/rules.mk
Normal file
14
keyboards/lfkeyboards/lfkpad/rules.mk
Normal file
@@ -0,0 +1,14 @@
|
||||
SRC = TWIlib.c issi.c lighting.c
|
||||
|
||||
MCU = atmega32u4
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
F_CPU = 16000000
|
||||
F_USB = $(F_CPU)
|
||||
ARCH = AVR8
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../Makefile
|
||||
endif
|
@@ -16,7 +16,9 @@
|
||||
|
||||
extern rgblight_config_t rgblight_config; // Declared in rgblight.c
|
||||
|
||||
const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP;
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
const uint8_t backlight_pwm_map[BACKLIGHT_LEVELS] = BACKLIGHT_PWM_MAP;
|
||||
#endif
|
||||
|
||||
// RGB# to ISSI matrix, this is the same across all revisions
|
||||
const uint8_t rgb_leds[][3][2] = {
|
||||
|
159
keyboards/lfkeyboards/mini1800/config.h
Normal file
159
keyboards/lfkeyboards/mini1800/config.h
Normal file
@@ -0,0 +1,159 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_H
|
||||
#define CONFIG_H
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER LFKeyboards
|
||||
#define PRODUCT LFK87
|
||||
#define DESCRIPTION QMK keyboard firmware for LFK87
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Matrix config */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 19
|
||||
#define MATRIX_ROW_PINS {D7, E1, F2, F0, F1}
|
||||
#define MATRIX_COL_PINS {E6, E0, A3, A4, A5, A6, A7, C7, C5, C4, C3, C2, C1, C0, D6, A2, A1, A0, F3}
|
||||
#define UNUSED_PINS {}
|
||||
#define RGBLED_NUM 26 // Number of LEDs
|
||||
|
||||
#define AUDIO_VOICES
|
||||
#define C6_AUDIO
|
||||
|
||||
#define BACKLIGHT_LEVELS 10
|
||||
#define BACKLIGHT_PWM_MAP {2, 4, 8, 16, 40, 55, 70, 128, 200, 255}
|
||||
|
||||
#define RGB_DI_PIN F4 // Have to set it to something to get the ws2812 code to compile
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
#endif
|
8
keyboards/lfkeyboards/mini1800/keymaps/ca178858/config.h
Normal file
8
keyboards/lfkeyboards/mini1800/keymaps/ca178858/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
154
keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c
Normal file
154
keyboards/lfkeyboards/mini1800/keymaps/ca178858/keymap.c
Normal file
@@ -0,0 +1,154 @@
|
||||
#include "mini1800.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
#include "process_tap_dance.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x08
|
||||
SETTINGS, // 0x10
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_ESC_FUNC = 0,
|
||||
TD_ESC_CTRL,
|
||||
TD_SPC_SPAM
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |Func|CTRL | |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||
TD(TD_ESC_FUNC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, LALT(KC_F5),
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,KC_NO, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_NO, KC_DEL, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |FN0 | | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |MuMode| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |--------------------------------------------------------------------------.
|
||||
* | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `----------------------------------------------------------------------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, KC_NO,
|
||||
AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
void tap_esc_func_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||
if(state->pressed){
|
||||
layer_on(FUNC);
|
||||
}else{
|
||||
register_code(KC_ESC);
|
||||
unregister_code(KC_ESC);
|
||||
}
|
||||
}
|
||||
|
||||
void tap_esc_func_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||
layer_off(FUNC);
|
||||
}
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_ESC_FUNC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, tap_esc_func_finished, tap_esc_func_reset),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
53
keyboards/lfkeyboards/mini1800/keymaps/ca178858/rules.mk
Normal file
53
keyboards/lfkeyboards/mini1800/keymaps/ca178858/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = yes
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
8
keyboards/lfkeyboards/mini1800/keymaps/default/config.h
Normal file
8
keyboards/lfkeyboards/mini1800/keymaps/default/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
130
keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
Normal file
130
keyboards/lfkeyboards/mini1800/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,130 @@
|
||||
#include "mini1800.h"
|
||||
#include "issi.h"
|
||||
#include "lighting.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0, // matches MF68 layout
|
||||
FUNC, // 0x08
|
||||
SETTINGS, // 0x10
|
||||
};
|
||||
|
||||
// Colors of the layer indicator LED
|
||||
// This list needs to define layer 0xFFFFFFFF, it is the end of the list, and the unknown layer
|
||||
const Layer_Info layer_info[] = {
|
||||
// Layer Mask Red Green Blue
|
||||
{0x00000000, 0xFFFFFFFF, {0x00, 0xFF, 0x00}}, // base layers - green
|
||||
{0x00000002, 0xFFFFFFFE, {0x00, 0x00, 0xFF}}, // function layer - blue
|
||||
{0x00000004, 0xFFFFFFFC, {0xFF, 0x00, 0xFF}}, // settings layer - magenta
|
||||
{0xFFFFFFFF, 0xFFFFFFFF, {0xFF, 0xFF, 0xFF}}, // unknown layer - REQUIRED - white
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------------------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12| |Prnt|ScLk|Paus|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backsp | | Ins|Home|PgUp|
|
||||
* |-----------------------------------------------------------| |--------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \| | Del| End|PgDn|
|
||||
* |-----------------------------------------------------------| `--------------'
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | Up |
|
||||
* |-----------------------------------------------------------| ,-------------.
|
||||
* |Ctrl|Gui |Alt | Space |ALT |GUI |Func|CTRL | |Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------' `-------------'
|
||||
*/
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NLCK, KC_PSLS, KC_PAST, KC_PEQL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT),
|
||||
/* Keymap FUNCTION: Function Layer
|
||||
* ,-------------------------------------------------------------. ,--------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* | ` |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Delete | | | | |
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |Tab | |PgU| | | | | | Up| | | | | | | | | |
|
||||
* |-------------------------------------------------------------| `--------------'
|
||||
* |Control|Hme|PgD|End| | | |Lft|Dwn|Rgt| | | |
|
||||
* |-------------------------------------------------------------| ,----.
|
||||
* |Shift | |Del| | | | |Mute|V- |V+ | |TG(SETTINGS)| | Up |
|
||||
* |-------------------------------------------------------------' ,-------------.
|
||||
* |Func|Win |Alt | PgD |Alt |Ctrl |Func | |Lft| Dn |Rig |
|
||||
* `------------------------------------------------------' `-------------'
|
||||
*/
|
||||
[FUNC] = KEYMAP(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_NO,KC_HOME, KC_UP, KC_END, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_NO,KC_NO, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, TG(SETTINGS), KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_PGDN, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
|
||||
/* Keymap SETTINGS: Settings Layer
|
||||
* ,-----------------------------------------------------------. ,-------------.
|
||||
* |Esc |f1| f2| f3| f4| | f5| f6| f7| f8| | f9|f10|f11|f12 | |Prnt|ScLk|Paus|
|
||||
* |-------------------------------------------------------------| |--------------|
|
||||
* |FN0 | | | | | | | | | | |BL-|BL+|BL Togl| |RGB Tog |Val+|
|
||||
* |-----------------------------------------------------------| |-------------|
|
||||
* |MuMode| | | | | | | | | | | | |LEDTst| |RGB Mode|Val-|
|
||||
* |-----------------------------------------------------------| `-------------'
|
||||
* |AudTgl |Hz+|MS+| | | | | | | | | | RST |
|
||||
* |-----------------------------------------------------------| ,----.
|
||||
* |ClickTgl|Hz-|MS-| | | | | | | | |Layer Clr | |Hue+|
|
||||
* |--------------------------------------------------------------------------.
|
||||
* | | | | | | | | | |Sat-|Hue-|Sat+|
|
||||
* `----------------------------------------------------------------------------'
|
||||
*/
|
||||
[SETTINGS] = KEYMAP(
|
||||
KC_FN0,KC_NO,KC_NO,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, BL_DEC, BL_INC, BL_TOGG, RGB_TOG, RGB_VAI, KC_NO, KC_NO,
|
||||
MU_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN2, RGB_MOD, RGB_VAD, KC_NO, KC_NO,
|
||||
AU_TOG, KC_F1,KC_FN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_FN5, KC_FN2,KC_FN4, KC_NO, KC_NO, KC_NO, KC_NO, MU_TOG, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUI, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_NO, KC_NO, KC_FN12, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_HUD, RGB_SAI, KC_NO, KC_NO),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
// This keymap only has a single base layer, so reset the default if needed
|
||||
if(eeconfig_read_default_layer() > 1){
|
||||
eeconfig_update_default_layer(1);
|
||||
default_layer_set(1);
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
53
keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
Normal file
53
keyboards/lfkeyboards/mini1800/keymaps/default/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = yes # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
223
keyboards/lfkeyboards/mini1800/mini1800.c
Normal file
223
keyboards/lfkeyboards/mini1800/mini1800.c
Normal file
@@ -0,0 +1,223 @@
|
||||
|
||||
#include <avr/sfr_defs.h>
|
||||
#include <avr/timer_avr.h>
|
||||
#include <avr/wdt.h>
|
||||
#include "mini1800.h"
|
||||
#include "keymap.h"
|
||||
#include "issi.h"
|
||||
#include "TWIlib.h"
|
||||
#include "lighting.h"
|
||||
#include "debug.h"
|
||||
|
||||
#define BACKLIGHT_BREATHING
|
||||
#include "quantum.h"
|
||||
|
||||
uint16_t click_hz = CLICK_HZ;
|
||||
uint16_t click_time = CLICK_MS;
|
||||
uint8_t click_toggle = CLICK_ENABLED;
|
||||
float my_song[][2] = SONG(ZELDA_PUZZLE);
|
||||
|
||||
|
||||
void matrix_init_kb(void)
|
||||
{
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
matrix_init_user();
|
||||
set_rgb(31, 0x00, 0x00, 0x00); // Caps lock
|
||||
set_rgb(32, 0xFF, 0x00, 0x00); // Layer indicator, start red
|
||||
#ifndef AUDIO_ENABLE
|
||||
// If we're not using the audio pin, drive it low
|
||||
sbi(DDRC, 6);
|
||||
cbi(PORTC, 6);
|
||||
#endif
|
||||
_delay_ms(500);
|
||||
#ifdef ISSI_ENABLE
|
||||
issi_init();
|
||||
#endif
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
// This is done after turning the layer LED red, if we're caught in a loop
|
||||
// we should get a flashing red light
|
||||
wdt_enable(WDTO_500MS);
|
||||
#endif
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void)
|
||||
{
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
wdt_reset();
|
||||
#endif
|
||||
#ifdef ISSI_ENABLE
|
||||
// switch/underglow lighting update
|
||||
static uint32_t issi_device = 0;
|
||||
static uint32_t twi_last_ready = 0;
|
||||
if(twi_last_ready > 1000){
|
||||
// Its been way too long since the last ISSI update, reset the I2C bus and start again
|
||||
twi_last_ready = 0;
|
||||
TWIInit();
|
||||
force_issi_refresh();
|
||||
}
|
||||
if(isTWIReady()){
|
||||
twi_last_ready = 0;
|
||||
// If the i2c bus is available, kick off the issi update, alternate between devices
|
||||
update_issi(issi_device, issi_device);
|
||||
if(issi_device){
|
||||
issi_device = 0;
|
||||
}else{
|
||||
issi_device = 3;
|
||||
}
|
||||
}else{
|
||||
twi_last_ready++;
|
||||
}
|
||||
#endif
|
||||
// Update layer indicator LED
|
||||
//
|
||||
// Not sure how else to reliably do this... TMK has the 'hook_layer_change'
|
||||
// but can't find QMK equiv
|
||||
static uint32_t layer_indicator = -1;
|
||||
if(layer_indicator != layer_state){
|
||||
for(uint32_t i=0;; i++){
|
||||
// the layer_info list should end with layer 0xFFFF
|
||||
// it will break this out of the loop and define the unknown layer color
|
||||
if((layer_info[i].layer == (layer_state & layer_info[i].mask)) || (layer_info[i].layer == 0xFFFFFFFF)){
|
||||
set_rgb(32, layer_info[i].color.red, layer_info[i].color.green, layer_info[i].color.blue);
|
||||
layer_indicator = layer_state;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
void click(uint16_t freq, uint16_t duration){
|
||||
#ifdef AUDIO_ENABLE
|
||||
if(freq >= 100 && freq <= 20000 && duration < 100){
|
||||
play_note(freq, 10);
|
||||
for (uint16_t i = 0; i < duration; i++){
|
||||
_delay_ms(1);
|
||||
}
|
||||
stop_all_notes();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t* record)
|
||||
{
|
||||
if (click_toggle && record->event.pressed){
|
||||
click(click_hz, click_time);
|
||||
}
|
||||
if (keycode == RESET) {
|
||||
reset_keyboard_kb();
|
||||
} else {
|
||||
}
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
|
||||
{
|
||||
#ifdef AUDIO_ENABLE
|
||||
int8_t sign = 1;
|
||||
#endif
|
||||
if(id == LFK_ESC_TILDE){
|
||||
// Send ~ on shift-esc
|
||||
void (*method)(uint8_t) = (event->event.pressed) ? &add_key : &del_key;
|
||||
uint8_t shifted = get_mods() & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT));
|
||||
method(shifted ? KC_GRAVE : KC_ESCAPE);
|
||||
send_keyboard_report();
|
||||
}else if(event->event.pressed){
|
||||
switch(id){
|
||||
case LFK_SET_DEFAULT_LAYER:
|
||||
// set/save the current base layer to eeprom, falls through to LFK_CLEAR
|
||||
eeconfig_update_default_layer(1UL << opt);
|
||||
default_layer_set(1UL << opt);
|
||||
case LFK_CLEAR:
|
||||
// Go back to default layer
|
||||
layer_clear();
|
||||
break;
|
||||
#ifdef ISSI_ENABLE
|
||||
case LFK_LED_TEST:
|
||||
led_test();
|
||||
break;
|
||||
#endif
|
||||
#ifdef AUDIO_ENABLE
|
||||
case LFK_CLICK_FREQ_LOWER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_FREQ_HIGHER:
|
||||
click_hz += sign * 100;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
case LFK_CLICK_TOGGLE:
|
||||
if(click_toggle){
|
||||
click_toggle = 0;
|
||||
click(4000, 100);
|
||||
click(1000, 100);
|
||||
}else{
|
||||
click_toggle = 1;
|
||||
click(1000, 100);
|
||||
click(4000, 100);
|
||||
}
|
||||
break;
|
||||
case LFK_CLICK_TIME_SHORTER:
|
||||
sign = -1; // continue to next statement
|
||||
case LFK_CLICK_TIME_LONGER:
|
||||
click_time += sign;
|
||||
click(click_hz, click_time);
|
||||
break;
|
||||
#endif
|
||||
case LFK_PLAY_ONEUP:
|
||||
PLAY_SONG(my_song);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void reset_keyboard_kb(){
|
||||
#ifdef WATCHDOG_ENABLE
|
||||
MCUSR = 0;
|
||||
wdt_disable();
|
||||
wdt_reset();
|
||||
#endif
|
||||
set_rgb(31, 0x00, 0xFF, 0xFF);
|
||||
set_rgb(32, 0x00, 0xFF, 0xFF);
|
||||
force_issi_refresh();
|
||||
reset_keyboard();
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led)
|
||||
{
|
||||
// Set capslock LED to Blue
|
||||
if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
|
||||
set_rgb(31, 0x00, 0x00, 0x7F);
|
||||
}else{
|
||||
set_rgb(31, 0x00, 0x00, 0x00);
|
||||
}
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
|
||||
// Lighting info, see lighting.h for details
|
||||
const uint8_t switch_matrices[] = {0, 1};
|
||||
const uint8_t rgb_matrices[] = {6, 7};
|
||||
|
||||
// RGB Map:
|
||||
// 27 29 10 9 8 7 6
|
||||
// 26 5
|
||||
// 25 4
|
||||
// 24 3
|
||||
// 23 22 21 20 14 15 11 1 2
|
||||
const uint8_t rgb_sequence[] = {
|
||||
30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16
|
||||
};
|
||||
|
||||
// Maps switch LEDs from Row/Col to ISSI matrix.
|
||||
// Value breakdown:
|
||||
// Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|
||||
// | | ISSI Col | ISSI Row |
|
||||
// / |
|
||||
// Device
|
||||
const uint8_t switch_leds[MATRIX_ROWS][MATRIX_COLS] =
|
||||
KEYMAP(
|
||||
0x19, 0x18, 0x17, 0x16, 0x15, 0x14, 0x13, 0x12, 0x11, 0x99, 0x98, 0x97, 0x96, 0x95, 0x94, 0x93, 0x92, 0x91,
|
||||
0x29, 0x28, 0x27, 0x26, 0x25, 0x24, 0x23, 0x22, 0x21, 0xA9, 0xA8, 0xA7, 0xA6, 0xA5, 0xA4, 0xA3, 0xA2, 0xA1,
|
||||
0x39, 0x38, 0x37, 0x36, 0x35, 0x34, 0x33, 0x32, 0x31, 0xB9, 0xB8, 0xB7, 0xB6, 0xB5, 0xB3,
|
||||
0x49, 0x48, 0x47, 0x45, 0x44, 0x43, 0x42, 0x41, 0xC9, 0xC8, 0xC7, 0xC6, 0xC5, 0xC4, 0xC2,
|
||||
0x59, 0x58, 0x57, 0x56, 0x55, 0x51, 0xD6, 0xE5, 0xE4, 0xE3, 0xE2, 0xE1,
|
||||
0x00, 0x00, 0x00, 0x00);
|
89
keyboards/lfkeyboards/mini1800/mini1800.h
Normal file
89
keyboards/lfkeyboards/mini1800/mini1800.h
Normal file
@@ -0,0 +1,89 @@
|
||||
#ifndef LFK87_H
|
||||
#define LFK87_H
|
||||
|
||||
/* if the kb.h file exists (because we're running from qmkbuilder) include it */
|
||||
#if __has_include("kb.h")
|
||||
#include "kb.h"
|
||||
#endif
|
||||
|
||||
#include "quantum.h"
|
||||
#include "matrix.h"
|
||||
#include <avr/sfr_defs.h>
|
||||
|
||||
#ifndef cbi
|
||||
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
||||
#endif
|
||||
|
||||
#ifndef sbi
|
||||
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct RGB_Color {
|
||||
uint16_t red;
|
||||
uint16_t green;
|
||||
uint16_t blue;
|
||||
} RGB_Color;
|
||||
|
||||
typedef struct Layer_Info {
|
||||
uint32_t layer;
|
||||
uint32_t mask;
|
||||
RGB_Color color;
|
||||
} Layer_Info;
|
||||
|
||||
extern const uint32_t layer_count;
|
||||
extern const Layer_Info layer_info[];
|
||||
|
||||
enum action_functions {
|
||||
LFK_CLEAR = 0, // Resets all layers
|
||||
LFK_ESC_TILDE, // esc+lshift = ~
|
||||
LFK_SET_DEFAULT_LAYER, // changes and saves current base layer to eeprom
|
||||
LFK_CLICK_TOGGLE, // Adjusts click duration
|
||||
LFK_CLICK_FREQ_HIGHER, // Adjusts click frequency
|
||||
LFK_CLICK_FREQ_LOWER, // Adjusts click frequency
|
||||
LFK_CLICK_TIME_LONGER, // Adjusts click duration
|
||||
LFK_CLICK_TIME_SHORTER, // Adjusts click duration
|
||||
LFK_DEBUG_SETTINGS, // prints LED and click settings to HID
|
||||
LFK_LED_TEST, // cycles through switch and RGB LEDs
|
||||
LFK_PLAY_ONEUP
|
||||
};
|
||||
|
||||
#define CLICK_HZ 500
|
||||
#define CLICK_MS 2
|
||||
#define CLICK_ENABLED 0
|
||||
|
||||
void reset_keyboard_kb(void);
|
||||
void click(uint16_t freq, uint16_t duration);
|
||||
|
||||
#define k00 KC_NO
|
||||
|
||||
// a = 10
|
||||
// b = 11
|
||||
// c = 12
|
||||
// d = 13
|
||||
// e = 14
|
||||
// f = 15
|
||||
// g = 16
|
||||
// h = 17
|
||||
// i = 18
|
||||
// j = 19
|
||||
|
||||
#ifndef KEYMAP
|
||||
#define KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1f, k1g, k1h, k1i, k1j,\
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2g, k2h, k2i, k2j,\
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k2f, k3g, k3h, k3i, k3j,\
|
||||
k41, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4f, k4g, k4h, k4i, k4j,\
|
||||
k51, k52, k53, k56, k5b, k5c, k5d, k5f, k5g, k5h, k5i, k5j \
|
||||
) \
|
||||
{ \
|
||||
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k00, k1f, k1g, k1h, k1i, k1j}, \
|
||||
{k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, k2h, k2i, k2j}, \
|
||||
{k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k00, k00, k00, k3g, k3h, k3i, k3j}, \
|
||||
{k41, k00, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k00, k4f, k4g, k4h, k4i, k4j}, \
|
||||
{k51, k52, k53, k00, k00, k56, k00, k00, k00, k00, k5b, k5c, k5d, k00, k5f, k5g, k5h, k5i, k5j}, \
|
||||
}
|
||||
|
||||
#endif //!KEYMAP#endif
|
||||
|
||||
#endif //LFK87_H
|
62
keyboards/lfkeyboards/mini1800/rules.mk
Normal file
62
keyboards/lfkeyboards/mini1800/rules.mk
Normal file
@@ -0,0 +1,62 @@
|
||||
# Set the LFK87 hardware version.
|
||||
#
|
||||
# RevA - Green PCB. at90usb1286 Only 3 exist
|
||||
# RevB - We don't talk about RevB
|
||||
# RevC - Black PCB. at90usb646 First public release
|
||||
#
|
||||
# Set to A or C
|
||||
LFK_REV = C
|
||||
|
||||
ifeq ($(LFK_REV), A)
|
||||
MCU = at90usb1286
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=8192
|
||||
else
|
||||
MCU = at90usb646
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
endif
|
||||
OPT_DEFS += -DLFK_TKL_REV_$(LFK_REV)
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
# ifndef QUANTUM_DIR
|
||||
# include ../../Makefile
|
||||
# endif
|
||||
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
# TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
@@ -37,25 +37,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
* ,------------------------------------------------------------.----.
|
||||
* |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |AudTgl| Q| W| E| R| T| Y| U| I| O| P| [| ]| \| Del|
|
||||
* |MuMode | | | |E| R| T| Y| U| I| O| P| [| ]| \| Del|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
* |AudTgl|Hz+|MS+| | D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgDn|
|
||||
* |ClickTgl|Hz-|MS-|| C| V| B| N|MuTgl| ,| .| /|Shift |Up |PgDn|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------------'
|
||||
*/
|
||||
KC_GRV,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14,
|
||||
AU_TOG, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR),
|
||||
MU_MOD, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_TOG,
|
||||
AU_TOG, KC_FN1,KC_FN3, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RESET, RGB_MOD,
|
||||
KC_FN5, KC_FN2,KC_FN4, KC_TR, KC_TR, KC_TR, KC_TR, MU_TOG, RGB_VAD, RGB_VAI, KC_TR, KC_TR, RGB_HUI, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_ESC_TILDE), // FN1 - esc+shift = ~, else escape
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
|
8
keyboards/lfkeyboards/smk65/keymaps/iso/config.h
Normal file
8
keyboards/lfkeyboards/smk65/keymaps/iso/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
|
||||
#endif
|
89
keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
Normal file
89
keyboards/lfkeyboards/smk65/keymaps/iso/keymap.c
Normal file
@@ -0,0 +1,89 @@
|
||||
#include "smk65.h"
|
||||
#include "action_layer.h"
|
||||
|
||||
//Define a shorter 'transparent' key code to make the keymaps more compact
|
||||
#define KC_TR KC_TRNS
|
||||
|
||||
enum keymap_layout {
|
||||
VANILLA = 0,
|
||||
FUNC,
|
||||
SETTINGS,
|
||||
};
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[VANILLA] = ISO_KEYMAP(
|
||||
/* Keymap VANILLA: (Base Layer) Default Layer
|
||||
* ,------------------------------------------------------------.----.
|
||||
* |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| Ret | Del|
|
||||
* |--------------------------------------------------------. |----|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | |PgUp|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift | Up |PgDn|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------------'
|
||||
*/
|
||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT, KC_DEL,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_PGUP,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, MO(FUNC), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[FUNC] = ISO_KEYMAP(
|
||||
/* Keymap VANILLA: Function Layer
|
||||
* ,------------------------------------------------------------.----.
|
||||
* |Esc~| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0| - | = |Backspa| Ins|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |MuMode | | | |E| R| T| Y| U| I| O| P| [| ]| RESET| Del|
|
||||
* |--------------------------------------------------------. |----|
|
||||
* |AudTgl|Hz+|MS+| | D| F| G| H| J| K| L| ;| '| | |PgUp|
|
||||
* |------------------------------------------------------------|----|
|
||||
* |CTgl| |Hz-|MS-|| C| V| B| N|MuTgl| ,| .| /|Shift |Up |PgDn|
|
||||
* |-----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |Alt |Ctrl|Func|Lft| Dn |Rig |
|
||||
* `-----------------------------------------------------------------'
|
||||
*/
|
||||
KC_GRV,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14,
|
||||
MU_MOD, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RESET, RGB_TOG,
|
||||
AU_TOG, KC_FN1,KC_FN3, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_MOD,
|
||||
KC_FN5, KC_TR, KC_FN2,KC_FN4, KC_TR, KC_TR, KC_TR, KC_TR, MU_TOG, RGB_VAD, RGB_VAI, KC_TR, KC_TR, RGB_HUI, KC_TR,
|
||||
KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, KC_TR, RGB_SAD, RGB_HUD, RGB_SAI),
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
ACTION_FUNCTION(LFK_CLEAR), // FN0 - reset layers
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_HIGHER), // FN1 - Increase Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_FREQ_LOWER), // FN2 - Decrease Freq of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_LONGER), // FN3 - Increase length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TIME_SHORTER), // FN4 - Decrease length of audio click
|
||||
ACTION_FUNCTION(LFK_CLICK_TOGGLE), // FN5 - Toggle audio click
|
||||
};
|
||||
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
53
keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
Normal file
53
keyboards/lfkeyboards/smk65/keymaps/iso/rules.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
# BACKLIGHT_ENABLE = no # Disable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Disable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Disable RGB underlight
|
||||
RGBLIGHT_CUSTOM_DRIVER = yes # RGB code is implemented in lefkeyboards, not WS2812
|
||||
SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
||||
TAP_DANCE_ENABLE = no
|
||||
|
||||
ISSI_ENABLE = no # If the I2C pullup resistors aren't install this must be disabled
|
||||
WATCHDOG_ENABLE = yes # Resets keyboard if matrix_scan isn't run every 250ms
|
||||
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(ISSI_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DISSI_ENABLE
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WATCHDOG_ENABLE)), yes)
|
||||
TMK_COMMON_DEFS += -DWATCHDOG_ENABLE
|
||||
endif
|
||||
|
||||
|
||||
# # Set the LFK78 hardware version. This is defined in rules.mk, but can be overidden here if desired
|
||||
# #
|
||||
# # RevB - first public release, uses atmega32u4, has audio, ISSI matrix split between RGB and backlight
|
||||
# # RevC/D - at90usb1286, no audio, ISSI device 0 is backlight, 4 is RGB
|
||||
# #
|
||||
# # Set to B, C or D
|
||||
# LFK_REV = D
|
||||
|
||||
# ifeq ($(LFK_REV), B)
|
||||
# MCU = atmega32u4
|
||||
# else
|
||||
# MCU = at90usb1286
|
||||
# endif
|
||||
# OPT_DEFS += -DLFK_REV_$(LFK_REV)
|
||||
# OPT_DEFS += -DUSB_PRODUCT=\"LFK_Rev$(LFK_REV)\"
|
@@ -87,4 +87,18 @@ void click(uint16_t freq, uint16_t duration);
|
||||
{k51, k52, k53, KC_NO, KC_NO, KC_NO, k57, KC_NO, KC_NO, KC_NO, k5B, k5C, k5D, k5E, KC_NO, KC_NO}, \
|
||||
}
|
||||
|
||||
#define ISO_KEYMAP( \
|
||||
k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, k1G, \
|
||||
k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, k2F, k2G, \
|
||||
k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3F, k3G, \
|
||||
k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4F, k4G, \
|
||||
k51, k52, k53, k57, k5B, k5C, k5D, k5E, k3E, k4E \
|
||||
) { \
|
||||
{k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1E, KC_NO, k1G}, \
|
||||
{k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2C, k2D, KC_NO, k2F, k2G}, \
|
||||
{k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, KC_NO, k3E, k3F, k3G}, \
|
||||
{k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E, k4F, k4G}, \
|
||||
{k51, k52, k53, KC_NO, KC_NO, KC_NO, k57, KC_NO, KC_NO, KC_NO, k5B, k5C, k5D, k5E, KC_NO, KC_NO}, \
|
||||
}
|
||||
|
||||
#endif //SMK65_H
|
||||
|
35
keyboards/meira/keymaps/grahampheath/config.h
Normal file
35
keyboards/meira/keymaps/grahampheath/config.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Copyright 2017 Cole Markham, WoodKeys.click
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// place overrides here
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
#define C6_AUDIO
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
425
keyboards/meira/keymaps/grahampheath/keymap.c
Normal file
425
keyboards/meira/keymaps/grahampheath/keymap.c
Normal file
@@ -0,0 +1,425 @@
|
||||
/* Copyright 2017 Cole Markham
|
||||
*
|
||||
* 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 "meira.h"
|
||||
#include "action_layer.h"
|
||||
#include "action_code.h"
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//Following line allows macro to read current RGB settings
|
||||
extern rgblight_config_t rgblight_config;
|
||||
#endif
|
||||
|
||||
#define _QWERTY 0
|
||||
#define _COLEMAK 1
|
||||
#define _DVORAK 2
|
||||
#define _LOWER 3
|
||||
#define _RAISE 4
|
||||
#define _EMOJI 5
|
||||
#define _ADJUST 16
|
||||
|
||||
enum custom_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
LOWER,
|
||||
RAISE,
|
||||
EMOJI,
|
||||
ADJUST,
|
||||
TOUNGE,
|
||||
JOY,
|
||||
FROWN,
|
||||
HEART,
|
||||
THMBUP,
|
||||
THMBDN,
|
||||
SHRUG,
|
||||
WINK,
|
||||
GRIN,
|
||||
LLAP,
|
||||
CRY,
|
||||
SHIT,
|
||||
FLIP,
|
||||
FNGLEFT,
|
||||
ABOVE,
|
||||
FNGRIGHT,
|
||||
CONFUSED
|
||||
};
|
||||
|
||||
// define variables for reactive RGB
|
||||
bool TOG_STATUS = false;
|
||||
int RGB_current_mode;
|
||||
|
||||
#define KC_X0 MT(MOD_LCTL, KC_ESC) // Hold for Left Ctrl, Tap for ESC
|
||||
#define KC_X1 MT(MOD_RSFT, KC_ENT) // Hold for Right Shift, Tap for Enter
|
||||
#define KC_X2 MT(MOD_RSFT, LGUI(KC_ENT)) // Send Command Enter
|
||||
#define KC_X3 MT(KC_LGUI, KC_SPC) // Hold for Left GUI, Tap for Space
|
||||
#define KC_EMOJ TT(_EMOJI) // Hold for Emoji Layer, or tap 5 times.
|
||||
#define KC_QS LGUI(KC_SPC) // Send Command + Space (for QuickSilver).
|
||||
#define KC_TABR LGUI(KC_RCBR) // Send Command + } (for tab changing).
|
||||
#define KC_TABL LGUI(KC_LCBR) // Send Command + { (for tab changing).
|
||||
#define HYPR_0 HYPR(KC_TILD) // Send Hyper + ~.
|
||||
#define HYPR_1 HYPR(KC_EXLM) // Send Hyper + !.
|
||||
#define HYPR_2 HYPR(KC_AT) // Send Hyper + @.
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Tab | A | S | D | F | G | H | J | K | L | ; | ' |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Emoji |Adjust| Ctrl | Alt |Lower | Cmd |Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = KEYMAP( \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, \
|
||||
KC_X0, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_X1, \
|
||||
KC_EMOJ, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_X3, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
|
||||
),
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = KEYMAP( \
|
||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC, \
|
||||
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT , \
|
||||
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
|
||||
),
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = KEYMAP( \
|
||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC, \
|
||||
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, \
|
||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT , \
|
||||
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT \
|
||||
),
|
||||
|
||||
/* Emoji Layer
|
||||
*
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* │HYPR0│ │ ;-) │ │ │ :-P │ │ │:'-( │FLIP │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │HYPR1│ 👆 │SHRUG│ │ :-( │ │ <3 │ :-) │ │LLAP │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │HYPR2│ │ │ | :-\ │ │ │ :-D │ SHIT│ │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │Brig-│ Sleep │Brig+│ 👈 │ 👎 | 👍 │ 👉 │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[_EMOJI] = KEYMAP ( \
|
||||
HYPR_0, _______, WINK, _______, _______, TOUNGE, _______, _______, CRY, FLIP, _______, _______, \
|
||||
HYPR_1, ABOVE, SHRUG, _______, FROWN, _______, HEART, JOY, _______, LLAP, _______, _______, \
|
||||
HYPR_2, _______, _______, _______, CONFUSED, _______, _______, GRIN, SHIT, _______, _______, _______, \
|
||||
_______, _______, _______, _______, KC_SLCK, KC_SLEP, KC_SLEP, KC_PAUS, FNGLEFT, THMBDN, THMBUP, FNGRIGHT \
|
||||
),
|
||||
|
||||
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ~ | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Tab- | Vol- | Vol+ | Tab+ |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = KEYMAP( \
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, \
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, \
|
||||
KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, KC_QS, KC_QS, _______, KC_TABL, THMBDN, THMBUP, KC_TABR \
|
||||
),
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | ` | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Home | PgUp | PgDn | End |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = KEYMAP( \
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, \
|
||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, KC_X2, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END \
|
||||
),
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = KEYMAP( \
|
||||
_______, RESET, _______, KC_MRWD, KC_MPLY, KC_MFFD, KC_PSCR, _______, _______, _______, _______, KC_DEL, \
|
||||
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
|
||||
)
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM fn_actions[] = {
|
||||
|
||||
};
|
||||
|
||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
|
||||
{
|
||||
// MACRODOWN only works in this function
|
||||
switch(id) {
|
||||
case 0:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
|
||||
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
|
||||
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
|
||||
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
|
||||
|
||||
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_qwerty, false, 0);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_colemak, false, 0);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_dvorak, false, 0);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ADJUST:
|
||||
// FIXME add RGB feedback
|
||||
if (record->event.pressed) {
|
||||
layer_on(_ADJUST);
|
||||
} else {
|
||||
layer_off(_ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BL_TOGG:
|
||||
#ifdef ISSI_ENABLE
|
||||
if (record->event.pressed) {
|
||||
print("Enabling backlight\n");
|
||||
issi_init();
|
||||
}
|
||||
#endif
|
||||
return false;
|
||||
break;
|
||||
case BL_STEP:
|
||||
if (record->event.pressed) {
|
||||
print("Stepping backlight\n");
|
||||
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FLIP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fliptable;");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case CONFUSED:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-\\");
|
||||
}
|
||||
// register_codeturn false;
|
||||
break;
|
||||
case SHIT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&shit; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case CRY:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":'-( ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LLAP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&llap; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case GRIN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-D ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case TOUNGE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-P ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case JOY:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-) ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FROWN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-( ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case HEART:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("<3 ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case SHRUG:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&shrug; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case THMBUP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&thumbup; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case THMBDN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&thumbdown; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FNGLEFT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fingerleft; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FNGRIGHT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fingerright; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case WINK:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(";-) ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ABOVE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&above; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
55
keyboards/meira/keymaps/grahampheath/readme.md
Normal file
55
keyboards/meira/keymaps/grahampheath/readme.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Graham's Meira.
|
||||
|
||||
Don't expect this to work for you unaltered! For the record, these are my notes, not a guide for you :-)
|
||||
|
||||
## Known issues:
|
||||
Anything over 28k will begin to overwrite the boot loader, which is a pain!
|
||||
|
||||
Be sure to check file size with:
|
||||
```
|
||||
avr-size meira_promicro_grahampheath.hex
|
||||
```
|
||||
|
||||
## Sounds
|
||||
I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered directly to PC6 and GND.
|
||||
|
||||
As the Meira code stood, adding sound increased the hex beyond what the boot loader could handle, so I had to dial way back on features that I wasnt using, like backlighting and RGB support. I also removed function keys, though I think you could restore some of these features, you certainly can't restore all of them and still fit with a boot loader.
|
||||
|
||||
## Build
|
||||
|
||||
Built for the ProMicro with:
|
||||
```
|
||||
make meira/promicro:grahampheath
|
||||
```
|
||||
|
||||
Build and upload with, which is cool because it will sense your port.
|
||||
```
|
||||
make meira/promicro:grahampheath:avrdude
|
||||
```
|
||||
|
||||
Program a hex directly with:
|
||||
```
|
||||
avrdude -p atmega32u4 -P /dev/tty.usbmodem14111 -c avr109 -v -e -D -U flash:w:meira_promicro_grahampheath.hex
|
||||
```
|
||||
|
||||
If you use an AVRISP you will be program a hex without a boot loader:
|
||||
```
|
||||
avrdude -p atmega32u4 -P /dev/tty.usbmodem14111 -c avrisp -v -e -U flash:w:meira_promicro_grahampheath.hex
|
||||
```
|
||||
|
||||
## Bricked
|
||||
Did you overwrite your boot loader?
|
||||
|
||||
I did...
|
||||
|
||||
I used an [Ardunio as an ISP](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and was able to program various boot loaders. Ultimately it seemed like this was the right combo:
|
||||
|
||||
[ProMicro pinout](https://cdn.sparkfun.com/assets/9/c/3/c/4/523a1765757b7f5c6e8b4567.png)
|
||||
|
||||
[Wiring](https://forum.arduino.cc/index.php?PHPSESSID=467mm69btif69hdj5e3gil5465&action=dlattach;topic=363341.0;attach=145820): [via u/dmjlambert](https://forum.arduino.cc/index.php?topic=363341.0)
|
||||
|
||||
ProMicro boot loader hex is called `Caterina-promicro16.hex` and is stored on [Sparkfun's GitHub](https://github.com/sparkfun/Arduino_Boards)
|
||||
|
||||
```
|
||||
avrdude -c avrisp -p m32u4 -P /dev/tty.usbmodem14141 -v -e -U flash:w:Caterina-promicro16.hex -U efuse:w:0xcb:m -U hfuse:w:0xd8:m -U lfuse:w:0xff:m
|
||||
```
|
3
keyboards/meira/keymaps/grahampheath/rules.mk
Normal file
3
keyboards/meira/keymaps/grahampheath/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
||||
EXTRAFLAGS+=-flto # -4-7k
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(-47kb)
|
@@ -14,79 +14,77 @@ enum keycodes {
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ;: | '" |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_CAPS, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Ctrl | A | S | D | F | G | H | J | K | L | ;: | '" |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | Esc | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_CAPS, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | ~ | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), S(KC_BSLS), _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Ins | Home | PgUp | | | | - | = | [ | ] | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Del | End | PgDn | | | | ` | \ | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
|
||||
{_______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______},
|
||||
{_______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, KC_GRV, KC_BSLS, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | |BLtogg|BLstep| | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |RGBtog|RGBhui|RGBhud|RGBmod|RGBsai|RGBsad| | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_POWER},
|
||||
{_______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, RGB_TOG, RGB_HUI, RGB_HUD, RGB_MOD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | ~ | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), S(KC_BSLS), _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Ins | Home | PgUp | Pscr | Slck | Paus | - | = | [ | ] | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Del | End | PgDn | Nlck | | | ` | \ | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
|
||||
{_______, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______},
|
||||
{_______, KC_DEL, KC_END, KC_PGDN, KC_NLCK, _______, _______, KC_GRV, KC_BSLS, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | |BLtogg|BLstep| | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |RGBtog|RGBhui|RGBhud|RGBmod|RGBsai|RGBsad| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_POWER},
|
||||
{_______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, RGB_TOG, RGB_HUI, RGB_HUD, RGB_MOD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
@@ -47,7 +47,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC },
|
||||
{MT(MOD_LSFT, KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, MT(MOD_RSFT, KC_ENT) },
|
||||
{KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSHIFT },
|
||||
{MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) }
|
||||
{MO(_FUNC), KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_BSPC, KC_SPC, RAISE, KC_LSHIFT, KC_BTN2, KC_RCTL, MO(_FUNC) }
|
||||
},
|
||||
|
||||
/* Function
|
||||
@@ -139,7 +139,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
{_______, _______, _______, _______, _______, DYN_MACRO_PLAY1, DYN_MACRO_PLAY2, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, DYN_REC_STOP, DYN_REC_STOP, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
},
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
@@ -203,4 +203,4 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
|
||||
}
|
||||
}
|
||||
return MACRO_NONE;
|
||||
};
|
||||
};
|
||||
|
@@ -12,7 +12,7 @@ the second is the output when shift is applied.
|
||||
* MENU: perform right-click
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:|
|
||||
| ---- |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| ----:|
|
||||
| Esc | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
| Tab | A | S | D | F | G | H | J | K | L | ;: | Enter|
|
||||
| Shft | Z | X | C | V | B | N | M | ,< | .> | /? | Shft |
|
||||
@@ -21,12 +21,12 @@ the second is the output when shift is applied.
|
||||
##### Function Layer
|
||||
Activated when `fn` held in the above `qwerty` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:|
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift| \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | ~ |INSERT|
|
||||
| Shift | \| | `¬ | #~ | * | -_ | =+ | \| | [{ | ]} | '@ |Shift |
|
||||
| Fn | Ctrl | Alt | GUI |Lower | Bksp |Space |Raise | MENU | Alt | Ctrl | Fn |
|
||||
|
||||
##### Lower Layer
|
||||
Activated when `Lower` is held in the above `qwerty` layer.
|
||||
@@ -35,12 +35,12 @@ Activated when `Lower` is held in the above `qwerty` layer.
|
||||
* WrdBks: `backspace` with `ctrl` applied. I.e. delete a word.
|
||||
* WrdDel: `delete` with `ctrl` applied. I.e. forward delete a word.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:|
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
| Shift| \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| 1! | 2" | 3£ | 4$ | 5% | 6^ | 7& | 8* | 9( | 0) | DEL | Bksp |
|
||||
| ! | " | £ | $ | % | ^ | & | * | ( | ) |WrdDel|WrdBks|
|
||||
| Shift | \| | `¬ | #~ | '@ | -_ | =+ | #~ | [{ | ]} | '@ |Shift |
|
||||
| | | | |Lower | Del |Space | | Next | Vol- | Vol+ | Play |
|
||||
|
||||
##### Raise Layer
|
||||
Activated when `Raise` is held in the above `qwerty` layer.
|
||||
@@ -48,39 +48,39 @@ Activated when `Lower` is held in the above `qwerty` layer.
|
||||
* Preferred layer for typing brackets.
|
||||
* Allows for cursor navigation to be used solely with the right hand.
|
||||
* WRDSEL: Select the word where the cursor is.
|
||||
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word
|
||||
* |< and >|: Apply `ctrl` to `left` and `right` respectively for word jumping.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| -----:
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | | |< | LEFT | DOWN |RIGHT | >| |ZOOM -|
|
||||
| | | | | | Alt | Enter|Raise | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---: | :---:| :---:| :---:| :---: | :---:|
|
||||
| ` | |WRDSEL| [ | ] | | | PGUP | HOME |PGDOWN| |PRNTSC|
|
||||
| ` | | | ( | ) | | | HOME | UP | END | |ZOOM +|
|
||||
| | | | { | } | ||<| LEFT | DOWN |RIGHT |>||ZOOM -|
|
||||
| | | | | | Alt | Enter |Raise | | | | |
|
||||
|
||||
##### Lower + Raise
|
||||
Activated when `Lower` and `Raise` are held together the above `qwerty` layer.
|
||||
|
||||
* Audio controls in the same position as cursor keys from the `Raise` layer.
|
||||
* ????: Runs a macro for outputting sensitive information. Do not use this store passwords.
|
||||
* ????: Runs a macro for outputting a text string. Do not use this store passwords.
|
||||
* Reset: Enter bootloader for flashing firmware to the keyboard.
|
||||
* CAPS: Toggle caps lock.
|
||||
* DYN: Enter `DYN` layer.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| -----:
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | DYN | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: |:----:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| ???? | Reset|Qwerty| | | | | | | | | Del |
|
||||
| CAPS | | | | | | | Mute | Vol+ | Play | | |
|
||||
| | | | | | | | Prev | Vol- | Next | | |
|
||||
| | | | | | | | | DYN | | | |
|
||||
|
||||
##### DYN
|
||||
Activated when `DYN` held along with `Lower` and `Raise`
|
||||
Allows recording of macros. To start recording the macro, press either REC1 or REC2.
|
||||
To finish the recording, press STOP. To replay the macro, press either PLAY1 or PLAY2.
|
||||
|
||||
| | | | | | | | | | | | |
|
||||
| ---- |:----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| ----:| -----:
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| | | | | | | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
| :---: | :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:| :---:|
|
||||
| | | | | | REC1 | REC2 | | | | | |
|
||||
| | | | | | PLAY1| PLAY2| | | | | |
|
||||
| | | | | | STOP | STOP | | | | | |
|
||||
| | | | | | | | | | | | |
|
||||
|
51
keyboards/planck/keymaps/grahampheath/config.h
Normal file
51
keyboards/planck/keymaps/grahampheath/config.h
Normal file
@@ -0,0 +1,51 @@
|
||||
#ifndef CONFIG_USER_H
|
||||
#define CONFIG_USER_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
#define STARTUP_SONG SONG(PLANCK_SOUND)
|
||||
// #define STARTUP_SONG SONG(NO_SOUND)
|
||||
|
||||
#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
|
||||
SONG(COLEMAK_SOUND), \
|
||||
SONG(DVORAK_SOUND) \
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MUSIC_MASK (keycode != KC_NO)
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* 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
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 2
|
||||
|
||||
#endif
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
|
||||
#undef BACKLIGHT_LEVELS
|
||||
#define BACKLIGHT_LEVELS 4
|
||||
|
||||
#undef MOUSEKEY_WHEEL_MAX_SPEED
|
||||
#define MOUSEKEY_WHEEL_MAX_SPEED 5
|
||||
|
450
keyboards/planck/keymaps/grahampheath/keymap.c
Normal file
450
keyboards/planck/keymaps/grahampheath/keymap.c
Normal file
@@ -0,0 +1,450 @@
|
||||
/* Copyright 2015-2017 Jack Humbert
|
||||
*
|
||||
* 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 "planck.h"
|
||||
#include "action_layer.h"
|
||||
#include "action_code.h"
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
enum planck_layers {
|
||||
_QWERTY,
|
||||
_COLEMAK,
|
||||
_DVORAK,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_EMOJI,
|
||||
_PLOVER,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
enum planck_keycodes {
|
||||
QWERTY = SAFE_RANGE,
|
||||
COLEMAK,
|
||||
DVORAK,
|
||||
PLOVER,
|
||||
LOWER,
|
||||
RAISE,
|
||||
BACKLIT,
|
||||
EXT_PLV,
|
||||
TOUNGE,
|
||||
JOY,
|
||||
FROWN,
|
||||
HEART,
|
||||
THMBUP,
|
||||
THMBDN,
|
||||
SHRUG,
|
||||
WINK,
|
||||
GRIN,
|
||||
LLAP,
|
||||
CRY,
|
||||
SHIT,
|
||||
FLIP,
|
||||
FNGLEFT,
|
||||
ABOVE,
|
||||
FNGRIGHT,
|
||||
CONFUSED
|
||||
};
|
||||
|
||||
|
||||
#define KC_X0 MT(MOD_LCTL, KC_ESC) // Hold for Left Ctrl, Tap for ESC
|
||||
#define KC_X1 MT(MOD_RSFT, KC_ENT) // Hold for Right Shift, Tap for Enter
|
||||
#define KC_X2 MT(MOD_RSFT, LGUI(KC_ENT)) // Send Command Enter
|
||||
#define KC_MOUS TT(_EMOJI) // Hold for Mouse Layer, or tap 5 times.
|
||||
#define KC_QS LGUI(KC_SPC) // Send Command + Space (for QuickSilver).
|
||||
#define KC_TABR LGUI(KC_RCBR) // Send Command + } (for tab changing).
|
||||
#define KC_TABL LGUI(KC_LCBR) // Send Command + { (for tab changing).
|
||||
#define HYPR_0 HYPR(KC_TILD) // Send Hyper + ~.
|
||||
#define HYPR_1 HYPR(KC_EXLM) // Send Hyper + !.
|
||||
#define HYPR_2 HYPR(KC_AT) // Send Hyper + @.
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc* | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Shift*|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | GUI | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
* - Right Shift: Tap for Enter, hold for shift.
|
||||
* - Escape: Tap for Esc, hold for Ctrl.
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_X0, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_X1 },
|
||||
{KC_MOUS, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Colemak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_COLEMAK] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Dvorak
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | " | , | . | P | Y | F | G | C | R | L | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Brite| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_DVORAK] = {
|
||||
{KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC},
|
||||
{KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH},
|
||||
{KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT },
|
||||
{BACKLIT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
|
||||
/* Emoji Layer
|
||||
*
|
||||
* ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
* │HYPR0│ │ ;-) │ │ │ :-P │ │ │:'-( │FLIP │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │HYPR1│ 👆 │SHRUG│ │ :-( │ │ <3 │ :-) │ │LLAP │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │HYPR2│ │ │ | :-\ │ │ │ :-D │ SHIT│ │ │ │
|
||||
* ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
* │ │ │ │ │Brig-│ Sleep │Brig+│ 👈 │ 👎 | 👍 │ 👉 │
|
||||
* └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┘
|
||||
*/
|
||||
[_EMOJI] = {
|
||||
{HYPR_0, _______, WINK, _______, _______, TOUNGE, _______, _______, CRY, FLIP, _______, _______},
|
||||
{HYPR_1, ABOVE, SHRUG, _______, FROWN, _______, HEART, JOY, _______, LLAP, _______, _______},
|
||||
{HYPR_2, _______, _______, _______, CONFUSED, _______, _______, GRIN, SHIT, _______, _______, _______},
|
||||
{_______, _______, _______, _______, KC_SLCK, KC_SLEP, KC_SLEP, KC_PAUS, FNGLEFT, THMBDN, THMBUP, FNGRIGHT}
|
||||
},
|
||||
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | |Tab-L | 👎 | 👍 |Tab-R |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE},
|
||||
{KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, KC_QS, KC_QS, _______, KC_TABL, THMBDN, THMBUP, KC_TABR}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shft | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | Up |CTLENT|
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | Left | Down | Right|
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC},
|
||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS},
|
||||
{KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, KC_UP, KC_X2},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Plover layer (http://opensteno.org)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | # | # | # | # | # | # | # | # | # | # | # | # |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | S | T | P | H | * | * | F | P | L | T | D |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | S | K | W | R | * | * | R | B | G | S | Z |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Exit | | | A | O | | E | U | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_PLOVER] = {
|
||||
{KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1 },
|
||||
{XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC},
|
||||
{XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | Del |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak|Plover| |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |Voice-|Voice+|Mus on|Musoff|MIDIon|MIDIof| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* |Brite | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF,_______, _______, KC_DEL },
|
||||
{_______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______},
|
||||
{_______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, MI_OFF, _______, _______, _______, _______, _______},
|
||||
{BACKLIT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
float plover_song[][2] = SONG(PLOVER_SOUND);
|
||||
float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
|
||||
#endif
|
||||
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
bool has_layer_changed = true;
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
uint8_t layer = biton32(layer_state);
|
||||
static uint8_t old_layer = 0;
|
||||
|
||||
if (old_layer != layer) {
|
||||
has_layer_changed = true;
|
||||
old_layer = layer;
|
||||
}
|
||||
|
||||
if (has_layer_changed) {
|
||||
has_layer_changed = false;
|
||||
|
||||
switch (layer) {
|
||||
case _LOWER:
|
||||
backlight_set(1);
|
||||
break;
|
||||
case _QWERTY:
|
||||
backlight_set(2);
|
||||
break;
|
||||
case _RAISE:
|
||||
backlight_set(3);
|
||||
break;
|
||||
case _ADJUST:
|
||||
backlight_set(4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QWERTY);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case COLEMAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_COLEMAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case DVORAK:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_DVORAK);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LOWER:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_LOWER);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RAISE:
|
||||
if (record->event.pressed) {
|
||||
layer_on(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
} else {
|
||||
layer_off(_RAISE);
|
||||
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case BACKLIT:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_RSFT);
|
||||
#ifdef BACKLIGHT_ENABLE
|
||||
backlight_step();
|
||||
#endif
|
||||
} else {
|
||||
unregister_code(KC_RSFT);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case PLOVER:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
stop_all_notes();
|
||||
PLAY_SONG(plover_song);
|
||||
#endif
|
||||
layer_off(_RAISE);
|
||||
layer_off(_LOWER);
|
||||
layer_off(_ADJUST);
|
||||
layer_off(_EMOJI);
|
||||
layer_on(_PLOVER);
|
||||
if (!eeconfig_is_enabled()) {
|
||||
eeconfig_init();
|
||||
}
|
||||
keymap_config.raw = eeconfig_read_keymap();
|
||||
keymap_config.nkro = 1;
|
||||
eeconfig_update_keymap(keymap_config.raw);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case EXT_PLV:
|
||||
if (record->event.pressed) {
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_SONG(plover_gb_song);
|
||||
#endif
|
||||
layer_off(_PLOVER);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FLIP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fliptable;");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case CONFUSED:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-\\");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case SHIT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&shit; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case CRY:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":'-( ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LLAP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&llap; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case GRIN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-D ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case TOUNGE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-P ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case JOY:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-) ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FROWN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(":-( ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case HEART:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("<3 ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case SHRUG:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&shrug; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case THMBUP:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&thumbup; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case THMBDN:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&thumbdown; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FNGLEFT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fingerleft; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FNGRIGHT:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&fingerright; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case WINK:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(";-) ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case ABOVE:
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING("&above; ");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
4
keyboards/planck/keymaps/grahampheath/readme.md
Normal file
4
keyboards/planck/keymaps/grahampheath/readme.md
Normal file
@@ -0,0 +1,4 @@
|
||||
# Graham's Planck
|
||||
|
||||
## Sounds
|
||||
I've added a [8ohm 0.5W speaker](http://a.co/6MIKZSy), its a bit large, but it fits in approximately the same space as the ProMicro. I soldered to the pcb hole labeled PC6 on my Rev 3 Planck PCB, and GND on the near by chip. [Pic of an identical mod][https://i1.sndcdn.com/artworks-000128070066-myh0ls-t500x500.jpg] (not mine).
|
9
keyboards/planck/keymaps/grahampheath/rules.mk
Normal file
9
keyboards/planck/keymaps/grahampheath/rules.mk
Normal file
@@ -0,0 +1,9 @@
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
NKRO_ENABLE = yes # N-Key rollover.
|
||||
# MOUSEKEY_ENABLE = yes # Mouse mode.
|
||||
TAP_DANCE_ENABLE = no # Tap dance enabled.
|
||||
UNICODEMAP_ENABLE = no # Unicode keymap (sucks on osx).
|
||||
AUDIO_ENABLE = yes # Audio output on port C6
|
@@ -14,79 +14,77 @@ enum planck_keycodes {
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ;: | '" |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_CAPS, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | Ctrl | A | S | D | F | G | H | J | K | L | ;: | '" |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | ,< | .> | /? |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Caps | Esc | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = {
|
||||
{KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC},
|
||||
{KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT},
|
||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT },
|
||||
{KC_CAPS, KC_ESC, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT}
|
||||
},
|
||||
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | ~ | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), S(KC_BSLS), _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Ins | Home | PgUp | | | | - | = | [ | ] | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Del | End | PgDn | | | | ` | \ | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
|
||||
{_______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______},
|
||||
{_______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, KC_GRV, KC_BSLS, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | |BLtogg|BLstep| | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |RGBtog|RGBhui|RGBhud|RGBmod|RGBsai|RGBsad| | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_POWER},
|
||||
{_______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, RGB_TOG, RGB_HUI, RGB_HUD, RGB_MOD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | ! | @ | # | $ | % | ^ | & | * | ( | ) | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 | ~ | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = {
|
||||
{_______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______},
|
||||
{_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, _______},
|
||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_GRV), S(KC_BSLS), _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | | Ins | Home | PgUp | Pscr | Slck | Paus | - | = | [ | ] | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | | Del | End | PgDn | Nlck | | | ` | \ | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = {
|
||||
{_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______},
|
||||
{_______, KC_INS, KC_HOME, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, _______},
|
||||
{_______, KC_DEL, KC_END, KC_PGDN, KC_NLCK, _______, _______, KC_GRV, KC_BSLS, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY}
|
||||
},
|
||||
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| | | | | | | | | | |
|
||||
* |------+------+------+------+------+-------------+------+------+------+------+------|
|
||||
* | |BLtogg|BLstep| | | | | | | | | |
|
||||
* |------+------+------+------+------+------|------+------+------+------+------+------|
|
||||
* | |RGBtog|RGBhui|RGBhud|RGBmod|RGBsai|RGBsad| | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = {
|
||||
{_______, RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC_POWER},
|
||||
{_______, BL_TOGG, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, _______},
|
||||
{_______, RGB_TOG, RGB_HUI, RGB_HUD, RGB_MOD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______},
|
||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______}
|
||||
}
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
81
keyboards/s60_x/keymaps/amnesia0287/keymap.c
Normal file
81
keyboards/s60_x/keymaps/amnesia0287/keymap.c
Normal file
@@ -0,0 +1,81 @@
|
||||
#include "rgb.h"
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _BL 0
|
||||
#define _HLa 1
|
||||
#define _HLb 2
|
||||
#define _HL 3
|
||||
#define _XL 4
|
||||
|
||||
enum hype_keycodes {
|
||||
FN_HLa = SAFE_RANGE,
|
||||
FN_HLb
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* 0: ANSI qwerty */
|
||||
[_BL] = KEYMAP(
|
||||
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_EQL, KC_NO, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT , \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, FN_HLb, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, FN_HLa, KC_RCTL
|
||||
),
|
||||
[_HLa] = KEYMAP(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HLb] = KEYMAP(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_HL] = KEYMAP(
|
||||
RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, BL_BRTG, BL_OFF, BL_STEP, BL_ON, BL_DEC, BL_INC, KC_TRNS, LALT(KC_F4),
|
||||
RESET, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_HUD, RGB_SAD, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case FN_HLa:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FN_HLb:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
27
keyboards/s60_x/keymaps/amnesia0287/readme.md
Normal file
27
keyboards/s60_x/keymaps/amnesia0287/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
### 1 Standard - ANSI
|
||||
This is a variation of the default keymap with added RGB underglow and in-switch LED controls.
|
||||
|
||||
#### 1.0 Default layer
|
||||
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
│ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │▒▒▒▒▒│BKSPC│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │█████│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│CAPSL│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │▒▒▒▒▒│ENTER│█████│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│LSHFT│▒▒▒▒▒│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │▒▒▒▒▒│RSHFT│▒▒▒▒▒│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│LCTRL│L_GUI│L_ALT│█████│█████│█████│ SPC │█████│█████│█████│R_ALT│ FN0 │ APP │RCTRL│█████│
|
||||
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
||||
#### 1.1 Fn layer
|
||||
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
|
||||
│GRAVE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │▒▒▒▒▒│ │
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│ │ │ Up │ │ │ │ │ │PGUP │PGDWN│PRTSC│SCLCK│PAUSE│ │█████│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│ │Left │Down │Right│ │ │ │ │ │ │ │ │▒▒▒▒▒│ │█████│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│ │ │UGTOG│UGMOD│UGHUI│UGHUD│UGSAI│UGSAD│ │BLDEC│BLTOG│BLINC│▒▒▒▒▒│ │▒▒▒▒▒│
|
||||
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
|
||||
│ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│
|
||||
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
|
113
keyboards/tada68/keymaps/amnesia0287/keymap.c
Normal file
113
keyboards/tada68/keymaps/amnesia0287/keymap.c
Normal file
@@ -0,0 +1,113 @@
|
||||
#include "tada68.h"
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
#define _BL 0
|
||||
#define _HLa 1
|
||||
#define _HLb 2
|
||||
#define _HL 3
|
||||
#define _XL 4
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
enum hype_keycodes {
|
||||
FN_HLa = SAFE_RANGE,
|
||||
FN_HLb
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
|
||||
* |----------------------------------------------------------------|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = KEYMAP_ANSI(
|
||||
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_EQL, KC_BSPC,KC_HOME, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,KC_BSLS,KC_PGUP, \
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,KC_PGDN, \
|
||||
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSPC,KC_UP,LT(_HLa, KC_END), \
|
||||
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT,FN_HLa,FN_HLb, KC_LEFT,KC_DOWN,KC_RGHT),
|
||||
|
||||
/* Keymap _HL: Hype Fn Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* | | F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | |Up | | | | | | | | | | | |Hme |
|
||||
* |----------------------------------------------------------------|
|
||||
* | |<- |Dn | ->| | | | | | | | | |End |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | |Bl-|BL |BL+| |VU-|VU+|MUT| | McL|MsU|McR |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | | | | | |MsL|MsD|MsR |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_HLa] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,KC_INS, \
|
||||
KC_CAPS,_______, KC_UP,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP,_______, _______,_______, \
|
||||
_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_DOWN, _______,KC_PGUP,_______, \
|
||||
_______, _______, _______, _______, _______,_______,_______,KC_HOME,KC_PGDN, KC_END),
|
||||
|
||||
[_HLb] = KEYMAP_ANSI(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,KC_INS, \
|
||||
KC_CAPS,_______, KC_UP,_______,_______,_______,_______,_______,KC_PSCR,KC_SLCK,KC_PAUS, KC_UP,_______, _______,_______, \
|
||||
_______,KC_LEFT,KC_DOWN,KC_RGHT,_______,_______,_______,_______,KC_HOME,KC_PGUP,KC_LEFT,KC_RGHT, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______, KC_END,KC_PGDN,KC_DOWN, _______,KC_PGUP,_______, \
|
||||
_______, _______, _______, _______, _______,_______,_______,KC_HOME,KC_PGDN, KC_END),
|
||||
|
||||
[_HL] = KEYMAP_ANSI(
|
||||
BL_TOGG, BL_DEC, BL_INC,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,LALT(KC_F4),MAGIC_UNSWAP_BACKSLASH_BACKSPACE, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,MAGIC_SWAP_BACKSLASH_BACKSPACE, \
|
||||
_______,KC_VOLD,KC_VOLU,KC_MUTE,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,KC_MNXT,_______, \
|
||||
KC_MPRV, KC_MPLY, KC_MNXT, KC_MPLY, _______,_______,_______,KC_MRWD,KC_MPRV,KC_MFFD),
|
||||
|
||||
[_XL] = KEYMAP_ANSI(
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______, \
|
||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______, \
|
||||
_______, _______, _______, _______, _______,_______,_______,_______,_______,_______),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case FN_HLa:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLa);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case FN_HLb:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
layer_on(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
else
|
||||
{
|
||||
layer_off(_HLb);
|
||||
update_tri_layer(_HLa, _HLb, _HL);
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
3
keyboards/tada68/keymaps/amnesia0287/readme.md
Normal file
3
keyboards/tada68/keymaps/amnesia0287/readme.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# default TADA68 layout
|
||||
|
||||
This layout replicates the default factory layout of the TADA68.
|
51
keyboards/tada68/keymaps/tshack/keymap.c
Executable file
51
keyboards/tada68/keymaps/tshack/keymap.c
Executable file
@@ -0,0 +1,51 @@
|
||||
#include "tada68.h"
|
||||
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
|
||||
#define _______ KC_TRNS
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|PgDn|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Fn |Win |Alt | Space |Alt|Fn |Ctrl|Lef|Dow|Rig |
|
||||
* `----------------------------------------------------------------'
|
||||
*
|
||||
* Note: Shift + Esc = ~
|
||||
* Win + Esc = `
|
||||
*/
|
||||
[_BL] = KEYMAP_ANSI(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , \
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP, \
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
|
||||
MO(_FL), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
/* Keymap _FL: Function Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* | |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del | |
|
||||
* |----------------------------------------------------------------|
|
||||
* | |BL |BL-|BL+| | | | | | |PSc| | | | |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | | | | |<- |Dn |Up | ->| | | |Hme |
|
||||
* |----------------------------------------------------------------|
|
||||
* | |MUT|V- |V+ | | | | | | | | |PUp|End |
|
||||
* |----------------------------------------------------------------|
|
||||
* | | | | | | | |Hme|PDn|End |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_FL] = KEYMAP_ANSI(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, \
|
||||
_______, BL_TOGG, BL_DEC, BL_INC , _______, _______, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, KC_HOME, \
|
||||
_______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGUP, KC_END , \
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
|
||||
};
|
35
keyboards/tada68/keymaps/tshack/readme.md
Executable file
35
keyboards/tada68/keymaps/tshack/readme.md
Executable file
@@ -0,0 +1,35 @@
|
||||
# James Shackleford's Layout
|
||||
|
||||
This layout has been tweaked to work well for UNIX terminal rats like
|
||||
myself. Enjoy!
|
||||
|
||||
```
|
||||
Base Layer
|
||||
,----------------------------------------------------------------.
|
||||
|Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |~ ` |
|
||||
|----------------------------------------------------------------|
|
||||
|Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |Del |
|
||||
|----------------------------------------------------------------|
|
||||
|Ctrl | A| S| D| F| G| H| J| K| L| ;| '|Return |PgUp|
|
||||
|----------------------------------------------------------------|
|
||||
|Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgDn|
|
||||
|----------------------------------------------------------------|
|
||||
|Fn |Win |Alt | Space |Alt|Fn |Ctrl|<- |Dn | -> |
|
||||
`----------------------------------------------------------------'
|
||||
Note: Shift + Esc = ~ (tilde)
|
||||
Win + Esc = ` (grave)
|
||||
|
||||
|
||||
Fn Layer
|
||||
,----------------------------------------------------------------.
|
||||
| |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| Del | |
|
||||
|----------------------------------------------------------------|
|
||||
| |BL |BL-|BL+| | | | | | |PSc| | | | |
|
||||
|----------------------------------------------------------------|
|
||||
| | | | | | |<- |Dn |Up | ->| | | |Hme |
|
||||
|----------------------------------------------------------------|
|
||||
| |MUT|V- |V+ | | | | | | | | |PUp|End |
|
||||
|----------------------------------------------------------------|
|
||||
| | | | | | | |Hme|PDn|End |
|
||||
`----------------------------------------------------------------'
|
||||
```
|
21
keyboards/tada68/keymaps/tshack/rules.mk
Normal file
21
keyboards/tada68/keymaps/tshack/rules.mk
Normal file
@@ -0,0 +1,21 @@
|
||||
# Build Options
|
||||
# change to "no" to disable the options, or define them in the Makefile in
|
||||
# the appropriate keymap folder that will get included automatically
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
MIDI_ENABLE = no # MIDI controls
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
ifndef QUANTUM_DIR
|
||||
include ../../../../Makefile
|
||||
endif
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user