diff --git a/Home.md b/Home.md index f333cca..7847395 100644 --- a/Home.md +++ b/Home.md @@ -1,4 +1,3 @@ # QMK Userspace Wiki - [Repeat and Magic Key](Repeat-and-Magic-Key) -- [Symbol Layer](Symbol-Layer) diff --git a/Repeat-and-Magic-Key.md b/Repeat-and-Magic-Key.md index 6e9ff2f..53926d9 100644 --- a/Repeat-and-Magic-Key.md +++ b/Repeat-and-Magic-Key.md @@ -96,8 +96,7 @@ Type: "y" + Magic → "ys" (avoiding SFB) ``` Type: "count +" + Magic → "count +=" Type: "{}" + Magic → "{│}" (cursor inside) -Type: "../" → "." + Repeat -Type: "../../" → "." + Repeat + Repeat +Type: "array[" + Magic → "array[│]" ``` ## Reference diff --git a/Symbol-Layer.md b/Symbol-Layer.md deleted file mode 100644 index 373f810..0000000 --- a/Symbol-Layer.md +++ /dev/null @@ -1,86 +0,0 @@ -# Symbol Layer - -Our custom symbol layer is designed for programming efficiency, prioritizing fast rolls for common bracket pairs and logical symbol placement for operators. - -Inspired by Pascal Getreuer's [symbol layer design](https://getreuer.info/posts/keyboards/symbol-layer/index.html). - -## Design Philosophy - -1. **Brackets as rolls** - Opening and closing pairs on the same hand for fluid typing -2. **Operators on home row** - Frequently used symbols in comfortable positions -3. **Related symbols grouped** - Logical grouping by symbol type and usage -4. **Minimize same-finger bigrams** - Avoid uncomfortable stretches - -## Symbol Grouping - -### Left Hand - Logic & Control - -**Top row:** Angle brackets and minus for arrows and comparisons
-**Home row:** Parentheses and pipe for function calls and conditionals
-**Bottom row:** Boolean operators (`!`, `&`, `^`, `@`) for logic and bitwise operations - -### Right Hand - Structures & Math - -**Top row:** Square brackets for data structures
-**Home row:** Curly braces for code blocks, dollar for variables/strings
-**Bottom row:** Asterisk for multiplication and pointers - -## Bracket Rolls - -Fast same-hand rolls for common bracket pairs: - -| Pair | Position | Roll Direction | Use Case | -|------|----------|----------------|----------| -| `<>` | Left top row | Index → Ring | HTML tags, comparisons | -| `()` | Left home row | Index → Ring | Function calls, grouping | -| `[]` | Right top row | Index → Ring | Arrays, indexing | -| `{}` | Right home row | Index → Ring | Code blocks, objects | - -## Redirected Rolls - -More complex patterns requiring direction changes on the same hand: - -| Pattern | Keys | Use Case | -|---------|------|----------| -| `/**/` | `/` → `*` → `*` → `/` | C-style comment blocks | -| `${}` | `$` → `{` → `}` | Variable interpolation (shell, JS) | -| `{};` | `{` → `}` → `;` | Empty block/attribute scaffolding | - -## Operator Positioning - -### Arithmetic & Assignment - -| Symbol | Position | Reasoning | -|--------|----------|-----------| -| `=` | Left home (middle) | Most common operator, prime position | -| `-` | Left top (middle) | Accessible for subtraction and arrows | -| `+` | Right top (pinky) | Addition, concatenation | -| `_` | Right top (middle) | Underscores in identifiers | -| `*` | Right bottom (index) | Multiplication, pointers, globs | - -### Comparison & Compound Assignment - -Relatively easy patterns with some tradeoffs: - -| Pattern | Hand Pattern | Notes | -|---------|--------------|-------| -| `<=` | Left hand vertical | Easy | -| `>=` | Left hand vertical | Easy | -| `!=` | Left hand vertical | Easy | -| `+=` | Alternate hands | Comfortable | -| `*=` | Alternate hands | Comfortable | -| `-=` | Left hand SFB | Sacrifice for layout optimization | - -### Arrow Operators - -All arrow operators are positioned on the left hand for easy typing: - -| Pattern | Keys | Use Case | -|---------|------|----------| -| `<-` | Top row inward roll | Assignment (R, Haskell) | -| `->` | Top row outward roll | Method access, lambdas | -| `=>` | Home to top diagonal | Fat arrow (JS, Rust) | - -## Reference - -For the complete implementation, see our [keymap.c](../qmk_userspace/keyboards/ferris/sweep/keymaps/sajenim/keymap.c).