config

Personal configuration.
git clone git://code.dwrz.net/config
Log | Files | Refs

commit b88f9bfb2327721170faef009812869ed98e3ec0
parent 742e802e56a297981b9975e56e2b4e8d83abeab9
Author: dwrz <dwrz@dwrz.net>
Date:   Fri, 15 Mar 2024 11:41:20 +0000

Add technik keymap

Diffstat:
Aqmk/equals48/config.h | 1+
Aqmk/equals48/keymap.c | 201+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Aqmk/equals48/rules.mk | 1+
3 files changed, 203 insertions(+), 0 deletions(-)

diff --git a/qmk/equals48/config.h b/qmk/equals48/config.h @@ -0,0 +1 @@ +#define MK_COMBINED diff --git a/qmk/equals48/keymap.c b/qmk/equals48/keymap.c @@ -0,0 +1,201 @@ +#include QMK_KEYBOARD_H + +#define LT_MOU LT(_MOUSE, KC_COMM) +#define LT_NAV LT(_NAV, KC_A) +#define LT_NUM LT(_NUM, KC_E) +#define LT_SYM LT(_SYMBOL, KC_O) +#define LT_OPS LT(_OPS, KC_U) +#define LT_PUN LT(_PUNC, KC_DOT) + +enum layers { + _MAIN, + _NAV, + _MOUSE, + _NUM, + _OPS, + _PUNC, + _SYMBOL, + _FUNC, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT_ortho_4x12( + KC_ESC, KC_QUOT, LT_MOU, LT_PUN, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL, + KC_TAB, LT_NAV, LT_SYM, LT_NUM, LT_OPS, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT, + KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, RSFT_T(KC_MINS), + TG(_FUNC), KC_ALGR, KC_HYPR, KC_LALT, KC_LGUI, KC_BSPC, KC_SPC, KC_RCTL, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN + ), + [_NAV] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_UP, KC_END, KC_PGUP, + KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_END, KC_PGUP, KC_PGDN + ), + [_MOUSE] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_TRNS, KC_ACL2, KC_NO, KC_NO, KC_NO, KC_NO, KC_WH_L, KC_MS_U, KC_WH_R, KC_WH_U, + KC_NO, KC_ACL0, KC_NO, KC_ACL1, KC_NO, KC_NO, KC_NO, KC_NO, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1, KC_BTN2, KC_NO, KC_NO, KC_NO + ), + [_NUM] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_COMM, KC_DOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_0, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_EQL, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_1, KC_2, KC_3, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLSH, KC_ASTR, KC_PLUS, KC_MINS + ), + [_OPS] = LAYOUT_ortho_4x12( + KC_NO, KC_EQL, KC_GT, KC_LT, KC_NO, KC_NO, KC_NO, KC_NO, KC_CIRC, KC_ASTR, KC_PLUS, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_PERC, KC_SLSH, KC_MINS, KC_EQL, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_PUNC] = LAYOUT_ortho_4x12( + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_COLN, KC_EXLM, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_SCLN, KC_QUES, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_SYMBOL] = LAYOUT_ortho_4x12( + KC_TILD, KC_GRV, KC_NO, KC_NO, KC_NO, KC_NO, KC_LBRC, KC_RBRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, + KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_LCBR, KC_RCBR, KC_DLR, KC_PERC, KC_CIRC, KC_MINS, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSLS, KC_SLASH, KC_EXLM, KC_AT, KC_HASH, KC_PIPE, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ASTR, KC_SLSH, KC_PMNS, KC_PLUS, KC_EQL + ), + [_FUNC] = LAYOUT_ortho_4x12( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, + RGB_TOG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRID, KC_BRIU, KC_VOLU, KC_VOLD + ), +}; + +// http://www.keyboard-layout-editor.com/ +// https://docs.qmk.fm/#/feature_rgblight +// https://docs.qmk.fm/#/feature_rgb_matrix +// https://docs.qmk.fm/#/feature_audio + +// Repeat key: QK_REP, QK_AREP +// KC_CAPS Caps Lock +// KC_SCRL Scroll Lock +// KC_NUM Keypad Num Lock and Clear +// KC_PSCR Print Screen +// KC_PAUS, KC_BRK, KC_BRMU Pause, Brightness Up (macOS) +// KC_INS Insert +// KC_APP Application (Windows Context Menu Key) +// KC_KB_POWER System Power +// KC_EXEC Execute +// KC_HELP Help +// KC_MENU Menu +// KC_SELECT KC_SLCT Select +// KC_STOP Stop +// KC_AGAIN KC_AGIN Again +// KC_UNDO Undo +// KC_CUT Cut +// KC_COPY Copy +// KC_PASTE KC_PSTE Paste +// KC_FIND Find +// KC_KB_MUTE Mute +// KC_ALTERNATE_ERASE KC_ERAS Alternate Erase +// KC_SYSTEM_REQUEST KC_SYRQ SysReq/Attention +// KC_CANCEL KC_CNCL Cancel +// KC_CLEAR KC_CLR Clear +// KC_PRIOR KC_PRIR Prior +// KC_RETURN KC_RETN Return +// KC_SEPARATOR KC_SEPR Separator +// KC_OUT Out +// KC_OPER Oper +// KC_CLEAR_AGAIN KC_CLAG Clear/Again +// KC_CRSEL KC_CRSL CrSel/Props +// KC_EXSEL KC_EXSL ExSel +// KC_SYSTEM_POWER KC_PWR System Power Down +// KC_SYSTEM_SLEEP KC_SLEP System Sleep +// KC_SYSTEM_WAKE KC_WAKE System Wake +// KC_CALCULATOR KC_CALC Launch Calculator +// KC_MY_COMPUTER KC_MYCM Launch My Computer +// KC_WWW_HOME KC_WHOM Browser Home +// KC_WWW_BACK KC_WBAK Browser Back +// KC_WWW_FORWARD KC_WFWD Browser Forward +// KC_WWW_STOP KC_WSTP Browser Stop +// KC_WWW_REFRESH KC_WREF Browser Refresh +// KC_WWW_FAVORITES KC_WFAV Browser Favorites +// KC_CONTROL_PANEL KC_CPNL Open Control Panel +// KC_ASSISTANT KC_ASST Launch Assistant +// KC_MISSION_CONTROL KC_MCTL Open Mission Control +// KC_LAUNCHPAD KC_LPAD Open Launchpad + +void set_led_color(uint8_t i, uint8_t highest_layer, bool unused) { + switch (highest_layer) { + case _NAV: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_RED); + } + break; + case _MOUSE: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_YELLOW); + } + break; + case _NUM: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_GREEN); + } + break; + case _OPS: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_ORANGE); + } + break; + case _PUNC: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_PINK); + } + break; + case _SYMBOL: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_PURPLE); + } + break; + case _FUNC: + if (unused) { + rgb_matrix_set_color(i, RGB_OFF); + } else { + rgb_matrix_set_color(i, RGB_BLUE); + } + break; + default: + // rgb_matrix_set_color(i, RGB_OFF); + break; + } +} + +bool rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t layer = get_highest_layer(layer_state); + if (layer < 0) { + return false; + } + + uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + uint8_t i = g_led_config.matrix_co[row][col]; + if (i >= led_min && i < led_max && i != NO_LED) { + bool unused = keymap_key_to_keycode(layer, (keypos_t){col,row}) <= KC_TRNS; + set_led_color(i, highest_layer, unused); + } + } + } + + return false; +} diff --git a/qmk/equals48/rules.mk b/qmk/equals48/rules.mk @@ -0,0 +1 @@ +# REPEAT_KEY_ENABLE = yes