summaryrefslogtreecommitdiff
path: root/keyboards/work_louder/micro/keymaps/default
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2022-07-26 12:50:45 -0700
committerGitHub <noreply@github.com>2022-07-26 20:50:45 +0100
commit5f36285fc5905913aea0671e037bb343fd84391f (patch)
treefe678b41ae43d5ff42546a828f0028325eb55c05 /keyboards/work_louder/micro/keymaps/default
parent9dbc0473efd64ae246e171fe0201708725c9eeda (diff)
[Keyboard] Add work louder micro (#17586)
* [Keyboard] Add work louder micro * Update keyboards/work_louder/micro/readme.md * Update readme * Update kb config files * Update to use encoder map Co-authored-by: Tom Barnes <barnestom@me.com>
Diffstat (limited to 'keyboards/work_louder/micro/keymaps/default')
-rw-r--r--keyboards/work_louder/micro/keymaps/default/keymap.c91
-rw-r--r--keyboards/work_louder/micro/keymaps/default/rules.mk1
2 files changed, 92 insertions, 0 deletions
diff --git a/keyboards/work_louder/micro/keymaps/default/keymap.c b/keyboards/work_louder/micro/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6b5541e017
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/default/keymap.c
@@ -0,0 +1,91 @@
+// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ LED_LEVEL = SAFE_RANGE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ 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, LED_LEVEL
+ ),
+ 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
+ ),
+ 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(3), KC_C, KC_D, KC_E
+ ),
+ 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(0), KC_C, LED_LEVEL,KC_E
+ ),
+
+};
+
+typedef union {
+ uint32_t raw;
+ struct {
+ uint8_t led_level : 3;
+ };
+} work_louder_config_t;
+
+work_louder_config_t work_louder_config;
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case LED_LEVEL:
+ if (record->event.pressed) {
+ work_louder_config.led_level++;
+ if (work_louder_config.led_level > 4) {
+ work_louder_config.led_level = 0;
+ }
+ work_louder_micro_led_all_set((uint8_t)(work_louder_config.led_level * 255 / 4));
+ eeconfig_update_user(work_louder_config.raw);
+ layer_state_set_kb(layer_state);
+ }
+ break;
+ }
+ return true;
+}
+
+#if defined(ENCODER_MAP_ENABLE)
+const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
+ { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(C(KC_Z), C(KC_Y)) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+ { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) },
+};
+#endif
+
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ layer_state_cmp(state, 1) ? work_louder_micro_led_1_on(): work_louder_micro_led_1_off();
+ layer_state_cmp(state, 2) ? work_louder_micro_led_2_on(): work_louder_micro_led_2_off();
+ layer_state_cmp(state, 3) ? 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/default/rules.mk b/keyboards/work_louder/micro/keymaps/default/rules.mk
new file mode 100644
index 0000000000..ee32568148
--- /dev/null
+++ b/keyboards/work_louder/micro/keymaps/default/rules.mk
@@ -0,0 +1 @@
+ENCODER_MAP_ENABLE = yes