Change review #7

This commit is contained in:
Lefuneste83 2024-09-10 19:18:55 +02:00
parent b4cc867f28
commit b0459efd20
6 changed files with 50 additions and 538 deletions

View File

@ -23,25 +23,30 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define MASTER_RIGHT
//#define SPLIT_HAND_PIN GP10 //If handedness jumpers are bridged on KLOR REV 1.5 PCB onward
#define I2C1_SCL_PIN GP3
#define I2C1_SDA_PIN GP2
#ifdef OLED_ENABLE
# define OLED_DISPLAY_128X64
# define SPLIT_OLED_ENABLE
# define OLED_FONT_H "./lib/glcdfont.c"
#endif
#ifdef AUDIO_ENABLE
#define AUDIO_PWM_DRIVER PWMD4
#define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B
#define AUDIO_STATE_TIMER GPTD4
#define AUDIO_PIN GP9
#define AUDIO_DAC_SAMPLE_MAX 4095U
#define AUDIO_VOICE_DEFAULT butts_fader
# define STARTUP_SONG SONG(W__NOTE(_DS0), W__NOTE(_DS1), H__NOTE(_DS2), H__NOTE(_DS3), Q__NOTE(_DS4), Q__NOTE(_DS5), E__NOTE(_DS6), E__NOTE(_DS7), S__NOTE(_DS8), Q__NOTE(_GS0))
# define GOODBYE_SONG SONG(H__NOTE(_DS4), H__NOTE(_DS3), W__NOTE(_DS1))
# define DEFAULT_LAYER_SONGS \
{ SONG(QWERTY_SOUND), SONG(COLEMAK_SOUND) }
#endif
#ifdef HAPTIC_ENABLE
#define DRV2605L_FB_ERM_LRA 1
#define DRV2605L_FB_BRAKEFACTOR 3
#define DRV2605L_FB_LOOPGAIN 1
@ -51,8 +56,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DRV2605L_F_LRA 150
#define DRV2605L_DRV_GREETING alert_750ms
#define DRV2605L_DEFAULT_MODE 4
#endif
#ifdef POINTING_DEVICE_ENABLE
# define POINTING_DEVICE_SCLK_PIN GP3
# define POINTING_DEVICE_SDIO_PIN GP2
# define POINTING_DEVICE_AUTO_MOUSE_ENABLE
# define AUTO_MOUSE_DELAY 300
#endif

View File

@ -12,12 +12,6 @@
{"pin_a": "GP28", "pin_b": "GP29", "resolution": 2}
]
},
"tapping": {
"term": 250
},
"combo": {
"term": 150
},
"features": {
"audio": true,
"bootmagic": true,
@ -179,9 +173,6 @@
"oled": true
}
},
"usb_detect": {
"enabled": true
},
},
"url": "https://github.com/Lefuneste83/KLOR",
"usb": {

View File

@ -22,22 +22,8 @@ enum klor_layers {
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
q w e r t y
Q W E R T Y U I O P
TAB A S D F G H J K L ; '
CTRL Z X C V B MUTE PLY/PSE N M , . / \
LALT RALT SPACE BSPCE ENTER DEL
*/
[_QWERTY] = LAYOUT_all(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,

View File

@ -13,49 +13,16 @@ 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/>.
D E F A U L T
*/
#include QMK_KEYBOARD_H
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ D E F I N I T I O N S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
// ┌───────────────────────────────────────────────────────────┐
// │ d e f i n e l a y e r s │
// └───────────────────────────────────────────────────────────┘
enum klor_layers {
/* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
_QWERTY,
_LOWER,
_RAISE,
_ADJUST,
};
// ┌───────────────────────────────────────────────────────────┐
// │ d e f i n e k e y c o d e s │
// └───────────────────────────────────────────────────────────┘
enum custom_keycodes {
QWERTY = SAFE_RANGE,
LOWER,
@ -65,246 +32,58 @@ enum custom_keycodes {
MAKE_H,
};
// ┌───────────────────────────────────────────────────────────┐
// │ d e f i n e m a c r o n a m e s │
// └───────────────────────────────────────────────────────────┘
// LEFT HAND HOME ROW MODS ├───────────────────────────────────┐
#define GUI_A MT(MOD_LGUI, KC_A)
#define ALT_R MT(MOD_LALT, KC_R)
#define CTL_S MT(MOD_LCTL, KC_S)
#define SHT_T MT(MOD_LSFT, KC_T)
// RIGHT HAND HOME ROW MODS ├───────────────────────────────────┐
#define SHT_N MT(MOD_RSFT, KC_N)
#define CTL_E MT(MOD_LCTL, KC_E)
#define ALT_I MT(MOD_LALT, KC_I)
#define GUI_O MT(MOD_LGUI, KC_O)
// ┌───────────────────────────────────────────────────────────┐
// │ d e f i n e s o u n d s │
// └───────────────────────────────────────────────────────────┘
#ifdef AUDIO_ENABLE
#define WINXP_SOUND W__NOTE(_DS6), Q__NOTE(_DS5), H__NOTE(_AS5), H__NOTE(_GS5), H__NOTE(_DS5), H__NOTE(_DS6), H__NOTE(_AS5)
#define MAC_SOUND S__NOTE(_CS5), B__NOTE(_C5)
float winxp_song[][2] = SONG(WINXP_SOUND);
float mac_song[][2] = SONG(MAC_SOUND);
#endif // AUDIO_ENABLE
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ K E Y M A P S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
#endif
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
q w e r t y
Q W E R T Y U I O P
TAB A S D F G H J K L ; '
CTRL Z X C V B MUTE PLY/PSE N M , . / \
LALT LOWER RALT SPACE BSPCE ENTER RAISE DEL
*/
[_QWERTY] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
LSFT_T(KC_TAB), KC_A, KC_S, KC_D, LSFT_T(KC_F),KC_G, KC_H, RSFT_T(KC_J), KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_MUTE, KC_MPLY, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
KC_LALT, LOWER, KC_RALT, KC_SPC, KC_BSPC, KC_ENT, RAISE, KC_DEL
),
/*
l o w e r
F1 F2 F3 F4 F5 F6 F7 F8 F9 F10
- ! @ # $ % ^ & ` ~ = +
_ 1 2 3 4 5 MUTE PLY/PASE 6 7 8 9 0 *
LSHIFT RSHIFT
*/
[_LOWER] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_MINS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_GRV, KC_TILD, KC_EQL, KC_PLUS,
KC_UNDS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MUTE, KC_MPLY, KC_6, KC_7, KC_8, KC_9, KC_0, KC_ASTR,
KC_TRNS, KC_TRNS, KC_TRNS, KC_LSFT, KC_RSFT, KC_TRNS, KC_TRNS, KC_TRNS
),
/*
r a i s e
RGB_SPI RGB_HUI HF_NEXT CK_UP { } LEFT UP RIGHT HOME
RGB_VAI RGB_MOD RGB_M_B HF_TOGG CK_TOGG [ ] DOWN PSCRN P UP
RGB_VAD RGB_SPD RGB_HUD HF_PREV CK_DOWN ( MUTE PLY/PASE ) END P DOWN
LSHIFT RSHIFT
*/
[_RAISE] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
RGB_SPI, RGB_HUI, HF_NEXT, CK_UP, KC_LCBR, KC_RCBR, KC_LEFT, KC_UP, KC_RGHT, KC_HOME,
RGB_VAI, RGB_MOD, RGB_M_B, HF_TOGG, CK_TOGG, KC_LBRC, KC_RBRC, XXXXXXX, KC_DOWN, XXXXXXX, KC_PSCR, KC_PGUP,
RGB_VAD, RGB_SPD, RGB_HUD, HF_PREV, CK_DOWN, KC_LPRN, KC_MUTE, KC_MPLY, KC_RPRN, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_PGDN,
XXXXXXX, XXXXXXX, XXXXXXX, KC_LSFT, KC_RSFT, XXXXXXX, XXXXXXX, XXXXXXX
),
/*
a d j u s t
AUDIO HAPTIC RGB HUE RGB MOD F7 F8 F9 F14
RESET DEBUG QWERTY RGB SAT F4 F5 F6 F12 F13
MAKE OS SWAP RGB VAL MUTE PLY/PSE F1 F2 F3 F10 F11
*/
[_ADJUST] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
AU_TOGG, HF_TOGG, RGB_HUI, RGB_MOD, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F14,
QK_BOOT, DB_TOGG, QWERTY, RGB_SAI, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F12, KC_F13,
MAKE_H, OS_SWAP, XXXXXXX, RGB_VAI, XXXXXXX, XXXXXXX, KC_MUTE, KC_MPLY, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F11,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
),
/*
t e m p l a t e p o l y d a c t y l
[_TEMPLATE] = LAYOUT_polydactyl(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
t e m p l a t e k o n r a d
[_TEMPLATE] = LAYOUT_konrad(
//╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
)
t e m p l a t e y u b i t s u m e
[_TEMPLATE] = LAYOUT_yubitsume(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______
)
t e m p l a t e s a e g e w e r k
[_TEMPLATE] = LAYOUT_saegewerk(
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______
)
*/
};
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ O L E D │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
#ifdef OLED_ENABLE
// ┌───────────────────────────────────────────────────────────┐
// │ d y n a m i c m a c r o │
// └───────────────────────────────────────────────────────────┘
char layer_state_str[24];
char o_text[24] = "";
int dmacro_num = 0;
@ -316,32 +95,27 @@ int dmacro_num = 0;
const char PROGMEM stop_ico[] = {0xD3, 0xE1, 0};
const char PROGMEM play_ico[] = {0xD2, 0xE1, 0};
// DYNMACRO RECORD ├─────────────────────────────────────────────────────────────┐
bool dynamic_macro_record_start_user(int8_t direction) {
dmacro_num = 1;
return false;
}
// DYNMACRO STOP RECORDING ├─────────────────────────────────────────────────────┐
bool dynamic_macro_record_end_user(int8_t direction) {
dmacro_num = 2;
dmacro_timer = timer_read();
return false;
}
// DYNMACRO PLAY RECORDING ├─────────────────────────────────────────────────────┐
bool dynamic_macro_play_user(int8_t direction) {
dmacro_num = 3;
dmacro_timer = timer_read();
return false;
}
#endif //DYNAMIC_MACRO_ENABLE
#endif
void matrix_scan_user(void) {
#ifdef DYNAMIC_MACRO_ENABLE
// DynMacroTimer
if(dmacro_num > 0){
if (timer_elapsed(dmacro_timer) < 3000) {
strcpy ( o_text, dmacro_text[dmacro_num] );
@ -356,14 +130,9 @@ void matrix_scan_user(void) {
}
}
}
#endif //DYNAMIC_MACRO_ENABLE
#endif
}
// ┌───────────────────────────────────────────────────────────┐
// │ o l e d g r a p h i c s │
// └───────────────────────────────────────────────────────────┘
void render_os_lock_status(void) {
static const char PROGMEM sep_v[] = {0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0};
static const char PROGMEM sep_h1[] = {0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0};
@ -388,23 +157,21 @@ void render_os_lock_status(void) {
static const char PROGMEM hap_di[] = {0xCF, 0xD0, 0};
#endif
// os mode status ────────────────────────────────────────┐
oled_write_ln_P(sep_v, false);
if (keymap_config.swap_lctl_lgui) {
oled_write_P(os_m_1, false); // ──── MAC
oled_write_P(os_m_1, false);
} else {
oled_write_P(os_w_1, false); // ──── WIN
oled_write_P(os_w_1, false);
}
oled_write_P(sep_h1, false);
oled_write_P(face_1, false);
if (keymap_config.swap_lctl_lgui) {
oled_write_P(os_m_2, false); // ──── MAC
oled_write_P(os_m_2, false);
} else {
oled_write_P(os_w_2, false); // ──── WIN
oled_write_P(os_w_2, false);
}
oled_write_P(sep_h1, false);
@ -412,29 +179,24 @@ void render_os_lock_status(void) {
oled_write_P(sep_h1, false);
oled_write_P(face_3, false);
// lock key layer status ─────────────────────────────────┐
led_t led_usb_state = host_keyboard_led_state();
if (led_usb_state.num_lock) {
oled_write_P(n_lock, false); // ──── NUMLOCK
oled_write_P(n_lock, false);
} else {
oled_write_P(b_lock, false);
}
if (led_usb_state.caps_lock) {
oled_write_P(c_lock, false); // ─── CAPSLOCK
oled_write_P(c_lock, false);
} else {
oled_write_P(b_lock, false);
}
if (led_usb_state.scroll_lock) { // ─ SCROLLLOCK
if (led_usb_state.scroll_lock) {
oled_write_P(s_lock, false);
} else {
oled_write_P(b_lock, false);
}
// hardware feature status ──────────────────────────────┐
oled_write_P(sep_h2, false);
#ifndef AUDIO_ENABLE
@ -444,28 +206,24 @@ void render_os_lock_status(void) {
oled_write_P(b_lock, false);
#endif
#ifdef AUDIO_ENABLE // ────────────────── AUDIO
#ifdef AUDIO_ENABLE
if (is_audio_on()) {
oled_write_P(aud_en, false);
} else {
oled_write_P(aud_di, false);
}
#endif // AUDIO ENABLE
#endif
#ifdef HAPTIC_ENABLE // ─────────────── HAPTIC
// oled_write_P(hap_en, false);
#ifdef HAPTIC_ENABLE
if (haptic_get_enable()) {
oled_write_P(hap_en, false);
} else {
oled_write_P(hap_di, false);
}
#endif // HAPTIC ENABLE
#endif
}
// layer status ──────────────────────────────────────────┐
int layerstate = 0;
layer_state_t layer_state_set_kb(layer_state_t state) {
@ -488,34 +246,25 @@ layer_state_t layer_state_set_kb(layer_state_t state) {
if (dmacro_num < 1) {
strcpy ( o_text, layer_state_str );
}
//return state;
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}
// ┌───────────────────────────────────────────────────────────┐
// │ w r i t e t o o l e d │
// └───────────────────────────────────────────────────────────┘
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
if (is_keyboard_master()) { // ────────────────────────── PRIMARY SIDE
if (is_keyboard_master()) {
// layer status ──────────────────────────────────────────────────┐
#ifdef DYNAMIC_MACRO_ENABLE
if(dmacro_num == 1){ oled_write_P(rec_ico, false); }
if(dmacro_num == 2){ oled_write_P(stop_ico, false); }
if(dmacro_num == 3){ oled_write_P(play_ico, false); }
#endif //DYNAMIC_MACRO_ENABLE
#endif
oled_write_ln(o_text, false);
render_os_lock_status();
} else { // ─────────────────────────────────────────── SECONDARY SIDE
// KLOR face ─────────────────────────────────────────────────────┐
} else {
static const char PROGMEM klor_face[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@ -587,9 +336,7 @@ bool oled_task_kb(void) {
}
return false;
}
#endif // OLED_ENABLE
#endif
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
@ -602,55 +349,38 @@ uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
}
}
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ M A C R O S │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case OS_SWAP:
if (record->event.pressed) {
if (!keymap_config.swap_lctl_lgui) {
keymap_config.swap_lctl_lgui = true; // ─── MAC
keymap_config.swap_lctl_lgui = true;
#ifdef AUDIO_ENABLE
PLAY_SONG(mac_song);
#endif // AUDIO_ENABLE
#endif
}
else {
keymap_config.swap_lctl_lgui = false; // ─── WIN
keymap_config.swap_lctl_lgui = false;
#ifdef AUDIO_ENABLE
PLAY_SONG(winxp_song);
#endif // AUDIO_ENABLE
#endif
}
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(52);
// #endif // HAPTIC_ENABLE
eeconfig_update_keymap(keymap_config.raw);
clear_keyboard(); // ──── clear to prevent stuck keys
clear_keyboard();
return false;
}
// ┌───────────────────────────────────────────────────────────┐
// │ l a y e r │
// └───────────────────────────────────────────────────────────┘
case QWERTY:
if (record->event.pressed) {
set_single_persistent_default_layer(_QWERTY);
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(64);
// #endif // HAPTIC_ENABLE
}
return false;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(17);
// #endif // HAPTIC_ENABLE
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
@ -660,9 +390,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(17);
// #endif // HAPTIC_ENABLE
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
@ -672,18 +399,11 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(17);
// #endif // HAPTIC_ENABLE
} else {
layer_off(_ADJUST);
}
return false;
// ┌───────────────────────────────────────────────────────────┐
// │ q m k │
// └───────────────────────────────────────────────────────────┘
case MAKE_H:
if (record->event.pressed) {
#ifdef KEYBOARD_klor_kb2040
@ -695,27 +415,14 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
}
break;
// ┌───────────────────────────────────────────────────────────┐
// │ p r o d u c t i v i t y │
// └───────────────────────────────────────────────────────────┘
case KC_MPLY:
if (record->event.pressed) {
// #ifdef HAPTIC_ENABLE
// drv2605l_pulse(4);
// #endif // HAPTIC_ENABLE
}
break;
}
return true;
}
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
// │ E N C O D E R │
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WBAK, KC_WFWD) },
@ -725,11 +432,6 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
};
#endif
// ┌───────────────────────────────────────────────────────────┐
// │ c o m b o keys │
// └───────────────────────────────────────────────────────────┘
#ifdef COMBO_ENABLE
enum combos {
@ -754,26 +456,4 @@ combo_t key_combos[] = {
[WR_TERMINAL] = COMBO(wr_combo, LCTL(LALT(KC_T))),
};
#endif // COMBO_ENABLE
/*
*/
#endif

View File

@ -55,168 +55,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
#endif //SWAP_HANDS_ENABLE
#ifdef RGB_MATRIX_ENABLE
// Physical layout ────────────────────────────────────────────────────
//
// ┌────────────────────┐ ┌────────────────────┐
// │ 18 13 12 06 05 │ │ 26 27 33 34 39 │
//┌───┴────────────────────┤ ├────────────────────┴───┐
//│ 20 17 14 11 07 04 │ │ 25 28 32 35 38 40 │
//├────────────────────────┤ ├────────────────────────┤
//│ 19 16 15 10 08 03 │ │ 24 29 31 36 37 41 │
//└───────────────┬────────┴───────┐ ┌───────┴────────┬───────────────┘
// │ 09 02 01 00 │ │ 21 22 23 30 │
// └────────────────┘ └────────────────┘
//
//
// Electrical layout ───────────────────────────────────────
//
// C 00──01──02──03──04──05────06──07──08──09──10──11 R
// ┌────────────────────┐┌────────────────────┐ │
// X │ 18 13 12 06 05 ││ 26 27 33 34 39 │ X 0
// ┌───┴────────────────────┤├────────────────────┴───┐ │
// │ 20 17 14 11 07 04 ││ 25 28 32 35 38 40 │ 1
// ├────────────────────────┤├────────────────────────┤ │
// │ 19 16 15 10 08 03 ││ 24 29 31 36 37 41 │ 2
// └───┬────────────────┬───┘└───┬────────────────┬───┘ │
// X │ 09 02 01 00 │ X X │ 21 22 23 30 │ X 3
// └────────────────┘ └────────────────┘
// POLYDACTYL / YUBITSUME
// use this matrix if you use the polydactyl or yubitsume layout ────────────────────────────────────┐
/*
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 18, 13, 12, 6, 5 },//00
{ 19, 17, 14, 11, 7, 4 },//01
{ 20, 16, 15, 10, 8, 3 },//02
{ NO_LED, 9, 2, 1, 0, NO_LED },//03
{ NO_LED, 37, 34, 33, 27, 26 },//00
{ 40, 38, 35, 32, 28, 25 },//01
{ 41, 39, 36, 31, 29, 24 },//02
{ NO_LED, 30, 23, 22, 21, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 102, 63 }, { 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 122, 63 }, { 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
/*
// KONRAD
// use this matrix if you use the konrad layout ───────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ 18, 16, 13, 10, 6, 3 },//01
{ 19, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 37, 32, 31, 25, 24 },//00
{ 38, 36, 33, 30, 26, 23 },//01
{ 39, 35, 34, 29, 27, 22 },//02
{ NO_LED, 28, 21, 20, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 }, { 0, 28 }, { 3, 41 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }, { 224, 28 }, { 221, 41 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4, 1, 1
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
/*
// SAEGEWERK
// use this matrix if you use the saegewerk layout ────────────────────────────────────────────────────┐
led_config_t g_led_config = { {
//COL 00 01 02 03 04 05 ROW
{ NO_LED, 17, 12, 11, 5, 4 },//00
{ NO_LED, 16, 13, 10, 6, 3 },//01
{ NO_LED, 15, 14, 9, 7, 2 },//02
{ NO_LED, 8, 1, 0, NO_LED, NO_LED },//03
{ NO_LED, 35, 30, 29, 23, 22 },//00
{ NO_LED, 34, 31, 28, 24, 21 },//01
{ NO_LED, 33, 32, 27, 25, 20 },//02
{ NO_LED, 26, 19, 18, NO_LED, NO_LED } //03
}, {
//LEFT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 89, 54 }, { 74, 49 }, { 75, 34 }, { 75, 21 }, { 75, 8 }, { 60, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 60, 19 }, { 60, 32 }, { 58, 48 }, { 46, 25 }, { 46, 12 }, { 46, 0 }, { 29, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 30, 20 }, { 31, 33 }, { 17, 42 }, { 15, 30 }, { 13, 17 },
//RIGHT
//thumb1 ▼ thumb2 ▼ thumb3 ▼ C0 R3 ▼ C0 R2 ▼ C0 R1 ▼ C1 R1 ▼
{ 135, 54 }, { 150, 49 }, { 149, 34 }, { 149, 21 }, { 149, 8 }, { 163, 6 },
//C1 R2 ▼ C1 R3 ▼ thumb4 ▼ C2 R3 ▼ C2 R2 ▼ C2 R1 ▼ C3 R1 ▼
{ 163, 19 }, { 163, 32 }, { 166, 48 }, { 178, 25 }, { 178, 12 }, { 178, 0 }, { 195, 7 },
//C3 R2 ▼ C3 R3 ▼ C4 R3 ▼ C4 R2 ▼ C4 R1 ▼ C5 R2 ▼ C5 R3 ▼
{ 194, 20 }, { 193, 33 }, { 206, 42 }, { 209, 30 }, { 211, 17 }
}, {
//LEFT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4,
//RIGHT
1, 1, 4, 4, 4, 4,
4, 4, 1, 4, 4, 4, 4,
4, 4, 4, 4, 4
} };
// ────────────────────────────────────────────────────────────────────────────────────────────────────┘
*/
#endif //RGB_MATRIX_ENABLE

View File

@ -1,7 +1,19 @@
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
// See gfxfont.h for newer custom bitmap font info.
/*
Copyright 2024 ElectronLab
#pragma once
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 "progmem.h"