Skip to content

Commit

Permalink
[Keymap] Updates to existing keymaps and userspace (qmk#14503)
Browse files Browse the repository at this point in the history
Co-authored-by: Drashna Jaelre <drashna@live.com>
  • Loading branch information
vomindoraan and drashna committed Sep 19, 2021
1 parent 760f2ca commit 5e88c21
Show file tree
Hide file tree
Showing 10 changed files with 216 additions and 48 deletions.
18 changes: 17 additions & 1 deletion users/konstantin/config.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

// Keyboard reports
Expand All @@ -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
Expand Down
86 changes: 51 additions & 35 deletions users/konstantin/konstantin.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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 "konstantin.h"

__attribute__((weak))
Expand All @@ -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;
Expand Down Expand Up @@ -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);
}
42 changes: 30 additions & 12 deletions users/konstantin/konstantin.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

#include "quantum.h"
Expand Down Expand Up @@ -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
Expand All @@ -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);
22 changes: 22 additions & 0 deletions users/konstantin/post_config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
/* Copyright 2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

// VIA
#ifndef DYNAMIC_KEYMAP_LAYER_COUNT
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
#endif
16 changes: 16 additions & 0 deletions users/konstantin/rgb.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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 "rgb.h"

#ifdef RGBLIGHT_EFFECT_BREATHING
Expand Down
16 changes: 16 additions & 0 deletions users/konstantin/rgb.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

#include "quantum.h"
Expand Down
16 changes: 16 additions & 0 deletions users/konstantin/tap_dance.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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 "tap_dance.h"
#include "konstantin.h"

Expand Down
16 changes: 16 additions & 0 deletions users/konstantin/tap_dance.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

#include "quantum.h"
Expand Down
16 changes: 16 additions & 0 deletions users/konstantin/unicode.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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 "unicode.h"

#ifdef UNICODEMAP_ENABLE
Expand Down
16 changes: 16 additions & 0 deletions users/konstantin/unicode.h
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
/* Copyright 2019-2021 Konstantin Đorđević <vomindoraan@gmail.com>
*
* 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/>.
*/

#pragma once

#include "quantum.h"
Expand Down

0 comments on commit 5e88c21

Please sign in to comment.