summaryrefslogtreecommitdiff
path: root/keyboards/work_louder/micro
diff options
context:
space:
mode:
authorLuis Garcia <luis@bitjester.com>2023-04-05 12:35:34 -0600
committerGitHub <noreply@github.com>2023-04-05 12:35:34 -0600
commitd058091d0b2f98791d37c4a77779a8202592284f (patch)
treefb8487c257020233cff14543829f2b349916c46b /keyboards/work_louder/micro
parent596319c92fb8d61918a89133804ba232158e2323 (diff)
Add peterfalken userspace & keymaps (#19897)
Co-authored-by: Peter.Falken <luis.garcia@bitjester.com>
Diffstat (limited to 'keyboards/work_louder/micro')
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/config.h7
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/keymap.c113
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/readme.md14
-rw-r--r--keyboards/work_louder/micro/keymaps/peterfalken/rules.mk3
4 files changed, 137 insertions, 0 deletions
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/config.h b/keyboards/work_louder/micro/keymaps/peterfalken/config.h
new file mode 100644
index 0000000000..dc1dd935a9
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/peterfalken/config.h
@@ -0,0 +1,7 @@
+// Copyright 2023 Peter.Falken (@PeterFalken)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#define CUSTOM_KEYMAP_LAYERS
+#define CUSTOM_LAYER_STATE
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c b/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c
new file mode 100644
index 0000000000..8ef9a4eb97
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/peterfalken/keymap.c
@@ -0,0 +1,113 @@
+// Copyright 2023 Peter.Falken (@PeterFalken)
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "peterfalken.h"
+
+enum keymap_layers {
+ _L0,
+ _L1,
+ _L2,
+ _L3,
+ _L4,
+ _L5,
+ _L6,
+ _ADJUST
+};
+
+// Shorter custom keycodes
+#define CK_UNDO LGUI(KC_Z) // UNDO = CMD + Z
+#define CK_REDO SGUI(KC_Z) // REDO = CMD + SHIFT + Z
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_L0] = LAYOUT(
+ KC_MPLY, KC_9, KC_0, KC_NO,
+ KC_5, KC_6, KC_7, KC_8,
+ KC_1, KC_2, KC_3, KC_4,
+ TO(1), KC_DOT, KC_COMM, _______
+ ),
+ [_L1] = LAYOUT(
+ KC_1, KC_2, KC_3, KC_4,
+ KC_5, KC_6, KC_7, KC_8,
+ KC_9, KC_0, KC_A, KC_B,
+ TO(2), KC_C, KC_D, KC_E
+ ),
+ [_L2] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(3), _______, _______, _______
+ ),
+ [_L3] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(4), _______, _______, _______
+ ),
+ [_L4] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(5), _______, _______, _______
+ ),
+ [_L5] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(6), _______, _______, _______
+ ),
+ [_L6] = LAYOUT(
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(7), _______, _______, _______
+ ),
+ [_ADJUST] = LAYOUT(
+ QK_BOOT, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ TO(0), _______, _______, _______
+ ),
+};
+
+typedef union {
+ uint32_t raw;
+ struct {
+ uint8_t led_level : 3;
+ };
+} work_louder_config_t;
+
+work_louder_config_t work_louder_config;
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(CK_UNDO, CK_REDO) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif // defined(ENCODER_MAP_ENABLE)
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ // Get highest layer as number
+ int layer = get_highest_layer(state);
+ // Toggle leds based on binary layer number [1 2 3]
+ layer & 0x04 ? work_louder_micro_led_1_on(): work_louder_micro_led_1_off();
+ layer & 0x02 ? work_louder_micro_led_2_on(): work_louder_micro_led_2_off();
+ layer & 0x01 ? work_louder_micro_led_3_on(): work_louder_micro_led_3_off();
+ return state;
+}
+
+void eeconfig_init_user(void) {
+ work_louder_config.raw = 0;
+ work_louder_config.led_level = 1;
+ eeconfig_update_user(work_louder_config.raw);
+}
+
+void matrix_init_user(void) {
+ work_louder_config.raw = eeconfig_read_user();
+ work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4));
+}
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/readme.md b/keyboards/work_louder/micro/keymaps/peterfalken/readme.md
new file mode 100644
index 0000000000..f64d682a51
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/peterfalken/readme.md
@@ -0,0 +1,14 @@
+Copyright 2023 LEG <ucaboys@gmail.com> @PeterFalken
+
+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/>.
diff --git a/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk b/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk
new file mode 100644
index 0000000000..59ffb099c2
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/peterfalken/rules.mk
@@ -0,0 +1,3 @@
+# Setup QMK features
+ENCODER_MAP_ENABLE = yes
+RGB_MATRIX_ENABLE = no # Disable RGB key matrix