# amir1994-jojo/dota2typespeed architecture

> Architecture diagram of the GitHub repository amir1994-jojo/dota2typespeed, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/amir1994-jojo/dota2typespeed
- Repository: https://github.com/amir1994-jojo/dota2typespeed

## Overview

A small Python auto-typing utility: it listens for F8, toggles a background typing loop, and sends lowercase letters to the focused application. The runtime behavior is visible in `main.py`; the target application is not directly integrated with the tool.

Main entry points: [`main.py`](https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py) (Keyboard listener)

## Diagram (Mermaid)

```mermaid
flowchart TD

node_user(("User"))
node_listener["Keyboard listener<br/>[main.py]"]
node_toggle["F8 toggle<br/>[main.py]"]
node_typing["Typing loop<br/>[main.py]"]
node_pynput["pynput keyboard"]
node_focused_app["Focused application"]

node_user -->|"presses keys"| node_listener
node_listener -->|"dispatches F8"| node_toggle
node_toggle -->|"starts thread"| node_typing
node_typing -->|"presses letters"| node_pynput
node_pynput -->|"types letters"| node_focused_app

click node_listener "https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py"
click node_toggle "https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py"
click node_typing "https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_user toneBlue
class node_listener,node_toggle,node_typing toneTeal
class node_pynput,node_focused_app toneIndigo
```

## Components

### Other components

- **User**
- [Keyboard listener](https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py): `main.py`
- [F8 toggle](https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py): `main.py`
- [Typing loop](https://github.com/amir1994-jojo/dota2typespeed/blob/main/main.py): `main.py`
- **pynput keyboard**
- **Focused application**

## Connections

- User → Keyboard listener: presses keys
- Keyboard listener → F8 toggle: dispatches F8
- F8 toggle → Typing loop: starts thread
- Typing loop → pynput keyboard: presses letters
- pynput keyboard → Focused application: types letters
