All files / virtual-keyboard/src/layouts qwertz.ts

100% Statements 1/1
100% Branches 0/0
100% Functions 0/0
100% Lines 1/1

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70                                            1x                                                                                              
import { createLayout } from "../engine/createLayout";
import { ck } from "./latin";
import {
  BACKSPACE_KEY,
  ENTER_KEY,
  LAYER_KEY,
  SHIFT_KEY,
  SPACE_KEY,
} from "./qwerty";
 
/**
 * German **QWERTZ** layout — `Y` and `Z` swap (`Z` sits on the top row next to
 * `T`, `Y` moves to the bottom-left of the last letter row). Shift/Caps and the
 * `?123` symbol layer behave as on {@link qwertyLayout}; German umlauts and
 * eszett (ä, ö, ü, ß) are available as long-press variants.
 *
 * @example
 * ```tsx
 * import { VirtualKeyboard, qwertzLayout } from "@usefy/virtual-keyboard";
 * <VirtualKeyboard layouts={qwertzLayout} />;
 * ```
 */
export const qwertzLayout = createLayout({
  name: "qwertz",
  label: "QWERTZ",
  rows: [
    [
      ck("q", "1"),
      ck("w", "2"),
      ck("e", "3"),
      ck("r", "4"),
      ck("t", "5"),
      ck("z", "6"),
      ck("u", "7"),
      ck("i", "8"),
      ck("o", "9"),
      ck("p", "0"),
    ],
    [
      ck("a", "@"),
      ck("s", "#"),
      ck("d", "$"),
      ck("f", "_"),
      ck("g", "&"),
      ck("h", "-"),
      ck("j", "+"),
      ck("k", "("),
      ck("l", ")"),
    ],
    [
      SHIFT_KEY,
      ck("y", "*"),
      ck("x", '"'),
      ck("c", "'"),
      ck("v", ":"),
      ck("b", ";"),
      ck("n", "!"),
      ck("m", "?"),
      BACKSPACE_KEY,
    ],
    [
      LAYER_KEY,
      { key: ",", type: "char", layerKey: "<" },
      SPACE_KEY,
      { key: ".", type: "char", layerKey: ">" },
      ENTER_KEY,
    ],
  ],
});