Remove Symbol Layer page and update documentation
Removed the Symbol Layer wiki page and updated Home to reflect this change. Also refined the Magic Key examples in the Repeat and Magic Key documentation.
parent
7dd8081bbe
commit
11213d8f30
3 changed files with 1 additions and 89 deletions
1
Home.md
1
Home.md
|
|
@ -1,4 +1,3 @@
|
|||
# QMK Userspace Wiki
|
||||
|
||||
- [Repeat and Magic Key](Repeat-and-Magic-Key)
|
||||
- [Symbol Layer](Symbol-Layer)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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<br>
|
||||
**Home row:** Parentheses and pipe for function calls and conditionals<br>
|
||||
**Bottom row:** Boolean operators (`!`, `&`, `^`, `@`) for logic and bitwise operations
|
||||
|
||||
### Right Hand - Structures & Math
|
||||
|
||||
**Top row:** Square brackets for data structures<br>
|
||||
**Home row:** Curly braces for code blocks, dollar for variables/strings<br>
|
||||
**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).
|
||||
Loading…
Add table
Add a link
Reference in a new issue