keyflow-typing 1.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- keyflow_typing-1.4.0/PKG-INFO +208 -0
- keyflow_typing-1.4.0/README.md +189 -0
- keyflow_typing-1.4.0/keyflow/__init__.py +3 -0
- keyflow_typing-1.4.0/keyflow/__main__.py +5 -0
- keyflow_typing-1.4.0/keyflow/app.py +569 -0
- keyflow_typing-1.4.0/keyflow/engine.py +185 -0
- keyflow_typing-1.4.0/keyflow/i18n.py +24 -0
- keyflow_typing-1.4.0/keyflow/keyboard.py +161 -0
- keyflow_typing-1.4.0/keyflow/macprofile.py +189 -0
- keyflow_typing-1.4.0/keyflow/screens.py +1179 -0
- keyflow_typing-1.4.0/keyflow/stats.py +251 -0
- keyflow_typing-1.4.0/keyflow/storage.py +189 -0
- keyflow_typing-1.4.0/keyflow/stories.py +366 -0
- keyflow_typing-1.4.0/keyflow/stories_en.py +327 -0
- keyflow_typing-1.4.0/keyflow/terminal.py +282 -0
- keyflow_typing-1.4.0/keyflow/textgen.py +391 -0
- keyflow_typing-1.4.0/keyflow/ui.py +515 -0
- keyflow_typing-1.4.0/keyflow/updates.py +103 -0
- keyflow_typing-1.4.0/keyflow/words.py +238 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/PKG-INFO +208 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/SOURCES.txt +31 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/dependency_links.txt +1 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/entry_points.txt +2 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/requires.txt +1 -0
- keyflow_typing-1.4.0/keyflow_typing.egg-info/top_level.txt +1 -0
- keyflow_typing-1.4.0/pyproject.toml +32 -0
- keyflow_typing-1.4.0/setup.cfg +4 -0
- keyflow_typing-1.4.0/tests/test_engine.py +70 -0
- keyflow_typing-1.4.0/tests/test_keyboard.py +45 -0
- keyflow_typing-1.4.0/tests/test_stats.py +106 -0
- keyflow_typing-1.4.0/tests/test_stories.py +55 -0
- keyflow_typing-1.4.0/tests/test_textgen.py +75 -0
- keyflow_typing-1.4.0/tests/test_updates.py +25 -0
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: keyflow-typing
|
|
3
|
+
Version: 1.4.0
|
|
4
|
+
Summary: KeyFlow – a typing trainer for the terminal (English & German): WPM tests, endless mode, 40 stories, on-screen keyboard, records and an activity calendar
|
|
5
|
+
Author: YnsLaf
|
|
6
|
+
Project-URL: Homepage, https://github.com/YnsLaf/keyflow
|
|
7
|
+
Keywords: typing,typing-trainer,touch-typing,wpm,terminal,tui,keyboard,tipptrainer
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
11
|
+
Classifier: Natural Language :: English
|
|
12
|
+
Classifier: Natural Language :: German
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Topic :: Education
|
|
15
|
+
Classifier: Topic :: Games/Entertainment
|
|
16
|
+
Requires-Python: >=3.8
|
|
17
|
+
Description-Content-Type: text/markdown
|
|
18
|
+
Requires-Dist: colorama>=0.4.6
|
|
19
|
+
|
|
20
|
+
# KeyFlow
|
|
21
|
+
|
|
22
|
+
*made by YnsLaf*
|
|
23
|
+
|
|
24
|
+
KeyFlow is a typing trainer for the terminal, written in Python. It runs on
|
|
25
|
+
macOS, Linux and Windows and speaks **English and German**. On first start you
|
|
26
|
+
choose the language of the whole tool.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
K E Y F L O W made by YnsLaf Streak 4 days
|
|
30
|
+
Today 6.5/15 min ████░░░░░░░░ 14 days ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
|
|
31
|
+
────────────────────────────────────────────────────────────────────────
|
|
32
|
+
❯ 1 Continue: Word test · 25 words ╭──────────────────────────╮
|
|
33
|
+
2 Practice │ 9 more min to your daily │
|
|
34
|
+
3 Texts & stories │ goal. │
|
|
35
|
+
4 Numbers & symbols ╰──┬───────────────────────╯
|
|
36
|
+
5 Progress ╵
|
|
37
|
+
6 Settings ╭───────╮
|
|
38
|
+
7 Quit │ ◕ ◕ │
|
|
39
|
+
│ ‿ │
|
|
40
|
+
╰─┬───┬─╯
|
|
41
|
+
╵ ╵
|
|
42
|
+
Flow
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Installation
|
|
46
|
+
|
|
47
|
+
You need Python 3.8 or newer. Everything else (the `colorama` library) is
|
|
48
|
+
installed automatically.
|
|
49
|
+
|
|
50
|
+
### macOS and Linux – one command
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
curl -fsSL https://raw.githubusercontent.com/YnsLaf/keyflow/main/install.sh | sh
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The installer checks Python, installs [pipx](https://pipx.pypa.io) if needed
|
|
57
|
+
and then installs KeyFlow. Afterwards start it with:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
keyflow
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### With pip
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
pip install keyflow-typing
|
|
67
|
+
keyflow
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
On macOS the command is `pip3` (and `python3`). If `keyflow` is not found after
|
|
71
|
+
`pip3 install --user keyflow-typing`, start it with `python3 -m keyflow`.
|
|
72
|
+
|
|
73
|
+
On macOS, pipx is the cleanest way:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
brew install pipx
|
|
77
|
+
pipx ensurepath
|
|
78
|
+
pipx install keyflow-typing
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Windows
|
|
82
|
+
|
|
83
|
+
```bat
|
|
84
|
+
py -m pip install keyflow-typing
|
|
85
|
+
keyflow
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Windows Terminal works best.
|
|
89
|
+
|
|
90
|
+
### Updating
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
pipx upgrade keyflow-typing # or: pip install -U keyflow-typing
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
> The package on PyPI is called **keyflow-typing** (the name "keyflow" was
|
|
97
|
+
> already taken). The command is simply `keyflow`.
|
|
98
|
+
|
|
99
|
+
## First start
|
|
100
|
+
|
|
101
|
+
Before KeyFlow starts for the first time, it asks:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Choose your language · Wähle deine Sprache
|
|
105
|
+
❯ 1 English
|
|
106
|
+
2 Deutsch
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Menus, hints, statistics, achievements, Flow the mascot and the practice texts
|
|
110
|
+
then use that language. You can change it any time in the settings.
|
|
111
|
+
|
|
112
|
+
## Modes
|
|
113
|
+
|
|
114
|
+
| Mode | What happens |
|
|
115
|
+
|---|---|
|
|
116
|
+
| **Time test** | Type as many words as possible in 15, 30, 60 or 120 seconds. |
|
|
117
|
+
| **Word test** | Type 10, 25, 50 or 100 words as fast as you can. |
|
|
118
|
+
| **Free mode** | No limit – the text never ends. Esc finishes and saves. Words, sentences, numbers, symbols or mixed. |
|
|
119
|
+
| **Endless mode** | Survival: you start with 10 seconds, every correct word adds time, every mistake costs 1 second. Every 20 words the level rises and it gets harder. |
|
|
120
|
+
| **Stories** | 40 stories in English and German: 10 easy, 10 medium, 10 hard, 10 extreme. |
|
|
121
|
+
| **Sentences** | Generated, grammatically correct sentences. |
|
|
122
|
+
| **Numbers** | Prices, times, dates, sums, units and phone numbers. |
|
|
123
|
+
| **Symbols** | Brackets, operators, paths, e-mails and code snippets. |
|
|
124
|
+
| **Mixed (pro)** | Words, capitals, punctuation, numbers and symbols all mixed up. |
|
|
125
|
+
| **Quotes & proverbs** | Proverbs and famous lines from Shakespeare, Austen, Dickens, Goethe, Kafka … |
|
|
126
|
+
| **Weak keys** | Generates text with exactly the keys you get wrong the most. |
|
|
127
|
+
| **Your own text** | Paste a text or load a `.txt` file. Long texts are practiced in parts. |
|
|
128
|
+
|
|
129
|
+
## While typing
|
|
130
|
+
|
|
131
|
+
- A keyboard under the text shows which key comes next. With capitals and
|
|
132
|
+
symbols the right ⇧ / ⌥ / AltGr key lights up too, and a hint tells you which
|
|
133
|
+
finger to use. Mistakes flash red.
|
|
134
|
+
- The word you are typing is highlighted, and a flowing progress line runs
|
|
135
|
+
above the text.
|
|
136
|
+
|
|
137
|
+
| Key | Action |
|
|
138
|
+
|---|---|
|
|
139
|
+
| Backspace | delete last character |
|
|
140
|
+
| Ctrl + Backspace (macOS: Option + Backspace) | delete whole word |
|
|
141
|
+
| Tab | restart with a new text |
|
|
142
|
+
| Esc | back to the menu (free and endless mode: finish and save) |
|
|
143
|
+
|
|
144
|
+
## Progress
|
|
145
|
+
|
|
146
|
+
- **Result after every test:** WPM and accuracy in big digits, raw WPM,
|
|
147
|
+
consistency, a speed graph, the keys you missed and new records.
|
|
148
|
+
- **Records** per mode, length and language.
|
|
149
|
+
- **History:** chart of your recent tests and your trend.
|
|
150
|
+
- **Keyboard view:** every key colored by your error rate.
|
|
151
|
+
- **Activity calendar** like on GitHub, plus current and longest streak.
|
|
152
|
+
- **Daily goal and streak** at the top of the menu.
|
|
153
|
+
- **29 achievements**.
|
|
154
|
+
|
|
155
|
+
## Look
|
|
156
|
+
|
|
157
|
+
- **Background:** KeyFlow colors the terminal when it starts and restores it
|
|
158
|
+
when you quit.
|
|
159
|
+
- The default is "Glass": hue 0°, saturation 0 %, brightness 10 %, opacity 30 %.
|
|
160
|
+
- In the macOS Terminal this uses a Terminal profile called "KeyFlow", which
|
|
161
|
+
KeyFlow creates once (a window briefly opens and closes).
|
|
162
|
+
- The window title then only shows "KeyFlow".
|
|
163
|
+
- **Moving colors:** flowing gradients, a shimmering menu and a pulsing next key.
|
|
164
|
+
- **Flow**, the mascot, blinks, bobs and gives you tips.
|
|
165
|
+
|
|
166
|
+
## Info & updates
|
|
167
|
+
|
|
168
|
+
The **Info** page in the menu shows your KeyFlow version, whether an update is
|
|
169
|
+
available, how KeyFlow was installed, your Python version and where your data is
|
|
170
|
+
stored. It also has buttons that open GitHub and PyPI in your browser, and an
|
|
171
|
+
**Update now** button that runs the right update command for you.
|
|
172
|
+
|
|
173
|
+
On start KeyFlow asks PyPI in the background whether a newer version exists. If
|
|
174
|
+
so, Flow tells you and the menu shows "Update!". You can turn this off in the
|
|
175
|
+
settings (or set `KEYFLOW_NO_UPDATE_CHECK=1`).
|
|
176
|
+
|
|
177
|
+
## About
|
|
178
|
+
|
|
179
|
+
KeyFlow is made by **YnsLaf** – [github.com/YnsLaf](https://github.com/YnsLaf).
|
|
180
|
+
Ideas, bugs or wishes? Open an issue on
|
|
181
|
+
[github.com/YnsLaf/keyflow](https://github.com/YnsLaf/keyflow).
|
|
182
|
+
|
|
183
|
+
## Settings
|
|
184
|
+
|
|
185
|
+
Language, text language, keyboard layout (QWERTZ/QWERTY), word length,
|
|
186
|
+
punctuation, numbers, lowercase only, umlauts, strict mode, live WPM, cursor,
|
|
187
|
+
visible lines, text width, sound, background, color mode, moving colors,
|
|
188
|
+
keyboard while typing, update check, daily goal, reset statistics.
|
|
189
|
+
|
|
190
|
+
## Data
|
|
191
|
+
|
|
192
|
+
Everything is stored in `~/.keyflow/daten.json`. Use `keyflow --data FILE` or the
|
|
193
|
+
environment variable `KEYFLOW_HOME` to choose another place.
|
|
194
|
+
|
|
195
|
+
## Development
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
git clone https://github.com/YnsLaf/keyflow
|
|
199
|
+
cd keyflow
|
|
200
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
201
|
+
pip install -e .
|
|
202
|
+
keyflow
|
|
203
|
+
python -m unittest discover -s tests
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
A new release on GitHub publishes the package to PyPI automatically
|
|
207
|
+
(`.github/workflows/publish.yml`). Raise the version in `pyproject.toml` and
|
|
208
|
+
`keyflow/__init__.py` first.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# KeyFlow
|
|
2
|
+
|
|
3
|
+
*made by YnsLaf*
|
|
4
|
+
|
|
5
|
+
KeyFlow is a typing trainer for the terminal, written in Python. It runs on
|
|
6
|
+
macOS, Linux and Windows and speaks **English and German**. On first start you
|
|
7
|
+
choose the language of the whole tool.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
K E Y F L O W made by YnsLaf Streak 4 days
|
|
11
|
+
Today 6.5/15 min ████░░░░░░░░ 14 days ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
|
|
12
|
+
────────────────────────────────────────────────────────────────────────
|
|
13
|
+
❯ 1 Continue: Word test · 25 words ╭──────────────────────────╮
|
|
14
|
+
2 Practice │ 9 more min to your daily │
|
|
15
|
+
3 Texts & stories │ goal. │
|
|
16
|
+
4 Numbers & symbols ╰──┬───────────────────────╯
|
|
17
|
+
5 Progress ╵
|
|
18
|
+
6 Settings ╭───────╮
|
|
19
|
+
7 Quit │ ◕ ◕ │
|
|
20
|
+
│ ‿ │
|
|
21
|
+
╰─┬───┬─╯
|
|
22
|
+
╵ ╵
|
|
23
|
+
Flow
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
You need Python 3.8 or newer. Everything else (the `colorama` library) is
|
|
29
|
+
installed automatically.
|
|
30
|
+
|
|
31
|
+
### macOS and Linux – one command
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
curl -fsSL https://raw.githubusercontent.com/YnsLaf/keyflow/main/install.sh | sh
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The installer checks Python, installs [pipx](https://pipx.pypa.io) if needed
|
|
38
|
+
and then installs KeyFlow. Afterwards start it with:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
keyflow
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### With pip
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pip install keyflow-typing
|
|
48
|
+
keyflow
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
On macOS the command is `pip3` (and `python3`). If `keyflow` is not found after
|
|
52
|
+
`pip3 install --user keyflow-typing`, start it with `python3 -m keyflow`.
|
|
53
|
+
|
|
54
|
+
On macOS, pipx is the cleanest way:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
brew install pipx
|
|
58
|
+
pipx ensurepath
|
|
59
|
+
pipx install keyflow-typing
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Windows
|
|
63
|
+
|
|
64
|
+
```bat
|
|
65
|
+
py -m pip install keyflow-typing
|
|
66
|
+
keyflow
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Windows Terminal works best.
|
|
70
|
+
|
|
71
|
+
### Updating
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
pipx upgrade keyflow-typing # or: pip install -U keyflow-typing
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
> The package on PyPI is called **keyflow-typing** (the name "keyflow" was
|
|
78
|
+
> already taken). The command is simply `keyflow`.
|
|
79
|
+
|
|
80
|
+
## First start
|
|
81
|
+
|
|
82
|
+
Before KeyFlow starts for the first time, it asks:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Choose your language · Wähle deine Sprache
|
|
86
|
+
❯ 1 English
|
|
87
|
+
2 Deutsch
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Menus, hints, statistics, achievements, Flow the mascot and the practice texts
|
|
91
|
+
then use that language. You can change it any time in the settings.
|
|
92
|
+
|
|
93
|
+
## Modes
|
|
94
|
+
|
|
95
|
+
| Mode | What happens |
|
|
96
|
+
|---|---|
|
|
97
|
+
| **Time test** | Type as many words as possible in 15, 30, 60 or 120 seconds. |
|
|
98
|
+
| **Word test** | Type 10, 25, 50 or 100 words as fast as you can. |
|
|
99
|
+
| **Free mode** | No limit – the text never ends. Esc finishes and saves. Words, sentences, numbers, symbols or mixed. |
|
|
100
|
+
| **Endless mode** | Survival: you start with 10 seconds, every correct word adds time, every mistake costs 1 second. Every 20 words the level rises and it gets harder. |
|
|
101
|
+
| **Stories** | 40 stories in English and German: 10 easy, 10 medium, 10 hard, 10 extreme. |
|
|
102
|
+
| **Sentences** | Generated, grammatically correct sentences. |
|
|
103
|
+
| **Numbers** | Prices, times, dates, sums, units and phone numbers. |
|
|
104
|
+
| **Symbols** | Brackets, operators, paths, e-mails and code snippets. |
|
|
105
|
+
| **Mixed (pro)** | Words, capitals, punctuation, numbers and symbols all mixed up. |
|
|
106
|
+
| **Quotes & proverbs** | Proverbs and famous lines from Shakespeare, Austen, Dickens, Goethe, Kafka … |
|
|
107
|
+
| **Weak keys** | Generates text with exactly the keys you get wrong the most. |
|
|
108
|
+
| **Your own text** | Paste a text or load a `.txt` file. Long texts are practiced in parts. |
|
|
109
|
+
|
|
110
|
+
## While typing
|
|
111
|
+
|
|
112
|
+
- A keyboard under the text shows which key comes next. With capitals and
|
|
113
|
+
symbols the right ⇧ / ⌥ / AltGr key lights up too, and a hint tells you which
|
|
114
|
+
finger to use. Mistakes flash red.
|
|
115
|
+
- The word you are typing is highlighted, and a flowing progress line runs
|
|
116
|
+
above the text.
|
|
117
|
+
|
|
118
|
+
| Key | Action |
|
|
119
|
+
|---|---|
|
|
120
|
+
| Backspace | delete last character |
|
|
121
|
+
| Ctrl + Backspace (macOS: Option + Backspace) | delete whole word |
|
|
122
|
+
| Tab | restart with a new text |
|
|
123
|
+
| Esc | back to the menu (free and endless mode: finish and save) |
|
|
124
|
+
|
|
125
|
+
## Progress
|
|
126
|
+
|
|
127
|
+
- **Result after every test:** WPM and accuracy in big digits, raw WPM,
|
|
128
|
+
consistency, a speed graph, the keys you missed and new records.
|
|
129
|
+
- **Records** per mode, length and language.
|
|
130
|
+
- **History:** chart of your recent tests and your trend.
|
|
131
|
+
- **Keyboard view:** every key colored by your error rate.
|
|
132
|
+
- **Activity calendar** like on GitHub, plus current and longest streak.
|
|
133
|
+
- **Daily goal and streak** at the top of the menu.
|
|
134
|
+
- **29 achievements**.
|
|
135
|
+
|
|
136
|
+
## Look
|
|
137
|
+
|
|
138
|
+
- **Background:** KeyFlow colors the terminal when it starts and restores it
|
|
139
|
+
when you quit.
|
|
140
|
+
- The default is "Glass": hue 0°, saturation 0 %, brightness 10 %, opacity 30 %.
|
|
141
|
+
- In the macOS Terminal this uses a Terminal profile called "KeyFlow", which
|
|
142
|
+
KeyFlow creates once (a window briefly opens and closes).
|
|
143
|
+
- The window title then only shows "KeyFlow".
|
|
144
|
+
- **Moving colors:** flowing gradients, a shimmering menu and a pulsing next key.
|
|
145
|
+
- **Flow**, the mascot, blinks, bobs and gives you tips.
|
|
146
|
+
|
|
147
|
+
## Info & updates
|
|
148
|
+
|
|
149
|
+
The **Info** page in the menu shows your KeyFlow version, whether an update is
|
|
150
|
+
available, how KeyFlow was installed, your Python version and where your data is
|
|
151
|
+
stored. It also has buttons that open GitHub and PyPI in your browser, and an
|
|
152
|
+
**Update now** button that runs the right update command for you.
|
|
153
|
+
|
|
154
|
+
On start KeyFlow asks PyPI in the background whether a newer version exists. If
|
|
155
|
+
so, Flow tells you and the menu shows "Update!". You can turn this off in the
|
|
156
|
+
settings (or set `KEYFLOW_NO_UPDATE_CHECK=1`).
|
|
157
|
+
|
|
158
|
+
## About
|
|
159
|
+
|
|
160
|
+
KeyFlow is made by **YnsLaf** – [github.com/YnsLaf](https://github.com/YnsLaf).
|
|
161
|
+
Ideas, bugs or wishes? Open an issue on
|
|
162
|
+
[github.com/YnsLaf/keyflow](https://github.com/YnsLaf/keyflow).
|
|
163
|
+
|
|
164
|
+
## Settings
|
|
165
|
+
|
|
166
|
+
Language, text language, keyboard layout (QWERTZ/QWERTY), word length,
|
|
167
|
+
punctuation, numbers, lowercase only, umlauts, strict mode, live WPM, cursor,
|
|
168
|
+
visible lines, text width, sound, background, color mode, moving colors,
|
|
169
|
+
keyboard while typing, update check, daily goal, reset statistics.
|
|
170
|
+
|
|
171
|
+
## Data
|
|
172
|
+
|
|
173
|
+
Everything is stored in `~/.keyflow/daten.json`. Use `keyflow --data FILE` or the
|
|
174
|
+
environment variable `KEYFLOW_HOME` to choose another place.
|
|
175
|
+
|
|
176
|
+
## Development
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
git clone https://github.com/YnsLaf/keyflow
|
|
180
|
+
cd keyflow
|
|
181
|
+
python3 -m venv .venv && source .venv/bin/activate
|
|
182
|
+
pip install -e .
|
|
183
|
+
keyflow
|
|
184
|
+
python -m unittest discover -s tests
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
A new release on GitHub publishes the package to PyPI automatically
|
|
188
|
+
(`.github/workflows/publish.yml`). Raise the version in `pyproject.toml` and
|
|
189
|
+
`keyflow/__init__.py` first.
|