qmk_userspace/keyboards/fingerpunch/sweeeeep/smathev/KEYMAP_LAYOUT.md
2025-10-06 15:16:28 +02:00

271 lines
13 KiB
Markdown

# 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:**
1. Hold right thumb (activate Symbol layer)
2. Tap the CAPSWORD key
3. Release thumb
4. Start typing: `hello world``HELLO WORLD`
5. Press space twice to exit
**What it does:**
- Automatically capitalizes all letters
- Continues until you press space twice or punctuation
- Perfect for typing `CONSTANT_NAMES` or `ALL_CAPS_TEXT`
#### C_UNDERSCORECASE (Snake Case)
**Location**: Right bottom row, 3rd key (with Shift hold)
**Usage:**
1. Hold right thumb (activate Symbol layer)
2. Tap the ___CASE key
3. Release thumb
4. Type: `hello world``hello_world`
5. Press space to insert underscores
6. 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:**
1. Hold right thumb (activate Symbol layer)
2. Tap the -CASE key
3. Release thumb
4. Type: `hello world``hello-world`
5. Press space to insert hyphens
6. 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
1. **Start with NORTO layer**: It's optimized for Danish typing
2. **Learn home row mods**: Keep fingers on home row, use pinky/ring for GUI/ALT
3. **Use casemodes**: They're incredibly useful for coding and writing
4. **Practice layer switching**: Get comfortable with thumb-activated layers
5. **Double-tap space**: Quick way to exit any casemode
6. **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