forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Keymap] Adding drasbeck keymaps for lily58pro and preonic (qmk#10013)
* added danskish keymap * Added readme.md * Clean up in keymap.c * Added license * Changed name of keymap * adjusting tapping term * added encoder functionality * housekeeping * layouts resemble the layout now * implemented suggestions from drashna * added keymap for preonic rev3 * added default layer to readme.md * removed backslashes * Update keyboards/lily58/keymaps/drasbeck/keymap.c * Update keyboards/preonic/keymaps/drasbeck/readme.md * Update keyboards/lily58/keymaps/drasbeck/rules.mk * Update keyboards/preonic/keymaps/drasbeck/keymap.c * Update keyboards/preonic/keymaps/drasbeck/keymap.c * Update keyboards/preonic/keymaps/drasbeck/keymap.c * Update keyboards/preonic/keymaps/drasbeck/keymap.c * Update keyboards/lily58/keymaps/drasbeck/rules.mk * Update keyboards/lily58/keymaps/drasbeck/rules.mk * Update keyboards/lily58/keymaps/drasbeck/rules.mk * Update keyboards/preonic/keymaps/drasbeck/rules.mk
- Loading branch information
Showing
8 changed files
with
561 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
/* | ||
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 2020 Max Drasbeck | ||
* | ||
* You are free to: | ||
* | ||
* Share — copy and redistribute the material in any medium or format | ||
* Adapt — remix, transform, and build upon the material | ||
* for any purpose, even commercially. | ||
* | ||
* The licensor cannot revoke these freedoms as long as you follow the license terms. | ||
*/ | ||
|
||
#pragma once | ||
|
||
//#define USE_MATRIX_I2C | ||
|
||
/* Select hand configuration */ | ||
|
||
#define MASTER_LEFT | ||
// #define MASTER_RIGHT | ||
// #define EE_HANDS | ||
|
||
#define USE_SERIAL_PD2 | ||
|
||
#define ENCODERS_PAD_A { F4 } | ||
#define ENCODERS_PAD_B { F5 } | ||
#define ENCODER_RESOLUTION 4 | ||
|
||
#define TAPPING_FORCE_HOLD | ||
#define TAPPING_TERM 180 | ||
|
||
#undef RGBLED_NUM | ||
#define RGBLIGHT_ANIMATIONS | ||
#define RGBLED_NUM 27 | ||
#define RGBLIGHT_LIMIT_VAL 120 | ||
#define RGBLIGHT_HUE_STEP 10 | ||
#define RGBLIGHT_SAT_STEP 17 | ||
#define RGBLIGHT_VAL_STEP 17 | ||
|
||
// Underglow | ||
/* | ||
#undef RGBLED_NUM | ||
#define RGBLED_NUM 14 // Number of LEDs | ||
#define RGBLIGHT_ANIMATIONS | ||
#define RGBLIGHT_SLEEP | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,166 @@ | ||
/* Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 2020 Max Drasbeck | ||
* | ||
* You are free to: | ||
* | ||
* Share — copy and redistribute the material in any medium or format | ||
* Adapt — remix, transform, and build upon the material | ||
* for any purpose, even commercially. | ||
* | ||
* The licensor cannot revoke these freedoms as long as you follow the license terms. | ||
*/ | ||
|
||
#include QMK_KEYBOARD_H | ||
|
||
extern uint8_t is_master; | ||
|
||
enum layers { | ||
_QWERTY, | ||
_LOWER, | ||
_RAISE, | ||
_ADJUST, | ||
}; | ||
|
||
enum custom_keycodes { | ||
QWERTY = SAFE_RANGE, | ||
LOWER, | ||
RAISE, | ||
ADJUST, | ||
}; | ||
|
||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
|
||
[_QWERTY] = LAYOUT( | ||
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, | ||
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_NO, KC_MUTE, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT, | ||
KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_NUBS, KC_LCTL | ||
), | ||
|
||
[_LOWER] = LAYOUT( | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, | ||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_MINS, KC_EQL, KC_RBRC, | ||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NUHS, | ||
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_RO, KC_ENT, | ||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | ||
), | ||
|
||
[_RAISE] = LAYOUT( | ||
KC_TRNS, RALT(KC_1), RALT(KC_2), RALT(KC_3), RALT(KC_4), RALT(KC_5), RALT(KC_6), RALT(KC_7), RALT(KC_8), RALT(KC_9), RALT(KC_0), KC_DEL, | ||
KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_MINS, KC_EQL, KC_RBRC, | ||
KC_ESC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NUHS, | ||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_VOLD, KC_VOLU, KC_MUTE, KC_RO, KC_SFTENT, | ||
KC_RALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RALT(KC_NUBS), KC_TRNS | ||
), | ||
|
||
[_ADJUST] = LAYOUT( | ||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, | ||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, | ||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, | ||
_______, _______, _______, _______, _______, _______, _______, _______ | ||
) | ||
}; | ||
|
||
int RGB_current_mode; | ||
|
||
void matrix_init_user(void) { | ||
#ifdef RGBLIGHT_ENABLE | ||
RGB_current_mode = rgblight_config.mode; | ||
#endif | ||
} | ||
|
||
//SSD1306 OLED update loop, make sure to enable OLED_DRIVER_ENABLE=yes in rules.mk | ||
#ifdef OLED_DRIVER_ENABLE | ||
|
||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
if (!is_keyboard_master()) | ||
return OLED_ROTATION_180; // flips the display 180 degrees if offhand | ||
return rotation; | ||
} | ||
|
||
// When you add source files to SRC in rules.mk, you can use functions. | ||
const char *read_layer_state(void); | ||
const char *read_logo(void); | ||
void set_keylog(uint16_t keycode, keyrecord_t *record); | ||
//const char *read_keylog(void); | ||
//const char *read_keylogs(void); | ||
|
||
// const char *read_mode_icon(bool swap); | ||
// const char *read_host_led_state(void); | ||
// void set_timelog(void); | ||
// const char *read_timelog(void); | ||
|
||
void oled_task_user(void) { | ||
if (is_keyboard_master()) { | ||
// If you want to change the display of OLED, you need to change here | ||
oled_write_ln(read_layer_state(), false); | ||
//oled_write_ln(read_keylog(), false); | ||
//oled_write_ln(read_keylogs(), false); | ||
//oled_write_ln(read_mode_icon(keymap_config.swap_lalt_lgui), false); | ||
//oled_write_ln(read_host_led_state(), false); | ||
//oled_write_ln(read_timelog(), false); | ||
} else { | ||
oled_write(read_logo(), false); | ||
} | ||
} | ||
#endif // OLED_DRIVER_ENABLE | ||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
if (record->event.pressed) { | ||
#ifdef OLED_DRIVER_ENABLE | ||
set_keylog(keycode, record); | ||
#endif | ||
// set_timelog(); | ||
} | ||
|
||
switch (keycode) { | ||
case QWERTY: | ||
if (record->event.pressed) { | ||
set_single_persistent_default_layer(_QWERTY); | ||
} | ||
return false; | ||
break; | ||
case LOWER: | ||
if (record->event.pressed) { | ||
layer_on(_LOWER); | ||
} else { | ||
layer_off(_LOWER); | ||
} | ||
update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
return false; | ||
break; | ||
case RAISE: | ||
if (record->event.pressed) { | ||
layer_on(_RAISE); | ||
} else { | ||
layer_off(_RAISE); | ||
} | ||
update_tri_layer(_LOWER, _RAISE, _ADJUST); | ||
return false; | ||
break; | ||
case ADJUST: | ||
if (record->event.pressed) { | ||
layer_on(_ADJUST); | ||
} else { | ||
layer_off(_ADJUST); | ||
} | ||
return false; | ||
break; | ||
} | ||
return true; | ||
} | ||
|
||
#ifdef ENCODER_ENABLE | ||
void encoder_update_user(uint8_t index, bool clockwise) { | ||
// index 1 == minion side | ||
if (index == 1) { | ||
if (clockwise) { | ||
tap_code(KC_VOLD); | ||
} else { | ||
tap_code(KC_VOLU); | ||
} | ||
} | ||
} | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
## Danish (Dansk) layout for the Lily58 Pro | ||
Keyboard: Lily58 Pro | ||
Keys: Lily58 Pro is 6×4+5keys column-staggered split keyboard, optinal with a rotary encoder. | ||
Flash instructions: Flash each side of the keyboard, minding whether the side uses a Pro Micro or Elite-C controller. | ||
|
||
### Layout | ||
Danish special characters on main layer, moving other characters to mainly raised layer. | ||
|
||
Layer 0 = default | ||
Layer 1 = lower | ||
Layer 2 = raise | ||
|
||
![keymap](https://drasbeck.dk/public/keymap_lily58pro_danskish.png) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
# Build Options | ||
# change yes to no to disable | ||
# | ||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration | ||
MOUSEKEY_ENABLE = no # Mouse keys | ||
EXTRAKEY_ENABLE = yes # Audio control and System control | ||
CONSOLE_ENABLE = no # Console for debug | ||
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 | ||
AUDIO_ENABLE = no # Audio output | ||
BLUETOOTH_ENABLE = no # Enable Bluetooth | ||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | ||
SWAP_HANDS_ENABLE = no # Enable one-hand typing | ||
OLED_DRIVER_ENABLE = yes # OLED display | ||
ENCODER_ENABLE = yes # Enable encoder | ||
|
||
# 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 you want to change the display of OLED, you need to change here | ||
SRC += ./lib/rgb_state_reader.c \ | ||
./lib/layer_state_reader.c \ | ||
./lib/logo_reader.c \ | ||
./lib/keylogger.c \ | ||
# ./lib/mode_icon_reader.c \ | ||
# ./lib/host_led_state_reader.c \ | ||
# ./lib/timelogger.c \ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
/* | ||
Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) 2020 Max Drasbeck | ||
* | ||
* You are free to: | ||
* | ||
* Share — copy and redistribute the material in any medium or format | ||
* Adapt — remix, transform, and build upon the material | ||
* for any purpose, even commercially. | ||
* | ||
* The licensor cannot revoke these freedoms as long as you follow the license terms. | ||
*/ | ||
|
||
#pragma once | ||
|
||
#ifdef AUDIO_ENABLE | ||
#define STARTUP_SONG SONG(PREONIC_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 |
Oops, something went wrong.