parent
3beda8bc8d
commit
c75c8897a1
10 changed files with 859 additions and 0 deletions
18
keyboards/geigeigeist/totem/config.h
Normal file
18
keyboards/geigeigeist/totem/config.h
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright 2022 GEIST @geigeigeist
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// Matrix size
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
|
||||||
|
// Split communication (vendor serial on RP2040, using GP0/GP1)
|
||||||
|
#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode.
|
||||||
|
#define SERIAL_USART_TX_PIN GP0 // USART TX pin
|
||||||
|
#define SERIAL_USART_RX_PIN GP1 // USART RX pin
|
||||||
|
#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve.
|
||||||
|
#define EE_HANDS // Split handedness via eeprom
|
||||||
|
|
||||||
|
// RP2040 bootloader double-tap
|
||||||
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||||
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||||
72
keyboards/geigeigeist/totem/keyboard.json
Normal file
72
keyboards/geigeigeist/totem/keyboard.json
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "TOTEM",
|
||||||
|
"manufacturer": "GEIST",
|
||||||
|
"url": "https://github.com/GEIGEIGEIST/TOTEM",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"usb": {
|
||||||
|
"vid": "0x3A3C",
|
||||||
|
"pid": "0x0002",
|
||||||
|
"device_version": "0.3.0"
|
||||||
|
},
|
||||||
|
"processor": "RP2040",
|
||||||
|
"bootloader": "rp2040",
|
||||||
|
"matrix_pins": {
|
||||||
|
"rows": ["GP26", "GP27", "GP28", "GP29"],
|
||||||
|
"cols": ["GP6", "GP7", "GP3", "GP4", "GP2"]
|
||||||
|
},
|
||||||
|
"diode_direction": "COL2ROW",
|
||||||
|
"debounce": 5,
|
||||||
|
"features": {
|
||||||
|
"swap_hands": true
|
||||||
|
},
|
||||||
|
"split": {
|
||||||
|
"enabled": true,
|
||||||
|
"serial": {
|
||||||
|
"driver": "vendor"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "L00", "matrix": [0, 0], "x": 1, "y": 1.4 },
|
||||||
|
{ "label": "L01", "matrix": [0, 1], "x": 2, "y": 0.6 },
|
||||||
|
{ "label": "L02", "matrix": [0, 2], "x": 3, "y": 0 },
|
||||||
|
{ "label": "L03", "matrix": [0, 3], "x": 4, "y": 0.5 },
|
||||||
|
{ "label": "L04", "matrix": [0, 4], "x": 5, "y": 0.65 },
|
||||||
|
{ "label": "R00", "matrix": [4, 4], "x": 9, "y": 0.65 },
|
||||||
|
{ "label": "R01", "matrix": [4, 3], "x": 10, "y": 0.5 },
|
||||||
|
{ "label": "R02", "matrix": [4, 2], "x": 11, "y": 0 },
|
||||||
|
{ "label": "R03", "matrix": [4, 1], "x": 12, "y": 0.6 },
|
||||||
|
{ "label": "R04", "matrix": [4, 0], "x": 13, "y": 1.4 },
|
||||||
|
{ "label": "L10", "matrix": [1, 0], "x": 1, "y": 2.4 },
|
||||||
|
{ "label": "L11", "matrix": [1, 1], "x": 2, "y": 1.6 },
|
||||||
|
{ "label": "L12", "matrix": [1, 2], "x": 3, "y": 1 },
|
||||||
|
{ "label": "L13", "matrix": [1, 3], "x": 4, "y": 1.5 },
|
||||||
|
{ "label": "L14", "matrix": [1, 4], "x": 5, "y": 1.65 },
|
||||||
|
{ "label": "R10", "matrix": [5, 4], "x": 9, "y": 1.65 },
|
||||||
|
{ "label": "R11", "matrix": [5, 3], "x": 10, "y": 1.5 },
|
||||||
|
{ "label": "R12", "matrix": [5, 2], "x": 11, "y": 1 },
|
||||||
|
{ "label": "R13", "matrix": [5, 1], "x": 12, "y": 1.6 },
|
||||||
|
{ "label": "R14", "matrix": [5, 0], "x": 13, "y": 2.4 },
|
||||||
|
{ "label": "L30", "matrix": [3, 0], "x": 0, "y": 2.9 },
|
||||||
|
{ "label": "L20", "matrix": [2, 0], "x": 1, "y": 3.4 },
|
||||||
|
{ "label": "L21", "matrix": [2, 1], "x": 2, "y": 2.6 },
|
||||||
|
{ "label": "L22", "matrix": [2, 2], "x": 3, "y": 2 },
|
||||||
|
{ "label": "L23", "matrix": [2, 3], "x": 4, "y": 2.5 },
|
||||||
|
{ "label": "L24", "matrix": [2, 4], "x": 5, "y": 2.65 },
|
||||||
|
{ "label": "R20", "matrix": [6, 4], "x": 9, "y": 2.65 },
|
||||||
|
{ "label": "R21", "matrix": [6, 3], "x": 10, "y": 2.5 },
|
||||||
|
{ "label": "R22", "matrix": [6, 2], "x": 11, "y": 2 },
|
||||||
|
{ "label": "R23", "matrix": [6, 1], "x": 12, "y": 2.6 },
|
||||||
|
{ "label": "R24", "matrix": [6, 0], "x": 13, "y": 3.4 },
|
||||||
|
{ "label": "R34", "matrix": [7, 0], "x": 14, "y": 2.9 },
|
||||||
|
{ "label": "L32", "matrix": [3, 2], "x": 3.6, "y": 3.5 },
|
||||||
|
{ "label": "L33", "matrix": [3, 3], "x": 4.8, "y": 3.65 },
|
||||||
|
{ "label": "L34", "matrix": [3, 4], "x": 6, "y": 3.85 },
|
||||||
|
{ "label": "R30", "matrix": [7, 4], "x": 8, "y": 3.85 },
|
||||||
|
{ "label": "R31", "matrix": [7, 3], "x": 9.2, "y": 3.65 },
|
||||||
|
{ "label": "R32", "matrix": [7, 2], "x": 10.4, "y": 3.5 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
248
keyboards/geigeigeist/totem/keymaps/default/keymap.c
Normal file
248
keyboards/geigeigeist/totem/keymaps/default/keymap.c
Normal file
|
|
@ -0,0 +1,248 @@
|
||||||
|
/*
|
||||||
|
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
|
||||||
|
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
|
||||||
|
█ █ █ █ █ █ █ █ █ █ █
|
||||||
|
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
|
||||||
|
█ ▄▄▄█▄▄▄ █ █
|
||||||
|
▀ █ █ █ █▄█
|
||||||
|
▀▀▀▀▀ █ █ █ ▀
|
||||||
|
▀ ▀ ▀ D E F A U L T
|
||||||
|
|
||||||
|
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ d e f i n e l a y e r s │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
enum totem_layers {
|
||||||
|
_QWERTY,
|
||||||
|
_COLEMAK,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
/* │ d e f i n e k e y c o d e s │
|
||||||
|
// └─────────────────────────────────────────────────┘ */
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
COLEMAK = SAFE_RANGE,
|
||||||
|
QWERTY,
|
||||||
|
LOWER,
|
||||||
|
RAISE,
|
||||||
|
ADJUST,
|
||||||
|
MAKE_H,
|
||||||
|
SNAP
|
||||||
|
};
|
||||||
|
|
||||||
|
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
// │ K E Y M A P S │
|
||||||
|
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/*
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ q w e r t y │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_RSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN),
|
||||||
|
KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P,
|
||||||
|
KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ c o l e m a k │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
|
||||||
|
|
||||||
|
[_COLEMAK] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN,
|
||||||
|
MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_R), MT(MOD_LCTL, KC_S), MT(MOD_LSFT, KC_T), KC_D, KC_H, MT(MOD_RSFT, KC_N), MT(MOD_LCTL, KC_E), MT(MOD_LALT, KC_I), MT(MOD_LGUI, KC_O),
|
||||||
|
KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN,
|
||||||
|
KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ l o w e r │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS,
|
||||||
|
SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______,
|
||||||
|
_______, _______, _______, _______, MO(4), KC_P0
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ r a i s e │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS,
|
||||||
|
RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O),
|
||||||
|
XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1,
|
||||||
|
_______, MO(4), _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ a d j u s t │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12,
|
||||||
|
DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11,
|
||||||
|
MAKE_H, CG_TOGG, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13,
|
||||||
|
_______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
// │ M A C R O S │
|
||||||
|
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case CG_TOGG:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (!keymap_config.swap_lctl_lgui) {
|
||||||
|
keymap_config.swap_lctl_lgui = true; // ─── MAC
|
||||||
|
} else {
|
||||||
|
keymap_config.swap_lctl_lgui = false; // ─── WIN
|
||||||
|
}
|
||||||
|
eeconfig_update_keymap(&keymap_config);
|
||||||
|
clear_keyboard(); // ──── clear to prevent stuck keys
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ l a y e r │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLEMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ q m k │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case MAKE_H:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("qmk compile -kb geigeigeist/totem -km default");
|
||||||
|
tap_code(KC_ENTER);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ p r o d u c t i v i t y │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case SNAP:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC
|
||||||
|
} else {
|
||||||
|
SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
|
||||||
|
██████
|
||||||
|
██ ▄▄▄▄
|
||||||
|
██ ██▀▀██
|
||||||
|
▀▀ ██▄▄██
|
||||||
|
██████ ▀▀▀▀
|
||||||
|
██ ▄▄▄▄▄▄
|
||||||
|
██ ██▀▀▀▀
|
||||||
|
██ ██████
|
||||||
|
██▄▄▄▄
|
||||||
|
▀▀▀▀▀▀
|
||||||
|
████████
|
||||||
|
██ ██ ██
|
||||||
|
██ ██ ██
|
||||||
|
▀▀ ▀▀ ▀▀
|
||||||
|
████████
|
||||||
|
|
||||||
|
*/
|
||||||
22
keyboards/geigeigeist/totem/keymaps/vial/config.h
Normal file
22
keyboards/geigeigeist/totem/keymaps/vial/config.h
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
// Copyright 2022 GEIST @geigeigeist
|
||||||
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define VIAL_KEYBOARD_UID \
|
||||||
|
{ 0xCB, 0x37, 0x36, 0xFE, 0xEE, 0xED, 0xEE, 0x77 }
|
||||||
|
#define VIAL_UNLOCK_COMBO_ROWS \
|
||||||
|
{ 0, 4 }
|
||||||
|
#define VIAL_UNLOCK_COMBO_COLS \
|
||||||
|
{ 0, 0 }
|
||||||
|
|
||||||
|
// #define TAPPING_TERM 170
|
||||||
|
#define TAPPING_TERM 170
|
||||||
|
|
||||||
|
// Auto Shift
|
||||||
|
#define NO_AUTO_SHIFT_ALPHA
|
||||||
|
#define AUTO_SHIFT_TIMEOUT TAPPING_TERM
|
||||||
|
|
||||||
|
#undef LOCKING_SUPPORT_ENABLE
|
||||||
|
#undef LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
|
||||||
285
keyboards/geigeigeist/totem/keymaps/vial/keymap.c
Normal file
285
keyboards/geigeigeist/totem/keymaps/vial/keymap.c
Normal file
|
|
@ -0,0 +1,285 @@
|
||||||
|
/*
|
||||||
|
▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
|
||||||
|
▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
|
||||||
|
█ █ █ █ █ █ █ █ █ █ █
|
||||||
|
▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
|
||||||
|
█ ▄▄▄█▄▄▄ █ █
|
||||||
|
▀ █ █ █ █▄█
|
||||||
|
▀▀▀▀▀ █ █ █ ▀
|
||||||
|
▀ ▀ ▀ D E F A U L T
|
||||||
|
|
||||||
|
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
// │ D E F I N I T I O N S │
|
||||||
|
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ d e f i n e l a y e r s │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
enum totem_layers {
|
||||||
|
_QWERTY,
|
||||||
|
_COLEMAK,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ d e f i n e k e y c o d e s │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
enum custom_keycodes { COLEMAK = SAFE_RANGE, QWERTY, LOWER, RAISE, ADJUST, OS_SWAP, MAKE_H, SNAP };
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ d e f i n e m a c r o n a m e s │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
// LEFT HAND HOME ROW MODS QWERTY ├──────────────────┐
|
||||||
|
|
||||||
|
#define GUI_A MT(MOD_LGUI, KC_A)
|
||||||
|
#define ALT_S MT(MOD_LALT, KC_S)
|
||||||
|
#define CTL_D MT(MOD_LCTL, KC_D)
|
||||||
|
#define SHT_F MT(MOD_LSFT, KC_F)
|
||||||
|
|
||||||
|
// RIGHT HAND HOME ROW MODS QWERTY ├─────────────────┐
|
||||||
|
|
||||||
|
#define SHT_J MT(MOD_RSFT, KC_J)
|
||||||
|
#define CTL_K MT(MOD_LCTL, KC_K)
|
||||||
|
#define ALT_L MT(MOD_LALT, KC_L)
|
||||||
|
#define GUI_S MT(MOD_LGUI, KC_SCLN)
|
||||||
|
|
||||||
|
// LEFT HAND HOME ROW MODS COLEMAK ├─────────────────┐
|
||||||
|
|
||||||
|
#define GUI_A MT(MOD_LGUI, KC_A)
|
||||||
|
#define ALT_R MT(MOD_LALT, KC_R)
|
||||||
|
#define CTL_S MT(MOD_LCTL, KC_S)
|
||||||
|
#define SHT_T MT(MOD_LSFT, KC_T)
|
||||||
|
|
||||||
|
// RIGHT HAND HOME ROW MODS COLEMAK ├────────────────┐
|
||||||
|
|
||||||
|
#define SHT_N MT(MOD_RSFT, KC_N)
|
||||||
|
#define CTL_E MT(MOD_LCTL, KC_E)
|
||||||
|
#define ALT_I MT(MOD_LALT, KC_I)
|
||||||
|
#define GUI_O MT(MOD_LGUI, KC_O)
|
||||||
|
|
||||||
|
#define LOWER LT(_LOWER, KC_TAB)
|
||||||
|
#define RAISE LT(_RAISE, KC_ESC)
|
||||||
|
#define ADJUST MO(_ADJUST)
|
||||||
|
|
||||||
|
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
/* │ K E Y M A P S │
|
||||||
|
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ */
|
||||||
|
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/*
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ q w e r t y │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, GUI_A, ALT_S, CTL_D, SHT_F, KC_G, KC_H, SHT_J, CTL_K, ALT_L, GUI_S, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ c o l e m a k │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
|
||||||
|
|
||||||
|
[_COLEMAK] = LAYOUT(
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, GUI_A, ALT_R, CTL_S, SHT_T, KC_D, KC_H, SHT_N, CTL_E, ALT_I, GUI_O, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC),
|
||||||
|
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ l o w e r │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS, SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, _______, _______, _______, ADJUST, KC_P0),
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ r a i s e │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS, RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O), XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1, _______, ADJUST, _______, _______, _______, _______),
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ a d j u s t │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, MAKE_H, OS_SWAP, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13, _______, _______, _______, _______, _______, _______)
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
┌─────────────────────────────────────────────────┐
|
||||||
|
│ t e m p l a t e │ ╭╮╭╮╭╮╭╮
|
||||||
|
└─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│
|
||||||
|
┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
|
||||||
|
╌┄┈┈───═╡ │ │ │ │ ││ │ │ │ │ │
|
||||||
|
├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
|
||||||
|
│ │ │ │ │ ││ │ │ │ │ │
|
||||||
|
┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
|
||||||
|
│ │ │ │ │ │ ││ │ │ │ │ │ │
|
||||||
|
└─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
|
||||||
|
│ │ │ ││ │ │ │
|
||||||
|
└─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘
|
||||||
|
|
||||||
|
[_TEMPLATE] = LAYOUT(
|
||||||
|
//╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______,
|
||||||
|
),
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
// │ M A C R O S │
|
||||||
|
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case OS_SWAP:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (!keymap_config.swap_lctl_lgui) {
|
||||||
|
keymap_config.swap_lctl_lgui = true; // ─── MAC
|
||||||
|
} else {
|
||||||
|
keymap_config.swap_lctl_lgui = false; // ─── WIN
|
||||||
|
}
|
||||||
|
eeconfig_update_keymap(&keymap_config);
|
||||||
|
clear_keyboard(); // ──── clear to prevent stuck keys
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ l a y e r │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case COLEMAK:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_COLEMAK);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
case QWERTY:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
set_single_persistent_default_layer(_QWERTY);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ q m k │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case MAKE_H:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("qmk compile -kb geigeigeist/totem -km default");
|
||||||
|
tap_code(KC_ENTER);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
// ┌─────────────────────────────────────────────────┐
|
||||||
|
// │ p r o d u c t i v i t y │
|
||||||
|
// └─────────────────────────────────────────────────┘
|
||||||
|
|
||||||
|
case SNAP:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
if (keymap_config.swap_lctl_lgui) {
|
||||||
|
SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC
|
||||||
|
} else {
|
||||||
|
SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
|
||||||
|
|
||||||
|
|
||||||
|
██████
|
||||||
|
██ ▄▄▄▄
|
||||||
|
██ ██▀▀██
|
||||||
|
▀▀ ██▄▄██
|
||||||
|
██████ ▀▀▀▀
|
||||||
|
██ ▄▄▄▄▄▄
|
||||||
|
██ ██▀▀▀▀
|
||||||
|
██ ██████
|
||||||
|
██▄▄▄▄
|
||||||
|
▀▀▀▀▀▀
|
||||||
|
████████
|
||||||
|
██ ██ ██
|
||||||
|
██ ██ ██
|
||||||
|
▀▀ ▀▀ ▀▀
|
||||||
|
████████
|
||||||
|
|
||||||
|
*/
|
||||||
2
keyboards/geigeigeist/totem/keymaps/vial/rules.mk
Normal file
2
keyboards/geigeigeist/totem/keymaps/vial/rules.mk
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
VIAL_ENABLE = yes
|
||||||
148
keyboards/geigeigeist/totem/keymaps/vial/vial.json
Normal file
148
keyboards/geigeigeist/totem/keymaps/vial/vial.json
Normal file
|
|
@ -0,0 +1,148 @@
|
||||||
|
{
|
||||||
|
"name": "TOTEM",
|
||||||
|
"lighting": "none",
|
||||||
|
"vendorId": "0x3A3C",
|
||||||
|
"productId": "0x0002",
|
||||||
|
"matrix": {
|
||||||
|
"rows": 8,
|
||||||
|
"cols": 5
|
||||||
|
},
|
||||||
|
"layouts": {
|
||||||
|
"keymap": [
|
||||||
|
[
|
||||||
|
{ "y": 0.25, "x": 3 },
|
||||||
|
"4,2",
|
||||||
|
{ "x": 9 },
|
||||||
|
"0,2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.5, "x": 4 },
|
||||||
|
"4,3",
|
||||||
|
{ "x": 7 },
|
||||||
|
"0,3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.75, "x": 5 },
|
||||||
|
"4,4",
|
||||||
|
{ "x": 5 },
|
||||||
|
"0,4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.75, "x": 3 },
|
||||||
|
"5,2",
|
||||||
|
{ "x": 9 },
|
||||||
|
"1,2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.5, "x": 4 },
|
||||||
|
"5,3",
|
||||||
|
{ "x": 7 },
|
||||||
|
"1,3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.75, "x": 5 },
|
||||||
|
"5,4",
|
||||||
|
{ "x": 5 },
|
||||||
|
"1,4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.75, "x": 3 },
|
||||||
|
"6,2",
|
||||||
|
{ "x": 9 },
|
||||||
|
"2,2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.5, "x": 4 },
|
||||||
|
"6,3",
|
||||||
|
{ "x": 7 },
|
||||||
|
"2,3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.75, "x": 5 },
|
||||||
|
"6,4",
|
||||||
|
{ "x": 5 },
|
||||||
|
"2,4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 },
|
||||||
|
"7,2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "rx": 13, "y": -4.6, "x": -0.5999999999999996 },
|
||||||
|
"3,2"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": 4, "rx": 14.5, "ry": 3.75, "y": -3, "x": -0.5 },
|
||||||
|
"0,1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -0.5 },
|
||||||
|
"1,1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -0.5 },
|
||||||
|
"2,1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": 10, "rx": 15.25, "y": -2.35, "x": -0.25 },
|
||||||
|
"0,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -0.25 },
|
||||||
|
"1,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.3999999999999999, "x": 0.75 },
|
||||||
|
"3,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.6000000000000001, "x": -0.25 },
|
||||||
|
"2,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": 15, "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 },
|
||||||
|
"7,3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": 30, "y": -1, "x": -0.3999999999999999 },
|
||||||
|
"7,4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": -30, "rx": 13, "y": -4.6, "x": -0.5999999999999996 },
|
||||||
|
"3,4"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": -15, "y": -1, "x": -0.5999999999999996 },
|
||||||
|
"3,3"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": -10, "rx": 2, "ry": 3.75, "y": -2.35, "x": -1 },
|
||||||
|
"4,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -1 },
|
||||||
|
"5,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.3999999999999999, "x": -2 },
|
||||||
|
"7,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "y": -0.6000000000000001, "x": -1 },
|
||||||
|
"6,0"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "r": -4, "rx": 2.75, "y": -3, "x": -0.75 },
|
||||||
|
"4,1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -0.75 },
|
||||||
|
"5,1"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ "x": -0.75 },
|
||||||
|
"6,1"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
23
keyboards/geigeigeist/totem/readme.md
Normal file
23
keyboards/geigeigeist/totem/readme.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# TOTEM
|
||||||
|
|
||||||
|
TOTEM is a 38-key column-staggered split keyboard by GEIGEIGEIST designed for Seeed XIAO RP2040 or XIAO nRF52840 BLE. This port targets the wired RP2040 variant.
|
||||||
|
|
||||||
|
- Repository: https://github.com/GEIGEIGEIST/TOTEM
|
||||||
|
- Controller: Seeed Studio XIAO RP2040
|
||||||
|
- Split transport: vendor serial (RP2040) on GP0/GP1
|
||||||
|
- Matrix: 8 rows x 5 columns
|
||||||
|
- Diodes: COL2ROW
|
||||||
|
|
||||||
|
Build
|
||||||
|
|
||||||
|
- Default keymap:
|
||||||
|
qmk compile -kb geigeigeist/totem -km default
|
||||||
|
|
||||||
|
- Vial keymap:
|
||||||
|
qmk compile -kb geigeigeist/totem -km vial
|
||||||
|
|
||||||
|
Notes
|
||||||
|
|
||||||
|
- The JSON-driven keyboard definition is in keyboard.json (QMK data-driven format).
|
||||||
|
- For Vial, the UID and unlock combo are defined in keymaps/vial/config.h, with VIAL_ENABLE in keymaps/vial/rules.mk.
|
||||||
|
- If using XIAO RP2040 bootloader, double-tap reset is enabled (500ms timeout).
|
||||||
1
keyboards/geigeigeist/totem/rules.mk
Normal file
1
keyboards/geigeigeist/totem/rules.mk
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
# This file intentionally left blank
|
||||||
40
keyboards/geigeigeist/totem/totem.c
Normal file
40
keyboards/geigeigeist/totem/totem.c
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* Copyright 2022
|
||||||
|
* GEIST @geigeigeist
|
||||||
|
*
|
||||||
|
* 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 "quantum.h"
|
||||||
|
|
||||||
|
#ifdef SWAP_HANDS_ENABLE
|
||||||
|
|
||||||
|
__attribute__ ((weak))
|
||||||
|
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
|
||||||
|
// The LAYOUT macro could work for this, but it was harder to figure out the
|
||||||
|
// identity using it.
|
||||||
|
|
||||||
|
// This is the mirror, q <-> p, w <-> o, etc...
|
||||||
|
{
|
||||||
|
{ {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4} },
|
||||||
|
{ {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5} },
|
||||||
|
{ {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6} },
|
||||||
|
{ {4, 7}, {2, 7}, {1, 7}, {0, 7} },
|
||||||
|
|
||||||
|
{ {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0} },
|
||||||
|
{ {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1} },
|
||||||
|
{ {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2} },
|
||||||
|
{ {4, 3}, {3, 3}, {2, 3}, {0, 3} },
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // SWAP_HANDS_ENABLE
|
||||||
Loading…
Add table
Add a link
Reference in a new issue