- Implemented glcdfont.c for custom font rendering. - Created keymap.c with multiple layers including NORTO, QWERTY, NORTNAVIGATION, and SYMFKEYS. - Added OLED display functionality to show layer states and modifier statuses. - Included keymap.json for configuration.
13 KiB
13 KiB
Sweeeeep Keyboard Layout - smathev
Overview
This is a 36-key split keyboard layout using the Norto layout (Danish optimized) with 4 layers.
Layer 0: NORTO (Base Layer)
Default typing layer - Danish optimized layout
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
│ Ø │ Æ │ U │ G │ J │ │ B │ F │ L │ H │ X │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│ O │ I │ A │ T │ M │ │ P │ N │ R │ S │ D │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│GUI ,│ALT Y│SFT Å│CTL V│ C │ │ W │CTL K│SFT Z│ALT Q│GUI .│
└─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐
│ NAV │ - │ E │ │SPC │BSPC │ SYM │
│ LT │ │ │ │ │ │ LT │
└─────┴─────┴─────┘ └─────┴─────┴─────┘
Key Features:
- Home row mods: GUI, ALT, SHIFT, CTRL on bottom row (left and right)
- Layer access: Left thumb activates Navigation layer, Right thumb activates Symbol/FKey layer
- Optimized for Danish: Ø, Æ, Å in easy reach
Layer 1: QWERTY
Alternative QWERTY layout for compatibility
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ Å │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│GUI Z│ALT X│SFT C│CTL V│ B │ │ N │CTL M│SFT Æ│ALT Ø│GUI -│
└─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐
│ NAV │ , │BSPC │ │SPC │ . │ ENT │
│ LT │ │ │ │ │ │ │
└─────┴─────┴─────┘ └─────┴─────┴─────┘
Toggling Layers:
- Access from Navigation or Symbol layer toggle keys
Layer 2: NORTNAVIGATION (Navigation + Numpad)
Activated by holding left thumb key
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
│ ESC │PGUP │ ↑ │PGDN │STAB │ │ * │ 7 │ 8 │ 9 │ + │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│HOME │ ← │ ↓ │ → │ END │ │ / │ 4 │ 5 │ 6 │ - │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│ GUI │ ALT │SHFT │CTRL │ │ │ ( │CTL 1│SFT 2│ALT 3│GUI 0│
└─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐
│ │NORTO│QWRT │ │QWRT │NORTO│ │
│ │ TG │ TG │ │ TG │ TG │ │
└─────┴─────┴─────┘ └─────┴─────┴─────┘
Key Features:
- Left side: Full navigation cluster (arrows, home, end, page up/down)
- Right side: Complete numpad with operators
- Super Tab (STAB): Special tab switching macro
- Layer toggles: Quick access to switch between NORTO and QWERTY base layers
- Home row mods: Maintained on left side for modifier combinations
Layer 3: SYMFKEYS (Symbols + Function Keys)
Activated by holding right thumb key
┌─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┬─────┬─────┐
│ F1 │ F2 │ F3 │ F4 │ F5 │ │ @ │ [ │ { │ ^ │ │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│ F6 │ F7 │ F8 │ F9 │ F10 │ │ ' │ < │ $ │ | │ ` │
├─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┼─────┤
│GUI │ALT │SHFT │CTRL │ B │ │ │CAPS │ ___ │ - │ GUI │
│ F11 │ F12 │ C │ V │ │ │ │WORD │CASE │CASE │ │
└─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┘
┌─────┬─────┬─────┐ ┌─────┬─────┬─────┐
│ │NORTO│QWRT │ │QWRT │NORTO│ │
│ │ TG │ TG │ │ TG │ TG │ │
└─────┴─────┴─────┘ └─────┴─────┴─────┘
Key Features:
- Left side: Complete F-key row (F1-F12) with home row mods on F11/F12
- Right top row: Common programming symbols (@, [, {, ^)
- Right middle row: Quote/bracket symbols (', <, $, |, `)
- Right bottom row: CASEMODES KEYS!
- CAPSWORD: Tap to enable caps word mode (hold with Ctrl for tap)
- ___CASE (underscore): Tap to enable snake_case mode (hold with Shift for tap)
- -CASE (hyphen): Tap to enable kebab-case mode (hold with Alt for tap)
Symbol Notes:
- Danish keyboard layout symbols:
DK_AT(@)DK_LBRC([) - Shift for ]DK_LCBR({) - Shift for }DK_QUOT(') - Shift for "DK_LABK(<) - Shift for >DK_DLR($) - Shift for €DK_PIPE(|)DK_GRV(`) - Shift for ¨DK_CIRC(^)
Special Features
Home Row Mods
All layers maintain home row mods for ergonomic modifier access:
- Left: GUI (pinky) → ALT (ring) → SHIFT (middle) → CTRL (index)
- Right: CTRL (index) → SHIFT (middle) → ALT (ring) → GUI (pinky)
Tap/Hold Keys
- Bottom row keys: Tap for letter, hold for modifier
- Thumb keys: Tap for key, hold for layer
- Symbol layer bottom row: Tap for casemode, hold for modifier
Casemodes (Layer 3, Right Bottom Row)
C_CAPSWORD
Location: Right bottom row, 2nd key (with Ctrl hold)
Usage:
- Hold right thumb (activate Symbol layer)
- Tap the CAPSWORD key
- Release thumb
- Start typing:
hello world→HELLO WORLD - Press space twice to exit
What it does:
- Automatically capitalizes all letters
- Continues until you press space twice or punctuation
- Perfect for typing
CONSTANT_NAMESorALL_CAPS_TEXT
C_UNDERSCORECASE (Snake Case)
Location: Right bottom row, 3rd key (with Shift hold)
Usage:
- Hold right thumb (activate Symbol layer)
- Tap the ___CASE key
- Release thumb
- Type:
hello world→hello_world - Press space to insert underscores
- Press space twice to exit
What it does:
- Converts spaces to underscores
- Perfect for
variable_names,function_names,file_names
C_HYPHENCASE (Kebab Case)
Location: Right bottom row, 4th key (with Alt hold)
Usage:
- Hold right thumb (activate Symbol layer)
- Tap the -CASE key
- Release thumb
- Type:
hello world→hello-world - Press space to insert hyphens
- Press space twice to exit
What it does:
- Converts spaces to hyphens
- Perfect for
css-class-names,url-slugs,command-line-options
Auto Shift
- Enabled with 170ms timeout
- Hold any letter key slightly longer to get the shifted version
- No need to use Shift for capital letters when typing slowly
Combos
- 17 combos defined (see combos.c for specific combinations)
- Combo reference layer: NORTO
OLED Display Features
- Master side: Shows logo, current layer, modifier status, WPM
- Secondary side: Shows logo with WPM counter
- Auto sleep: Screen turns off after 15 seconds of inactivity
- Auto wake: Screen turns on when you start typing
Layer Toggle Matrix
| From Layer | To Layer | Method |
|---|---|---|
| Any | NORTO | Hold Nav or Sym layer, tap NORTO toggle |
| Any | QWERTY | Hold Nav or Sym layer, tap QWERTY toggle |
| NORTO/QWERTY | Navigation | Hold left thumb |
| NORTO/QWERTY | Symbol/FKeys | Hold right thumb |
Firmware Configuration
Enabled Features
- ✅ OLED Display (128x32)
- ✅ Split keyboard support
- ✅ Combos (17 defined)
- ✅ Auto Shift (170ms)
- ✅ Casemodes
- ✅ WPM tracking (split)
- ✅ Modifier state tracking (split)
- ✅ Layer state tracking (split)
- ✅ Deferred execution
- ✅ Permissive hold
- ✅ Retro shift
- ✅ Retro tapping
Timing Settings
- Tapping term: 140ms
- Auto shift timeout: 170ms
- OLED timeout: 15 seconds
Custom Features
- Custom OLED font (glcdfont.c)
- Master/slave split configuration
- Super Tab macro (FP_SUPER_TAB)
Tips for New Users
- Start with NORTO layer: It's optimized for Danish typing
- Learn home row mods: Keep fingers on home row, use pinky/ring for GUI/ALT
- Use casemodes: They're incredibly useful for coding and writing
- Practice layer switching: Get comfortable with thumb-activated layers
- Double-tap space: Quick way to exit any casemode
- OLED feedback: Watch the OLED to see which modifiers/layers are active
Quick Reference Card
┌───────────────────────────────────────────────────┐
│ Most Used Key Combinations │
├───────────────────────────────────────────────────┤
│ Left Thumb Hold → Navigation + Numpad │
│ Right Thumb Hold → Symbols + Function Keys │
│ Both Thumbs → Access layer toggles │
│ │
│ Casemodes (Right thumb + right bottom row): │
│ Thumb + 2nd key → CAPS WORD │
│ Thumb + 3rd key → snake_case │
│ Thumb + 4th key → kebab-case │
│ │
│ Exit any casemode: Press SPACE twice │
└───────────────────────────────────────────────────┘
Generated: October 6, 2025 Keyboard: Fingerpunch Sweeeeep Layout: Custom NORTO (Danish optimized) Keymap: smathev