Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding lily58pro and preonic keymap #10013

Merged
merged 24 commits into from
Sep 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
b8911ec
added danskish keymap
Aug 12, 2020
b3f3d27
Added readme.md
Aug 12, 2020
0c7bc33
Clean up in keymap.c
Aug 12, 2020
88659ce
Added license
Aug 12, 2020
40b2d05
Changed name of keymap
Aug 12, 2020
7a71c11
adjusting tapping term
Aug 14, 2020
8c46a8a
added encoder functionality
Aug 15, 2020
aace0ac
housekeeping
Aug 15, 2020
38c5169
layouts resemble the layout now
Aug 20, 2020
7b7a7a6
implemented suggestions from @drashna
drasbeck Sep 3, 2020
4fd0299
added keymap for preonic rev3
drasbeck Sep 3, 2020
4c0a14a
added default layer to readme.md
drasbeck Sep 3, 2020
07cb49e
removed backslashes
drasbeck Sep 3, 2020
24c8c41
Update keyboards/lily58/keymaps/drasbeck/keymap.c
drasbeck Sep 7, 2020
7972af9
Update keyboards/preonic/keymaps/drasbeck/readme.md
drasbeck Sep 21, 2020
f99c2a0
Update keyboards/lily58/keymaps/drasbeck/rules.mk
drasbeck Sep 21, 2020
bae1938
Update keyboards/preonic/keymaps/drasbeck/keymap.c
drasbeck Sep 21, 2020
608bc9e
Update keyboards/preonic/keymaps/drasbeck/keymap.c
drasbeck Sep 21, 2020
af022d6
Update keyboards/preonic/keymaps/drasbeck/keymap.c
drasbeck Sep 21, 2020
49f4f34
Update keyboards/preonic/keymaps/drasbeck/keymap.c
drasbeck Sep 21, 2020
d72e2cc
Update keyboards/lily58/keymaps/drasbeck/rules.mk
drasbeck Sep 21, 2020
f4a8959
Update keyboards/lily58/keymaps/drasbeck/rules.mk
drasbeck Sep 21, 2020
fb6ef51
Update keyboards/lily58/keymaps/drasbeck/rules.mk
drasbeck Sep 21, 2020
7555644
Update keyboards/preonic/keymaps/drasbeck/rules.mk
drasbeck Sep 21, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions keyboards/lily58/keymaps/drasbeck/config.h
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
*/
166 changes: 166 additions & 0 deletions keyboards/lily58/keymaps/drasbeck/keymap.c
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,
Comment on lines +24 to +27
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Formatting nit-pick

Suggested change
QWERTY = SAFE_RANGE,
LOWER,
RAISE,
ADJUST,
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
14 changes: 14 additions & 0 deletions keyboards/lily58/keymaps/drasbeck/readme.md
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)

28 changes: 28 additions & 0 deletions keyboards/lily58/keymaps/drasbeck/rules.mk
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 \
49 changes: 49 additions & 0 deletions keyboards/preonic/keymaps/drasbeck/config.h
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
Loading