Skip to content

Commit

Permalink
update pvinis keymap (qmk#8746)
Browse files Browse the repository at this point in the history
* update a bunch of stuff

Better rules, better config, added encoders, lights, audio.

* some fmt

* more fmt
  • Loading branch information
pvinis authored and turky committed Jun 13, 2020
1 parent 0f9dee4 commit c195231
Show file tree
Hide file tree
Showing 8 changed files with 631 additions and 492 deletions.
411 changes: 211 additions & 200 deletions keyboards/ergodox_ez/keymaps/pvinis/keymap.c

Large diffs are not rendered by default.

36 changes: 24 additions & 12 deletions keyboards/keebio/iris/keymaps/pvinis/config.h
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
#pragma once


#ifdef PRODUCT
#undef PRODUCT
#define PRODUCT Iris Keyboard - pvinis
# undef PRODUCT
# define PRODUCT Iris Keyboard - pvinis
#endif


// Use I2C or Serial, not both
// Use I2C or Serial, not both.
#define USE_SERIAL
// #define USE_I2C


// Select hand configuration
#define MASTER_LEFT
// #define MASTER_RIGHT
// Select hand configuration.
// #define MASTER_LEFT
#define MASTER_RIGHT
// #define EE_HANDS


// choose pin to use for audio. c6 is the one iris uses.
// Choose pin to use for audio. C6 is the one iris uses.
#ifdef AUDIO_ENABLE
#define C6_AUDIO
# define C6_AUDIO
# define STARTUP_SONG SONG(NO_SOUND) // No startup song.
#endif

#ifdef RGBLIGHT_ENABLE
# undef RGBLED_NUM
# define RGBLED_NUM 16
#endif

#ifdef ENCODER_ENABLE
# define ENCODERS_PAD_A \
{ F5 } // I connected the encoder to F4 and F5.
# define ENCODERS_PAD_B \
{ F4 }
// #define ENCODERS_PAD_A_RIGHT { B5 }
// #define ENCODERS_PAD_B_RIGHT { C6 }
# define ENCODER_RESOLUTION 2
#endif
267 changes: 172 additions & 95 deletions keyboards/keebio/iris/keymaps/pvinis/keymap.c

Large diffs are not rendered by default.

11 changes: 9 additions & 2 deletions keyboards/keebio/iris/keymaps/pvinis/rules.mk
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
AUDIO_ENABLE = no # off for now
RGBLIGHT_ENABLE = no # off for now
TAP_DANCE_ENABLE = yes
AUDIO_ENABLE = no # piezo speaker sounds
RGBLIGHT_ENABLE = yes # rgb leds underlight
ENCODER_ENABLE = yes # rotary knob

# Some extra stuff to make firmware smaller.
LINK_TIME_OPTIMIZATION_ENABLE = yes
CONSOLE_ENABLE = no
COMMAND_ENABLE = no
9 changes: 4 additions & 5 deletions users/pvinis/config.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
#pragma once

#ifdef AUDIO_ENABLE
// #define STARTUP_SONG SONG(SONIC_RING)
// #define DAC_SAMPLE_MAX 65535U // maybe this works for volume?
#endif

// allow rolling when keys have hold functionality
#define IGNORE_MOD_TAP_INTERRUPT
// #define TAPPING_TERM 150

#if defined(MOUSE_KEYS)
# define MOUSEKEY_WHEEL_TIME_TO_MAX 1
#endif
127 changes: 68 additions & 59 deletions users/pvinis/pvinis.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,88 +2,97 @@
#include "version.h"

#ifdef AUDIO_ENABLE
#include "audio.h"
#endif // AUDIO_ENABLE


#ifdef AUDIO_ENABLE
// float tone_katamari_rolling_star[][2] = SONG(KATAMARI_ROLLING_STAR);
#endif // AUDIO_ENABLE
# include "audio.h"

float song_sonic_ring[][2] = SONG(SONIC_RING);
float song_coin_sound[][2] = SONG(COIN_SOUND);
float song_test[][2] = SONG(QWERTY_SOUND);
#endif

// SYMBOL + SYSCTL = KBCTL
uint32_t layer_state_set_user(uint32_t state) {
uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL);
intermediate_state = layer_state_set_user_local(intermediate_state);
return intermediate_state;
uint32_t intermediate_state = update_tri_layer_state(state, LR_SYMBOL, LR_SYSCTL, LR_KBCTL);
intermediate_state = layer_state_set_user_keymap(intermediate_state);
return intermediate_state;
}


// functions for the individual keymaps to implement if they need something extra
__attribute__ ((weak))
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
return true;
}
__attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; }


// handle my own keycodes
// Handle my own keycodes.
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {

case PV_VRSN:
if (record->event.pressed) {
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;

case PV_MAKE:
if (!record->event.pressed) {
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
switch (keycode) {
case PV_VRSN:
if (record->event.pressed) {
SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;

case PV_MAKE:
// make ergodox_ez:pvinis:teensy
if (!record->event.pressed) {
SEND_STRING("make " QMK_KEYBOARD ":" QMK_KEYMAP
#if (defined(BOOTLOADER_DFU) || defined(BOOTLOADER_LUFA_DFU) || defined(BOOTLOADER_QMK_DFU))
":dfu"
":dfu"
#elif defined(BOOTLOADER_HALFKAY)
":teensy"
":teensy"
#elif defined(BOOTLOADER_CATERINA)
":avrdude"
":avrdude"
#endif
SS_TAP(X_ENTER)
);
}
return false;
SS_TAP(X_ENTER));
}
return false;

case PV_FLSH:
reset_keyboard();
return false;
case PV_FLSH:
reset_keyboard();
return false;

case PV_KTMR:
if (record->event.pressed) {
case PV_SSNC:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
// PLAY_SONG(tone_katamari_rolling_star);
PLAY_SONG(song_sonic_ring);
#endif
}
return false;
}
return process_record_keymap(keycode, record);
}
}
return false;

case PV_SCIN:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(song_coin_sound);
#endif
}
return false;

case PV_TEST:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(song_test);
#endif
}
return false;
}
return process_record_keymap(keycode, record);
}

#ifdef TAP_DANCE_ENABLE
qk_tap_dance_action_t tap_dance_actions[] = {
};
#endif // TAP_DANCE_ENABLE
qk_tap_dance_action_t tap_dance_actions[] = {};
#endif

void keyboard_post_init_rgb_light(void) {
rgblight_sethsv(HSV_GOLD);
rgblight_mode(RGBLIGHT_MODE_BREATHING);
// rgblight_mode(RGBLIGHT_MODE_KNIGHT+1);
}

// init stuff
// Init stuff.
void keyboard_post_init_user(void) {
keyboard_post_init_user_local();
#if defined(RGBLIGHT_ENABLE)
keyboard_post_init_rgb_light();
#endif
keyboard_post_init_user_keymap();
}

// Default functions.
__attribute__((weak)) void keyboard_post_init_user_keymap(void) {}

// default functions
__attribute__ ((weak))
void keyboard_post_init_user_local(void) {}

__attribute__ ((weak))
uint32_t layer_state_set_user_local(uint32_t state) {
return state;
}
__attribute__((weak)) uint32_t layer_state_set_user_keymap(uint32_t state) { return state; }
Loading

0 comments on commit c195231

Please sign in to comment.