Skip to content

Commit

Permalink
layout(preonic): update to dudeofawesome's layout (qmk#2507)
Browse files Browse the repository at this point in the history
* πŸŽ‰ duplicate default Preonic keymap

* ✨ add Workman layout

* 🚚 swap backspace and delete

* ✨ enable hold enter for shift

* 🚚 swap media play and next

* πŸ’„ use Planck startup sound

* πŸ’„ add Workman layer sound

* ✨ add numpad layer

* πŸ’„ add new workman sound

* πŸ“ add README

* 🎨 fix layout formatting

* πŸ“ add image of numpad layer

* πŸ“¦ changing chibios submodule version

to match upstream/master's version

* ✨ add caps lock key on adjust layer

* ✨ reworking numpad layer to match a real numpad

* ✨ add double tap to activate numpad

* πŸ“ fix layout comments

* πŸ“ update numpad layer render

* ✨ adding operator keys to left hand on numpad

* 🎨 shorten numpad keycodes

* 🎨 remove redundant breaks

* πŸ“ update numpad layer render

* 🎨 fix indentation

* πŸ”§ add rules file

* βœ¨πŸ”Š play sound when switching to numpad layer

* πŸ”¨ use userspace sounds
  • Loading branch information
dudeofawesome authored and jackhumbert committed Mar 16, 2018
1 parent 48321c3 commit f139c3d
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 76 deletions.
27 changes: 10 additions & 17 deletions keyboards/preonic/keymaps/dudeofawesome/config.h
Original file line number Diff line number Diff line change
@@ -1,27 +1,20 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H

#include "config_common.h"
#include "../../config.h"
#include "dudeofawesome.h"

#define TAPPING_TOGGLE 2

#ifdef AUDIO_ENABLE
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)

#define WORKMAN_SOUND \
E__NOTE(_GS7), \
ED_NOTE(_E7), \
S__NOTE(_REST), \
E__NOTE(_A6), \
S__NOTE(_REST), \
ED_NOTE(_GS6),

#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(WORKMAN_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#define STARTUP_SONG SONG(PLANCK_SOUND)
// #define STARTUP_SONG SONG(NO_SOUND)

#define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \
SONG(WORKMAN_SOUND), \
SONG(COLEMAK_SOUND), \
SONG(DVORAK_SOUND) \
}
#endif

#define MUSIC_MASK (keycode != KC_NO)
Expand Down
130 changes: 72 additions & 58 deletions keyboards/preonic/keymaps/dudeofawesome/keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,63 +213,77 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case WORKMAN:
if (record->event.pressed) {
set_single_persistent_default_layer(_WORKMAN);
}
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
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
break;
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
}
return true;
return false;
case WORKMAN:
if (record->event.pressed) {
set_single_persistent_default_layer(_WORKMAN);
}
return false;
case COLEMAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_COLEMAK);
}
return false;
case DVORAK:
if (record->event.pressed) {
set_single_persistent_default_layer(_DVORAK);
}
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;
case BACKLIT:
if (record->event.pressed) {
register_code(KC_RSFT);
#ifdef BACKLIGHT_ENABLE
backlight_step();
#endif
PORTE &= ~(1<<6);
} else {
unregister_code(KC_RSFT);
PORTE |= (1<<6);
}
return false;
}
return true;
};

bool numpadActive = false;

float tone_numpad_on[][2] = SONG(NUMPAD_ON_SOUND);

void matrix_scan_user (void) {
uint8_t layer = biton32(layer_state);

switch (layer) {
case _NUMPAD:
if (!numpadActive) {
numpadActive = true;
PLAY_SONG(tone_numpad_on);
}
break;
default:
if (numpadActive) {
numpadActive = false;
}
}
};
2 changes: 1 addition & 1 deletion keyboards/preonic/keymaps/dudeofawesome/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
- Dvorak
- Colemak
- Numpad layer
![numpad layer](https://i.imgur.com/V5iGHZg.png)
![numpad layer](https://i.imgur.com/IH8sWmQ.png)
- Audio

## Building and flashing
Expand Down
5 changes: 5 additions & 0 deletions keyboards/preonic/keymaps/dudeofawesome/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = yes # Audio output on port C6
UNICODE_ENABLE = no # Unicode
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
6 changes: 6 additions & 0 deletions users/dudeofawesome/dudeofawesome.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@
E__NOTE(_A6), \
S__NOTE(_REST), \
ED_NOTE(_GS6),

#define NUMPAD_ON_SOUND \
E__NOTE(_C6), \
ED_NOTE(_BF5), \
S__NOTE(_C6), \
ED_NOTE(_BF5),
#endif

#endif

0 comments on commit f139c3d

Please sign in to comment.