diff --git a/users/konstantin/config.h b/users/konstantin/config.h index 2629cdd57030..d429452363e3 100644 --- a/users/konstantin/config.h +++ b/users/konstantin/config.h @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #pragma once // Keyboard reports @@ -24,7 +40,7 @@ // Tapping #define PERMISSIVE_HOLD #define TAPPING_TERM 200 -#define TAPPING_TOGGLE 3 +#define TAPPING_TOGGLE 2 // Unicode #define UNICODE_CYCLE_PERSIST false diff --git a/users/konstantin/konstantin.c b/users/konstantin/konstantin.c index 3fdf5a4ca928..5d80877f0e4a 100644 --- a/users/konstantin/konstantin.c +++ b/users/konstantin/konstantin.c @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #include "konstantin.h" __attribute__((weak)) @@ -21,6 +37,41 @@ void keyboard_post_init_user(void) { keyboard_post_init_keymap(); } +__attribute__((weak)) +layer_state_t layer_state_set_keymap(layer_state_t state) { + return state; +} + +layer_state_t layer_state_set_user(layer_state_t state) { + state = layer_state_set_keymap(state); + +#ifdef LAYER_NUMPAD + bool numpad = IS_LAYER_ON_STATE(state, L_NUMPAD); + bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK); + if (numpad != num_lock) { + tap_code(KC_NLCK); // Toggle Num Lock to match Numpad layer state + } +#endif + + return state; +} + +__attribute__((weak)) +void led_set_keymap(uint8_t usb_led) {} + +void led_set_user(uint8_t usb_led) { + led_set_keymap(usb_led); +} + +__attribute__((weak)) +bool led_update_keymap(led_t led_state) { + return true; +} + +bool led_update_user(led_t led_state) { + return led_update_keymap(led_state); +} + __attribute__((weak)) bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { return true; @@ -91,38 +142,3 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { return true; } - -__attribute__((weak)) -uint32_t layer_state_set_keymap(uint32_t state) { - return state; -} - -layer_state_t layer_state_set_user(layer_state_t state) { - state = layer_state_set_keymap(state); - -#ifdef LAYER_NUMPAD - bool numpad = IS_LAYER_ON_STATE(state, L_NUMPAD); - bool num_lock = IS_HOST_LED_ON(USB_LED_NUM_LOCK); - if (numpad != num_lock) { - tap_code(KC_NLCK); // Toggle Num Lock to match Numpad layer state - } -#endif - - return state; -} - -__attribute__((weak)) -void led_set_keymap(uint8_t usb_led) {} - -void led_set_user(uint8_t usb_led) { - led_set_keymap(usb_led); -} - -__attribute__((weak)) -bool led_update_keymap(led_t led_state) { - return true; -} - -bool led_update_user(led_t led_state) { - return led_update_keymap(led_state); -} diff --git a/users/konstantin/konstantin.h b/users/konstantin/konstantin.h index 249b3fe15bf5..7da1dbfd2188 100644 --- a/users/konstantin/konstantin.h +++ b/users/konstantin/konstantin.h @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #pragma once #include "quantum.h" @@ -56,14 +72,6 @@ set_mods(mods); \ } -enum keycodes_user { - CLEAR = SAFE_RANGE, - DST_P_R, - DST_N_A, - - RANGE_KEYMAP, -}; - enum layers_user { L_BASE, #ifdef LAYER_FN @@ -76,11 +84,21 @@ enum layers_user { LAYERS_KEYMAP, }; +enum keycodes_user { + CLEAR = SAFE_RANGE, + DST_P_R, + DST_N_A, + + RANGE_KEYMAP, +}; + void keyboard_pre_init_keymap(void); void eeconfig_init_keymap(void); void keyboard_post_init_keymap(void); -bool process_record_keymap(uint16_t keycode, keyrecord_t *record); -uint32_t layer_state_set_keymap(uint32_t state); -void led_set_keymap(uint8_t usb_led); -bool led_update_keymap(led_t led_state); +layer_state_t layer_state_set_keymap(layer_state_t state); + +void led_set_keymap(uint8_t usb_led); +bool led_update_keymap(led_t led_state); + +bool process_record_keymap(uint16_t keycode, keyrecord_t *record); diff --git a/users/konstantin/post_config.h b/users/konstantin/post_config.h new file mode 100644 index 000000000000..3199b2124fa3 --- /dev/null +++ b/users/konstantin/post_config.h @@ -0,0 +1,22 @@ +/* Copyright 2021 Konstantin Đorđević + * + * 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 . + */ + +#pragma once + +// VIA +#ifndef DYNAMIC_KEYMAP_LAYER_COUNT + #define DYNAMIC_KEYMAP_LAYER_COUNT 3 +#endif diff --git a/users/konstantin/rgb.c b/users/konstantin/rgb.c index fffa250f25f2..2eeef829b08b 100644 --- a/users/konstantin/rgb.c +++ b/users/konstantin/rgb.c @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #include "rgb.h" #ifdef RGBLIGHT_EFFECT_BREATHING diff --git a/users/konstantin/rgb.h b/users/konstantin/rgb.h index e09c5bd7742c..3425dcb06908 100644 --- a/users/konstantin/rgb.h +++ b/users/konstantin/rgb.h @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #pragma once #include "quantum.h" diff --git a/users/konstantin/tap_dance.c b/users/konstantin/tap_dance.c index 4ec8caa63f74..57a29d98b8e9 100644 --- a/users/konstantin/tap_dance.c +++ b/users/konstantin/tap_dance.c @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #include "tap_dance.h" #include "konstantin.h" diff --git a/users/konstantin/tap_dance.h b/users/konstantin/tap_dance.h index 56889a19ef23..047662a8e95e 100644 --- a/users/konstantin/tap_dance.h +++ b/users/konstantin/tap_dance.h @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #pragma once #include "quantum.h" diff --git a/users/konstantin/unicode.c b/users/konstantin/unicode.c index 8ef5aaa1ec35..4eae716afdeb 100644 --- a/users/konstantin/unicode.c +++ b/users/konstantin/unicode.c @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #include "unicode.h" #ifdef UNICODEMAP_ENABLE diff --git a/users/konstantin/unicode.h b/users/konstantin/unicode.h index b2616d120b4d..1a1eb608949e 100644 --- a/users/konstantin/unicode.h +++ b/users/konstantin/unicode.h @@ -1,3 +1,19 @@ +/* Copyright 2019-2021 Konstantin Đorđević + * + * 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 . + */ + #pragma once #include "quantum.h"