Skip to content

0mega3/itt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

cover

ITT

ITT (Indirect Touch Typing) - A spatial method for learning touch typing

Description

Keyboard layouts

Qwerty

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│  Del  │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
│  ~  │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │Bkspc│
│  `  │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │     │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
│ Tab  │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ { │ } │ |  │
│      │x11│x12│x13│x14│y11│y12│z11│z12│z13│z14│ [ │ ] │ \  │
├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
│ Caps  │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ " │ Enter │
│ Lock  │x21│x22│x23│x24│y21│y22│z21│z22│z23│z24│ ' │       │
├───────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───────┤
│ Shift  │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │  Shift   │
│        │x31│x32│x33│x34│y31│y32│z31│z32│z33│z34│          │
├────┬───┼───┼───┼───┴───┴───┴───┴──┬┴──┬┴───┼───┴┬────┬────┤
│Ctrl│Fn │Win│Alt│      Space       │Alt│Ctrl│  ← │ ↑↓ │ →  │
└────┴───┴───┴───┴──────────────────┴───┴────┴────┴────┴────┘

Dvorak

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│  Del  │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
│  ~  │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ { │ } │Bkspc│
│  `  │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ [ │ ] │     │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
│ Tab  │ ' │ , │ . │ p │ y │ f │ g │ c │ r │ l │ ? │ + │ |  │
│      │x11│x12│x13│x14│y11│y12│z11│z12│z13│z14│ / │ = │ \  │
├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
│ Caps  │ a │ o │ e │ u │ i │ d │ h │ t │ n │ s │ _ │ Enter │
│ Lock  │x21│x22│x23│x24│y21│y22│z21│z22│z23│z24│ - │       │
├───────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───────┤
│ Shift  │ ; │ q │ j │ k │ x │ b │ m │ w │ v │ z │  Shift   │
│        │x31│x32│x33│x34│y31│y32│z31│z32│z33│z34│          │
├────┬───┼───┼───┼───┴───┴───┴───┴──┬┴──┬┴───┼───┴┬────┬────┤
│Ctrl│Fn │Win│Alt│      Space       │Alt│Ctrl│  ← │ ↑↓ │ →  │
└────┴───┴───┴───┴──────────────────┴───┴────┴────┴────┴────┘

Ytsuken

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│  Del  │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
│  ~  │ ! │ " │ № │ ; │ % │ : │ ? │ * │ ( │ ) │ _ │ + │Bkspc│
│  `  │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │     │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
│ Tab  │ й │ ц │ у │ к │ е │ н │ г │ ш │ щ │ з │ х │ ъ │ /  │
│      │l11│l12│l13│l14│c11│c12│r11│r12│r13│r14│   │   │ \  │
├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
│ Caps  │ ф │ ы │ в │ а │ п │ р │ о │ л │ д │ ж │ э │ Enter │
│ Lock  │l21│l22│l23│l24│c21│c22│r21│r22│r23│r24│   │       │
├───────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───────┤
│ Shift  │ я │ ч │ с │ м │ и │ т │ ь │ б │ ю │ . │  Shift   │
│        │l31│l32│l33│l34│c31│c32│r31│r32│r33│r34│          │
├────┬───┼───┼───┼───┴───┴───┴───┴──┬┴──┬┴───┼───┴┬────┬────┤
│Ctrl│Fn │Win│Alt│      Space       │Alt│Ctrl│  ← │ ↑↓ │ →  │
└────┴───┴───┴───┴──────────────────┴───┴────┴────┴────┴────┘

Anchor Key Visualization: QWERTY (top) / Dvorak (bottom)

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
│Esc│F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│  Del  │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
│  ~  │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │- _│= +│Bkspc│
│  `  │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │[ {│] }│     │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
│ Tab  │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │[ {│] }│ |  │
│      │' "│, <│. >│ p │ y │ f │ g │ c │ r │ l │/ ?│= +│ \  │
├──────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴────┤
│ Caps  │ a │ s │ d │ f │ g │ h │ j │ k │ l │; :│' "│ Enter │
│ Lock  │ a │ o │ e │ u │ i │ d │ h │ t │ n │ s │- _│       │
├───────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───────┤
│ Shift  │ z │ x │ c │ v │ b │ n │ m │, <│. >│/ ?│  Shift   │
│        │; :│ q │ j │ k │ x │ b │ m │ w │ v │ z │          │
├────┬───┼───┼───┼───┴───┴───┴───┴──┬┴──┬┴───┼───┴┬────┬────┤
│Ctrl│Fn │Win│Alt│      Space       │Alt│Ctrl│  ← │ ↑↓ │ →  │
└────┴───┴───┴───┴──────────────────┴───┴────┴────┴────┴────┘

Magic Keys (A, M)

The keys A and M form a cognitive bridge between QWERTY and Dvorak layouts. To mitigate cognitive load and prevent muscle memory interference during layout switching, ITT leverages these magic keys as stable anchor points. They share the same physical position (masks x21 and z31) across both layouts. This provides a consistent reference for your spatial memory, making the transition between layouts safer and more intuitive by preventing a complete perceptual breakdown.

Mnemonic Anchors (Associative Bridges)

Core Concept: For each key group (defined by its mask and symbols), a primary universal association (abbr. assoc) is provided, along with a set of alternative associations for different contexts or preferences. The goal is to create a chain of associative links that together form a coherent mnemonic context.

  • <combo_id>: <mask chain>
    • <mask>(<key group>)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • ...
    • MNEMONIC CONTEXT: <assoc chain>

Where

  • <combo_id> : combo_<zone><start_row>-<end_row><column>

  • <mask> : A spatial key group identifier (e.g., xij, yij)

  • <key group> : The physical symbols on the key(s) for the layout(s)

  • <mask chain> : <mask_1><mask_2> → ... → <mask_n>

  • <assoc chain> : <assoc_1><assoc_2> → ... → <assoc_n>

  • combo_x1-31

    • x11(Q single quote)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x21(A A)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x31(Z semicolon)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_x1-32

    • x12(W comma)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x22(S O)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x32(X Q)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_x1-33

    • x13(E dot)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x23(D E)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x33(C J)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_x1-34

    • x14(R P)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x24(F U)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • x34(V K)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_y1-31

    • y11(T Y)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • y21(G I)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • y31(B X)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_y1-32

    • y12(Y F)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • y22(H D)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • y32(N B)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_z1-31

    • z11(U G)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z21(J H)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z31(M M)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_z1-32

    • z12(I C)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z22(K T)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z32(comma W)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_z1-33

    • z13(O R)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z23(L N)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z33(dot V)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>
  • combo_z1-34

    • z14(P L)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z24(semicolon S)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • z34(slash Z)
      • Primary: <primary assoc>
      • Alternatives: [<alternative assoc_1>, ...]
    • MNEMONIC CONTEXT: <assoc chain>

Patterns

  1. Multi-Row Patterns

    Patterns that cover multiple rows (support all traversals):

    • full: The entire keyboard matrix.
    • zone_x: Keys in the left zone (coordinates x11 to x34). E.g., Q A Z column.
    • zone_y: Keys in the home/center zone (coordinates y11 to y32). E.g., T G B column.
    • zone_z: Keys in the right zone (coordinates z11 to z34). E.g., P ; / column.
    • zone_xy: Combined left and home zones (zone_x + zone_y).
    • zone_xz: Combined left and right zones (zone_x + zone_z).
    • zone_yz: Combined home and right zones (zone_y + zone_z).
  2. Single-Row Patterns

    Patterns for a single row (support only linear traversals):

    • home_row: The home row keys (A S D F G H J K L ; for QWERTY).
    • top_row: The top letter row (Q W E R T Y U I O P).
    • bottom_row: The bottom letter row (Z X C V B N M , . /).
    • number_row: The number row (1 2 3 4 5 6 7 8 9 0 - =).
  3. Athematic Patterns

    Patterns grouped by meaning, not location (support only the random traversals):

    • vowels: Vowel keys (A E I O U).
    • consonants: Consonant keys (all letter keys except A E I O U).
    • common_bigrams: Frequent letter pairs (e.g., TH HE IN ER AN RE ES ON ST NT).
    • common_trigrams: Frequent 3-letter sequences (e.g., THE AND ING HER ERE ENT THA NTH WAS ETH).
    • problematic_keys: A user-defined set of keys that require extra practice.

Traversals

Naming Conventions

  • linearli
  • snakesn
  • spiral_insi (Spiral In)
  • spiral_outso (Spiral Out)
  • roundrd

For direction-based strategies (Linear):

<type>_<direction>

Where

  • <type>: li
  • <direction> is a combination:
    • lr_tb (left-right, top-bottom)
    • lr_bt (left-right, bottom-top)
    • rl_tb (right-left, top-bottom)
    • rl_bt (right-left, bottom-top)
    • tb_lr (top-bottom, left-right)
    • tb_rl (top-bottom, right-left)
    • bt_lr (bottom-top, left-right)
    • bt_rl (bottom-top, right-left)

Example: li_lr_tb, li_tb_lr

For start-point-based strategies (Snake, Spiral, Round):

<type>_<direction>_<start>

Where

  • <type>:
    • sn
    • si, so
    • rd
  • <direction>:
    • lr (left-right)
    • rl (right-left)
    • tb (top-bottom)
    • bt (bottom-top)
    • cw (clockwise)
    • ccw (counter-clockwise)
  • <start>:
    • tlm (top leftmost)
    • trm (top rightmost)
    • blm (bottom leftmost)
    • brm (bottom rightmost)
    • hlm (home leftmost)
    • hrm (home rightmost)

For rd (round) traversals only, <start> can also be any specific key (e.g., E for zone_x, O for zone_z) to define a custom starting point on the perimeter.

Example: sn_tb_tlm, si_cw_trm, rd_cw_e, rd_ccw_o

  1. Linear Traversals

    Strategies that follow a predefined linear sequence:

    • li_lr_tb (Left-Right, Top-Bottom): Traverse each row left to right, move to next row top to bottom.

      Example (QWERTY, Multi-Row, full): Q → ... → P → A → ... → ; → Z → ... → /

      Example (QWERTY, Single-Row, full): A → S → D → F → G → H → J → K → L → ;

    • li_lr_bt (Left-Right, Bottom-Top): Traverse each row left to right, move to next row bottom to top.

      Example (QWERTY, full): Z → ... → / → A → ... → ; → Q → ... → P

    • li_rl_tb (Right-Left, Top-Bottom): Traverse each row right to left, move to next row top to bottom.

      Example (QWERTY, Multi-Row, full): P → ... → Q → ; → ... → A → / → ... → Z

      Example (QWERTY, Single-Row, full): ; → L → K → J → H → G → F → D → S → A

    • li_rl_bt (Right-Left, Bottom-Top): Traverse each row right to left, move to next row bottom to top.

      Example (QWERTY, full): / → ... → Z → ; → ... → A → P → ... → Q

    • li_tb_lr (Top-Bottom, Left-Right): Traverse each column top to bottom, move to next column left to right.

      Example (QWERTY, full): Q → A → Z → W → S → X → ... → P → ; → /

    • li_tb_rl (Top-Bottom, Right-Left): Traverse each column top to bottom, move to next column right to left.

      Example (QWERTY, full): P → ; → / → O → L → . → ... → Q → A → Z

    • li_bt_lr (Bottom-Top, Left-Right): Traverse each column bottom to top, move to next column left to right.

      Example (QWERTY, full): Z → A → Q → X → S → W → ... → / → ; → P

    • li_bt_rl (Bottom-Top, Right-Left): Traverse each column bottom to top, move to next column right to left.

      Example (QWERTY, full): / → ; → P → . → L → O → ... → Z → A → Q

    Note: For Single-Row patterns, the li_lr_tb and li_rl_tb traversals are simplified to linear left-right and right-left movement (the _tb part is ignored).

  2. Snake Traversals

    Strategies that traverse keys in a snake (zigzag) pattern, row by row or column by column:

    • sn_tb_tlm (Snake, Top-Bottom, Top-Left): Snake top to bottom, starting from top-left.

      Example (QWERTY, full): Q → ... → P → ; → ... → A → Z → ... → /

    • sn_tb_trm (Snake, Top-Bottom, Top-Right): Snake top to bottom, starting from top-right.

      Example (QWERTY, full): P → ... → Q → A → ... → ; → / → ... → Z

    • sn_bt_blm (Snake, Bottom-Top, Bottom-Left): Snake bottom to top, starting from bottom-left.

      Example (QWERTY, full): Z → ... → / → ; → ... → A → Q → ... → P

    • sn_bt_brm (Snake, Bottom-Top, Bottom-Right): Snake bottom to top, starting from bottom-right.

      Example (QWERTY, full): / → ... → Z → A → ... → ; → P → ... → Q

    • sn_lr_tlm (Snake, Left-Right, Top-Left): Snake left to right, starting from top-left.

      Example (QWERTY, full): Q → A → Z → X → S → W → ... → / → ; → P

    • sn_lr_blm (Snake, Left-Right, Bottom-Left): Snake left to right, starting from bottom-left.

      Example (QWERTY, full): Z → A → Q → W → S → X → ... → P → ; → /

    • sn_rl_trm (Snake, Right-Left, Top-Right): Snake right to left, starting from top-right.

      Example (QWERTY, full): P → ; → / → . → L → O → ... → Z → A → Q

    • sn_rl_brm (Snake, Right-Left, Bottom-Right): Snake right to left, starting from bottom-right.

      Example (QWERTY, full): / → ; → P → O → L → . → ... → Q → A → Z

  3. Spiral Traversals

    Strategies that traverse keys in a continuous spiral motion, inward or outward:

    • si_cw_tlm (Spiral In, Clockwise, Top-Left): Spiral inward clockwise, starting from top-left.

      Example (QWERTY, full): Q → ... → P → ; → / → ... → Z → A → ... → L

    • si_cw_brm (Spiral In, Clockwise, Bottom-Right): Spiral inward clockwise, starting from bottom-right.

      Example (QWERTY, full): / → ... → Z → A → Q → ... → P → ; → ... → S

    • si_ccw_trm (Spiral In, Counter-Clockwise, Top-Right): Spiral inward counter-clockwise, starting from top-right.

      Example (QWERTY, full): P → ... → Q → A → Z → ... → / → ; → ... → S

    • si_ccw_blm (Spiral In, Counter-Clockwise, Bottom-Left): Spiral inward counter-clockwise, starting from bottom-left.

      Example (QWERTY, full): Z → ... → / → ; → P → ... → Q → A → ... → L

    • so_cw_hrm (Spiral Out, Clockwise, Home-Right): Spiral outward clockwise, starting from home-right.

      Example (QWERTY, full): L → ... → A → Q → ... → P → ; → / → ... → Z

    • so_ccw_hlm (Spiral Out, Counter-Clockwise, Home-Left): Spiral outward counter-clockwise, starting from home-left.

      Example (QWERTY, full): S → ... → ; → P → ... → Q → A → Z → ... → /

  4. Round Traversals

    Strategies that traverse keys along the perimeter of a pattern in a round motion:

    • rd_cw_tlm (Round Clockwise, Top-Left): Traverse the perimeter clockwise, starting from the top-left key of the zone.

      Example (QWERTY, zone_x): Q → ... → R → F → V → ... → Z → A → Q

    • rd_ccw_o (Round Counter-Clockwise, Special Key O): Traverse the perimeter counter-clockwise, starting from the special key O of the zone.

      Example (QWERTY, zone_z): O → I → U → J → M → ... → / → ; → P → O

    Note: The combination of pattern types and start points allows for a wide variety of round traversals. For example, the perimeter of the zone_x pattern includes keys q, w, e, r, f, v, c, x, z, a. This allows for 10 unique starting points, each with two directions (cw, ccw), resulting in 20 variations for just one zone.

  5. Random Traversals

    • random: Keys are selected randomly from the pattern. Repetition is possible.

Usage

itt --help
ITT - Indirect Touch Typing

Usage:
  itt -k <name> -m <name> -p <name> -t <name> -c <sec>
  itt --keyboard-layout <name> --mask <name> --pattern <name> \
      --traversal <name> --countdown-timer <sec>
  itt -h | --help
  itt -v | --version

Arguments:
  -k, --keyboard-layout <name>   Keyboard layout (qwerty, dvorak, ytsuken, mix)
  -m, --mask <name>              Mask template (xyz, lcr) for target display
  -p, --pattern <name>           Practice pattern (full, home_row, vowels, etc.)
  -t, --traversal <name>         Traversal strategy (lr_tb, random, etc.)
  -c, --countdown-timer <sec>    Max time allowed to press each key (seconds)
  -s, --stats                    Show statistics from the last session
  -h, --help                     Show this help message
  -v, --version                  Show version information

Examples:
  itt -k mix -m xyz -p full -t random -c 10
  itt -k ytsuken -m lcr -p home_row -t li_lr_tb -c 5
  itt --stats

User Interface

Qwerty layout

[Qwerty/xyz] Pattern: home_row > Traversal: li_lr_tb
Target: x21 (A) > Input: ... > Time: 4.3s

Mix layout

[Mix/xyz] Pattern: zone_x > Traversal: random
Target: [dv] x13 > Input: ... > Time: 7.0s

License

itt was created by Denis Khorkin. It is licensed under the terms of the BSD-3-Clause license.

Credits

  • Denis Khorkin

About

ITT (Indirect Touch Typing) - A spatial method for learning touch typing

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published