Compare commits
10
Commits
d0dd668956
...
16c1dfe4a9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16c1dfe4a9
|
||
|
|
6cfc5b0f75
|
||
|
|
6112d5043c
|
||
|
|
6bd6cf0fd5
|
||
|
|
83251955e2 | ||
|
|
79f5049a25 | ||
|
|
c87a87c97a | ||
|
|
096da36b97 | ||
|
|
f206040b5f | ||
|
|
05bf3b7640 |
+18
@@ -0,0 +1,18 @@
|
|||||||
|
# Build artifacts
|
||||||
|
build/
|
||||||
|
*.uf2
|
||||||
|
|
||||||
|
# West-managed submodules
|
||||||
|
modules/
|
||||||
|
optional/
|
||||||
|
zephyr/
|
||||||
|
zmk/
|
||||||
|
|
||||||
|
# West state
|
||||||
|
.west/
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# Reasonix
|
||||||
|
.reasonix/
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
# AGENTS.md — TOTEM ZMK Config
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
Local Docker build (no GitHub Actions needed):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm \
|
||||||
|
-v $(pwd):/workspace/zmk-config \
|
||||||
|
-w /workspace/zmk-config \
|
||||||
|
zmkfirmware/zmk-build-arm:stable \
|
||||||
|
bash -c "
|
||||||
|
git config --global --add safe.directory '*'
|
||||||
|
west zephyr-export
|
||||||
|
west build -s zmk/app -d build/left -b xiao_ble -- -DSHIELD=totem_left -DZMK_CONFIG=/workspace/zmk-config/config
|
||||||
|
west build -s zmk/app -d build/right -b xiao_ble -- -DSHIELD=totem_right -DZMK_CONFIG=/workspace/zmk-config/config
|
||||||
|
"
|
||||||
|
|
||||||
|
cp build/left/zephyr/zmk.uf2 totem_left.uf2
|
||||||
|
cp build/right/zephyr/zmk.uf2 totem_right.uf2
|
||||||
|
```
|
||||||
|
|
||||||
|
- Clean build dirs between config changes: `rm -rf build/left build/right`
|
||||||
|
- The Docker image `zmkfirmware/zmk-build-arm:stable` must be pulled first (~3 GB)
|
||||||
|
- Board name is `xiao_ble` (not `seeeduino_xiao_ble` — that was the old name)
|
||||||
|
- `west update` only needed when ZMK/Zephyr deps change (pulls submodules)
|
||||||
|
- `CONFIG_ZMK_BLE=y` is explicitly set in `config/totem.conf` (board defconfig alone proved unreliable)
|
||||||
|
|
||||||
|
## Keymap
|
||||||
|
|
||||||
|
The active keymap is `config/totem.keymap`. It overrides the shield default at `config/boards/shields/totem/totem.keymap`.
|
||||||
|
|
||||||
|
3 layers: `BASE` (0), `UML` (1), `BT` (2).
|
||||||
|
|
||||||
|
## BINDINGS.md
|
||||||
|
|
||||||
|
**After every binding change** in `config/totem.keymap`, update `BINDINGS.md` with an ASCII graphic of all three layers and the quick-reference table. The physical key labels in the ASCII art must match the BASE layer positions exactly.
|
||||||
+85
@@ -0,0 +1,85 @@
|
|||||||
|
# TOTEM Keymap Reference
|
||||||
|
|
||||||
|
> Auto-generated from `config/totem.keymap`. **Must be updated after every binding change.**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Layer 0: BASE (Colemak)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
|
||||||
|
│ Q │ W │ F │ P │ B │ │ J │ L │ U │ Z │ ? │
|
||||||
|
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
|
||||||
|
│ A │ R │ S │ T │ G │ │ M │ N │ E │ I │ O │
|
||||||
|
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
|
||||||
|
│ ⇧ │ Y │ X │ C │ D │ V │ │ K │ H │ / │ , │ . │ ⎋ │
|
||||||
|
└─────┴─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┴─────┘
|
||||||
|
│ ␣ │ UML │ ⏎ │ │CTRL │ SPR │ ⌫ │
|
||||||
|
└─────┴─────┴─────┘ └─────┴─────┴─────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Layer 1: UML (hold left thumb)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
|
||||||
|
│ 1 │ 2 │ 3 │ 4 │ 5 │ │ + │ @ │ Ü │ { │ ~ │
|
||||||
|
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
|
||||||
|
│ Ä │ · │ ß │ ↑ │ · │ │ / │ ` │ > │ } │ Ö │
|
||||||
|
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
|
||||||
|
│ · │ · │ · │ ← │ ↓ │ → │ │ 6 │ 7 │ 8 │ 9 │ 0 │ * │
|
||||||
|
└─────┴─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┴─────┴─────┘
|
||||||
|
│ ⇥ │ · │ ⌥ │ │CTRL │ ( │ ) │
|
||||||
|
└─────┴─────┴─────┘ └─────┴─────┴─────┘
|
||||||
|
|
||||||
|
· = transparent (falls through to BASE)
|
||||||
|
⌥ = LALT / Option
|
||||||
|
```
|
||||||
|
|
||||||
|
### Arrow cluster
|
||||||
|
|
||||||
|
```
|
||||||
|
T → ↑
|
||||||
|
C → ← D → ↓ V → →
|
||||||
|
```
|
||||||
|
|
||||||
|
| Physical key | Action |
|
||||||
|
|-------------|--------|
|
||||||
|
| T | ↑ |
|
||||||
|
| C | ← |
|
||||||
|
| D | ↓ |
|
||||||
|
| V | → |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Bluetooth Profile Switching
|
||||||
|
|
||||||
|
CTRL is a normal modifier key. BT profiles are switched via **combos** (press both keys
|
||||||
|
within 50ms of each other):
|
||||||
|
|
||||||
|
| Combo | Action |
|
||||||
|
|-------|--------|
|
||||||
|
| **CTRL + Q** | BT profile 1 |
|
||||||
|
| **CTRL + W** | BT profile 2 |
|
||||||
|
| **CTRL + F** | BT profile 3 |
|
||||||
|
| **CTRL + P** | BT profile 4 |
|
||||||
|
|
||||||
|
CTRL works normally for all other shortcuts (CTRL+C, CTRL+V, etc. are unaffected).
|
||||||
|
On macOS these combos do not conflict with standard shortcuts (which use Cmd, not Ctrl).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
| Shortcut | Action |
|
||||||
|
|----------|--------|
|
||||||
|
| **UML + T** | ↑ |
|
||||||
|
| **UML + C** | ← |
|
||||||
|
| **UML + D** | ↓ |
|
||||||
|
| **UML + V** | → |
|
||||||
|
| **UML + ENT** | ALT / Option |
|
||||||
|
| **CTRL + Q** | BT profile 1 |
|
||||||
|
| **CTRL + W** | BT profile 2 |
|
||||||
|
| **CTRL + F** | BT profile 3 |
|
||||||
|
| **CTRL + P** | BT profile 4 |
|
||||||
@@ -150,7 +150,7 @@ label= "ADJ" ;
|
|||||||
bindings = <
|
bindings = <
|
||||||
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
|
||||||
&reset &bt BT_CLR &out OUT_TOG &trans &trans &trans &kp F7 &kp F8 &kp F9 &kp F12
|
&sys_reset &bt BT_CLR &out OUT_TOG &trans &trans &trans &kp F7 &kp F8 &kp F9 &kp F12
|
||||||
&bootloader &bt BT_NXT &trans &trans &trans &trans &kp F4 &kp F5 &kp F6 &kp F11
|
&bootloader &bt BT_NXT &trans &trans &trans &trans &kp F4 &kp F5 &kp F6 &kp F11
|
||||||
&trans &trans &bt BT_PRV &trans &trans &trans &trans &kp F1 &kp F2 &kp F3 &kp F10 &trans
|
&trans &trans &bt BT_PRV &trans &trans &trans &trans &kp F1 &kp F2 &kp F3 &kp F10 &trans
|
||||||
&trans &trans &trans &trans &trans &trans
|
&trans &trans &trans &trans &trans &trans
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ id: totem
|
|||||||
name: TOTEM
|
name: TOTEM
|
||||||
type: shield
|
type: shield
|
||||||
url: https://github.com/GEIGEIGEIST/TOTEM
|
url: https://github.com/GEIGEIGEIST/TOTEM
|
||||||
requires: [seeeduino_xiao_ble]
|
requires: [xiao_ble]
|
||||||
features:
|
features:
|
||||||
- keys
|
- keys
|
||||||
siblings:
|
siblings:
|
||||||
|
|||||||
+16
-1
@@ -1 +1,16 @@
|
|||||||
CONFIG_ZMK_USB_LOGGING=n
|
CONFIG_ZMK_USB_LOGGING=n
|
||||||
|
|
||||||
|
# Explicitly enable BLE (needed for xiao_ble)
|
||||||
|
CONFIG_ZMK_BLE=y
|
||||||
|
|
||||||
|
# Settings storage (board defconfig not reliably applied)
|
||||||
|
CONFIG_FLASH=y
|
||||||
|
CONFIG_FLASH_PAGE_LAYOUT=y
|
||||||
|
CONFIG_FLASH_MAP=y
|
||||||
|
CONFIG_NVS=y
|
||||||
|
CONFIG_SETTINGS_NVS=y
|
||||||
|
|
||||||
|
# Erst nach 10 Min Inaktivität schlafen
|
||||||
|
CONFIG_ZMK_IDLE_TIMEOUT=3600000
|
||||||
|
CONFIG_ZMK_SLEEP=y
|
||||||
|
CONFIG_ZMK_IDLE_SLEEP_TIMEOUT=3600000
|
||||||
|
|||||||
+107
-139
@@ -1,160 +1,128 @@
|
|||||||
//
|
//
|
||||||
// ▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀
|
// TOTEM — Colemak adapted from Moonlander Oryx config
|
||||||
// ▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄
|
// Base: Colemak alphas | UML hold: numbers + umlauts + symbols
|
||||||
// █ █ █ █ █ █ █ █ █ █ █
|
// Designed for macOS German (QWERTZ) layout
|
||||||
// ▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀
|
|
||||||
// █ ▄▄▄█▄▄▄ █ █
|
|
||||||
// ▀ █ █ █ █▄█
|
|
||||||
// ▀▀▀▀▀ █ █ █ ▀
|
|
||||||
// ▀ ▀ ▀
|
|
||||||
//
|
//
|
||||||
// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
|
|
||||||
#include <behaviors.dtsi>
|
#include <behaviors.dtsi>
|
||||||
#include <dt-bindings/zmk/keys.h>
|
#include <dt-bindings/zmk/keys.h>
|
||||||
#include <dt-bindings/zmk/bt.h>
|
#include <dt-bindings/zmk/bt.h>
|
||||||
#include <dt-bindings/zmk/outputs.h>
|
|
||||||
|
|
||||||
#define BASE 0
|
#define BASE 0
|
||||||
#define NAV 1
|
#define UML 1
|
||||||
#define SYM 2
|
|
||||||
#define ADJ 3
|
|
||||||
|
|
||||||
&mt {
|
|
||||||
quick-tap-ms = <100>;
|
|
||||||
global-quick-tap;
|
|
||||||
flavor = "tap-preferred";
|
|
||||||
tapping-term-ms = <170>;
|
|
||||||
};
|
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
combos {
|
combos {
|
||||||
compatible = "zmk,combos";
|
compatible = "zmk,combos";
|
||||||
combo_esc {
|
combo_bt1 { timeout-ms = <50>; key-positions = <0 35>; bindings = <&bt BT_SEL 0>; };
|
||||||
timeout-ms = <50>;
|
combo_bt2 { timeout-ms = <50>; key-positions = <1 35>; bindings = <&bt BT_SEL 1>; };
|
||||||
key-positions = <0 1>;
|
combo_bt3 { timeout-ms = <50>; key-positions = <2 35>; bindings = <&bt BT_SEL 2>; };
|
||||||
bindings = <&kp ESC>;
|
combo_bt4 { timeout-ms = <50>; key-positions = <3 35>; bindings = <&bt BT_SEL 3>; };
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
macros {
|
macros {
|
||||||
gif: gif {
|
slash: slash {
|
||||||
label = "giphy";
|
label = "SLASH";
|
||||||
compatible = "zmk,behavior-macro";
|
compatible = "zmk,behavior-macro";
|
||||||
#binding-cells = <0>;
|
#binding-cells = <0>;
|
||||||
bindings
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N7>, <¯o_release &kp LSHFT>;
|
||||||
= <¯o_press &kp LSHFT>
|
};
|
||||||
, <¯o_tap &kp N2>
|
qmark: qmark {
|
||||||
, <¯o_release &kp LSHFT>
|
label = "QMARK";
|
||||||
, <¯o_tap &kp G &kp I &kp F>
|
compatible = "zmk,behavior-macro";
|
||||||
;
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp MINUS>, <¯o_release &kp LSHFT>;
|
||||||
|
};
|
||||||
|
at: at {
|
||||||
|
label = "AT";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp L>, <¯o_release &kp RALT>;
|
||||||
|
};
|
||||||
|
tilde: tilde {
|
||||||
|
label = "TILDE";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N>, <¯o_release &kp RALT>;
|
||||||
|
};
|
||||||
|
lbrace: lbrace {
|
||||||
|
label = "LBRACE";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N8>, <¯o_release &kp RALT>;
|
||||||
|
};
|
||||||
|
rbrace: rbrace {
|
||||||
|
label = "RBRACE";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp RALT>, <¯o_tap &kp N9>, <¯o_release &kp RALT>;
|
||||||
|
};
|
||||||
|
lparen: lparen {
|
||||||
|
label = "LPAREN";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N8>, <¯o_release &kp LSHFT>;
|
||||||
|
};
|
||||||
|
rparen: rparen {
|
||||||
|
label = "RPAREN";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp N9>, <¯o_release &kp LSHFT>;
|
||||||
|
};
|
||||||
|
gt_sign: gt_sign {
|
||||||
|
label = "GREATER";
|
||||||
|
compatible = "zmk,behavior-macro";
|
||||||
|
#binding-cells = <0>;
|
||||||
|
bindings = <¯o_press &kp LSHFT>, <¯o_tap &kp GRAVE>, <¯o_release &kp LSHFT>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
keymap {
|
keymap {
|
||||||
compatible = "zmk,keymap";
|
compatible = "zmk,keymap";
|
||||||
// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
base_layer {
|
base_layer {
|
||||||
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
// ╔══════════════════════════════════════╗
|
||||||
label= "BASE" ;
|
label = "BASE";
|
||||||
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
// ╚══════════════════════════════════════╝
|
||||||
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
||||||
// ┃ Q ┃ W ┃ F ┃ P ┃ G ┃ ┃ J ┃ L ┃ U ┃ Y ┃ ; ┃
|
// ┃ Q ┃ W ┃ F ┃ P ┃ B ┃ ┃ J ┃ L ┃ U ┃ Z ┃ ? ┃
|
||||||
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
||||||
// ┃ A ┃ R ┃ S ┃ T ┃ D ┃ ┃ H ┃ N ┃ E ┃ I ┃ O ┃
|
// ┃ A ┃ R ┃ S ┃ T ┃ G ┃ ┃ M ┃ N ┃ E ┃ I ┃ O ┃
|
||||||
// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
||||||
// ┃ Q ┃ Z ┃ X ┃ C ┃ V ┃ B ┃ ┃ K ┃ M ┃ , ┃ . ┃ / ┃ \ ┃
|
// ┃ SHIFT ┃ Y ┃ X ┃ C ┃ D ┃ V ┃ ┃ K ┃ H ┃ / ┃ , ┃ . ┃ ESC ┃
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
||||||
// ┃ DEL ┃ TAB ┃ SPC ┃ ┃ ENTER ┃ ┃ BSPC ┃
|
// ┃ SPACE ┃ UML ┃ ENTER ┃ ┃ CTRL ┃ ┃ BACK ┃
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
||||||
bindings = <
|
bindings = <
|
||||||
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
&kp Q &kp W &kp F &kp P &kp B &kp J &kp L &kp U &kp Z &qmark
|
||||||
&kp Q &kp W &kp F &kp P &kp G &kp J &kp L &kp U &kp Y &kp SEMI
|
&kp A &kp R &kp S &kp T &kp G &kp M &kp N &kp E &kp I &kp O
|
||||||
&mt LGUI A &mt LALT R &mt LCTRL S &mt LSHFT T &kp D &kp H &mt RSHFT N &mt RCTRL E &mt RALT I &mt RGUI O
|
&kp LSHFT &kp Y &kp X &kp C &kp D &kp V &kp K &kp H &slash &kp DOT &kp COMMA &kp ESC
|
||||||
&kp Q &kp Z &kp X &kp C &kp V &kp B &kp K &kp M &kp COMMA &kp DOT &kp FSLH &kp BSLH
|
&kp SPACE &mo UML &kp RET &kp LCTRL &kp LGUI &kp BSPC
|
||||||
&kp DEL < NAV TAB &kp SPACE &kp RET < SYM ESC &kp BSPC
|
>;
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
|
|
||||||
nav_layer {
|
|
||||||
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
||||||
label= "NAVI" ;
|
|
||||||
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
||||||
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
||||||
// ┃ ┃ ┃ UP ┃ ┃ { ┃ ┃ } ┃ 7 ┃ 8 ┃ 9 ┃ + ┃
|
|
||||||
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
||||||
// ┃ SHIFT ┃ LEFT ┃ DOWN ┃ RIGHT ┃ [ ┃ ┃ ] ┃ 4 ┃ 5 ┃ 6 ┃ - ┃
|
|
||||||
// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓
|
|
||||||
// ┃ ┃ ┃ P UP ┃ C LOCK ┃ P DOWN ┃ ( ┃ ┃ ) ┃ 1 ┃ 2 ┃ 3 ┃ * ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
// ┃ ┃ TAB ┃ SPC ┃ ┃ DEL ┃ 0 ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
bindings = <
|
|
||||||
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
||||||
|
|
||||||
&kp ESC &bt BT_CLR &kp UP &kp EQUAL &kp LBRC &kp RBRC &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS
|
|
||||||
&kp LSHFT &kp LEFT &kp DOWN &kp RIGHT &kp LBKT &kp RBKT &kp KP_N4 &kp KP_N5 &kp KP_N6 &kp KP_MINUS
|
|
||||||
&trans &kp DEL &kp PG_UP &kp CAPS &kp PG_DN &kp LPAR &kp RPAR &kp KP_N1 &kp KP_N2 &kp KP_N3 &kp KP_MULTIPLY &trans
|
|
||||||
&trans &trans &trans &mo ADJ &kp KP_N0 &trans
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
|
|
||||||
sim_layer {
|
|
||||||
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
||||||
label= "SYM" ;
|
|
||||||
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
||||||
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
||||||
// ┃ ! ┃ @ ┃ # ┃ $ ┃ % ┃ ┃ ˆ ┃ & ┃ Ü ┃ ' ┃ " ┃
|
|
||||||
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
||||||
// ┃ Ä ┃ ┃ SZ ┃ ┃ ┃ ┃ MUTE ┃ YEN ┃ EURO ┃ POUND ┃ Ö ┃
|
|
||||||
// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓
|
|
||||||
// ┃ ┃ EMAIL1 ┃ EMAIL2 ┃ ┃ ┃ ┃ ┃ VOL- ┃ VOL+ ┃ LAST ┃ NEXT ┃ \ ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
// ┃ ┃ GIF ┃ ADJ ┃ ┃ ┃ ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
bindings = <
|
|
||||||
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
||||||
|
|
||||||
&kp EXCL &kp AT &kp HASH &kp DLLR &kp PRCNT &kp CARET &kp AMPS &kp RA(U) &kp SQT &kp DQT
|
|
||||||
&kp RA(A) &trans &kp RA(S) &trans &trans &kp C_MUTE &kp LS(RA(N4)) &kp RA(N5) &kp RA(N4) &kp RA(O)
|
|
||||||
&trans &kp RA(F18) &kp RA(F19) &trans &trans &trans &kp C_VOL_DN &kp C_VOL_UP &kp C_PREV &kp C_NEXT &kp BSLH &trans
|
|
||||||
&trans &gif &mo ADJ &trans &kp C_PP &trans
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
|
|
||||||
|
|
||||||
|
|
||||||
adjust_layer {
|
|
||||||
// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
|
||||||
label= "ADJ" ;
|
|
||||||
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
|
||||||
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
|
||||||
// ┃ RESET ┃ BT CLEAR ┃ OUT TOG ┃ ┃ ┃ ┃ ┃ F7 ┃ F8 ┃ F9 ┃ F12 ┃
|
|
||||||
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
|
||||||
// ┃ BOOTLOAD ┃ BT NEXT ┃ ┃ ┃ ┃ ┃ ┃ F4 ┃ F5 ┃ F6 ┃ F11 ┃
|
|
||||||
// ┏━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┓
|
|
||||||
// ┃ ┃ ┃ BT PREV ┃ ┃ ┃ ┃ ┃ ┃ F1 ┃ F2 ┃ F3 ┃ F10 ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
|
|
||||||
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
|
||||||
bindings = <
|
|
||||||
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
|
||||||
|
|
||||||
&reset &bt BT_CLR &out OUT_TOG &trans &trans &trans &kp F7 &kp F8 &kp F9 &kp F12
|
|
||||||
&bootloader &bt BT_NXT &trans &trans &trans &trans &kp F4 &kp F5 &kp F6 &kp F11
|
|
||||||
&trans &trans &bt BT_PRV &trans &trans &trans &trans &kp F1 &kp F2 &kp F3 &kp F10 &trans
|
|
||||||
&trans &trans &trans &trans &trans &trans
|
|
||||||
>;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
uml_layer {
|
||||||
|
// ╔══════════════════════════════════════╗
|
||||||
|
label = "UML";
|
||||||
|
// ╚══════════════════════════════════════╝
|
||||||
|
// ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓ ┏━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┓
|
||||||
|
// ┃ 1 ┃ 2 ┃ 3 ┃ 4 ┃ 5 ┃ ┃ + ┃ @ ┃ Ü ┃ ┃ ~ ┃
|
||||||
|
// ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫
|
||||||
|
// ┃ Ä ┃ ┃ ß ┃ UP ┃ ┃ ┃ - ┃ < ┃ > ┃ ┃ Ö ┃
|
||||||
|
// ┏━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━━┓
|
||||||
|
// ┃ ┃ ┃ ┃ LEFT ┃ DOWN ┃ RIGHT ┃ ┃ 6 ┃ 7 ┃ 8 ┃ 9 ┃ 0 ┃ ┃
|
||||||
|
// ┗━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫ ┣━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━━┛
|
||||||
|
// ┃ TAB ┃ trans ┃ ALT ┃ ┃ CTRL ┃ ( ┃ ) ┃
|
||||||
|
// ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛ ┗━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━━━━━━━┛
|
||||||
|
bindings = <
|
||||||
|
// ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷ ╷
|
||||||
|
&kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp KP_PLUS &at &kp LBKT &lbrace &tilde
|
||||||
|
&kp SQT &none &kp MINUS &kp UP &none &kp FSLH &kp GRAVE >_sign &rbrace &kp SEMI
|
||||||
|
&trans &none &none &kp LEFT &kp DOWN &kp RIGHT &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp KP_MULTIPLY
|
||||||
|
&kp TAB &trans &kp LALT &kp LCTRL &lparen &rparen
|
||||||
|
>;
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user