summaryrefslogtreecommitdiffstats
path: root/keyboards/preonic/keymaps/brauner/readme.md
blob: 5614ab83049d408f464f42e672b18c7d88e6f787 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Brauner's Preonic Keymap

This is a keymap layout heavily optimized for vim.
It mostly follows `QWERTY` but moves various symbols on to different layers.

* Number keys function only as number keys.
  Additional symbols they would produce when `Shift` is held are turned off as they are intercepted.
* `Y`, `P`, and `X` function as `Ctrl+C`, `Ctrl+V`, and `Ctrl+X` when held.
  This avoids having to hold down `Ctrl` and also aligns regular copy and paste with vim functionality.
* Various keys perform different functions when tapped than when held.
* `!` and `?` are on top of `.` on different layers.
* `\` and `|` are on top of `/` on different layers.
* `:` and `;` are on top of `,` on different layers.
* All navigation is done via `H`, `J`, `K`, and `L`.
* `O`, `U`, `S`, and `A` produce the Umlauts `Ö`, `Ü`, `ß`, and `Ä` when held.
  This relies on the operating system keyboard layout to be set to US Intl.
* Different layers will activate different types of navigation.
  For example, left, right, up, and down or backspace, page up, page down, and tab.
* There's a dedicated mouse layer which can be activated allowing to navigate solely with the keyboard where otherwise a mouse or trackpad would be needed.
* There's a dedicated management layer where the boot loader can be entered or music mode can be turned on or off.
* Lastly, there's a compositor layer which is optimized for managing a tiling window manager.
  The layer is used specifically via layer-mod keys in the base layer.
  In other words, specific modifiers are held when this layer is accessed.
* Opening and closing brackets are always located on adjacent keys on the same layer.
  Pressing a matching opening and closing bracket key at the same time will insert both brackets and move the cursor into the middle of the bracket pair.
  As should be obvious, this is useful when programming: `(|)`, `[|]`, `{|}`, `<|>`.