keyglow 0.1.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.
- keyglow-0.1.0/PKG-INFO +392 -0
- keyglow-0.1.0/README.md +380 -0
- keyglow-0.1.0/keyglow/__init__.py +0 -0
- keyglow-0.1.0/keyglow/data.py +73 -0
- keyglow-0.1.0/keyglow/export.py +161 -0
- keyglow-0.1.0/keyglow/jokes.py +34 -0
- keyglow-0.1.0/keyglow/keyboard.py +64 -0
- keyglow-0.1.0/keyglow/logo.py +16 -0
- keyglow-0.1.0/keyglow/main.py +384 -0
- keyglow-0.1.0/keyglow/map.py +138 -0
- keyglow-0.1.0/keyglow/monitor.py +193 -0
- keyglow-0.1.0/keyglow/storage.py +57 -0
- keyglow-0.1.0/keyglow.egg-info/PKG-INFO +392 -0
- keyglow-0.1.0/keyglow.egg-info/SOURCES.txt +18 -0
- keyglow-0.1.0/keyglow.egg-info/dependency_links.txt +1 -0
- keyglow-0.1.0/keyglow.egg-info/entry_points.txt +2 -0
- keyglow-0.1.0/keyglow.egg-info/requires.txt +3 -0
- keyglow-0.1.0/keyglow.egg-info/top_level.txt +2 -0
- keyglow-0.1.0/pyproject.toml +34 -0
- keyglow-0.1.0/setup.cfg +4 -0
keyglow-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: keyglow
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Privacy-first keyboard usage heatmap and statistics CLI tool.
|
|
5
|
+
Author: aeriss-dev
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.10
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
Requires-Dist: typer
|
|
10
|
+
Requires-Dist: rich
|
|
11
|
+
Requires-Dist: pynput
|
|
12
|
+
|
|
13
|
+
# KeyGlow
|
|
14
|
+
[](https://opensource.org/licenses/MIT)
|
|
15
|
+
|
|
16
|
+
Privacy-first keyboard usage heatmap and statistics CLI tool.
|
|
17
|
+
|
|
18
|
+
KeyGlow is a lightweight command-line application that tracks keyboard usage statistics, generates keyboard heatmaps, and helps you understand your typing habits.
|
|
19
|
+
|
|
20
|
+
Unlike keyloggers, KeyGlow does **not** record what you type (typing sequences)
|
|
21
|
+
|
|
22
|
+
It only stores anonymous key frequency counters:
|
|
23
|
+
|
|
24
|
+
```json
|
|
25
|
+
{
|
|
26
|
+
"A": 245,
|
|
27
|
+
"SPACE": 1200,
|
|
28
|
+
"ENTER": 83
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
It does not save typed text, passwords, or key sequences.
|
|
32
|
+
Only keyboard usage statistics.
|
|
33
|
+
|
|
34
|
+
# Features
|
|
35
|
+
|
|
36
|
+
- Keyboard usage heatmap
|
|
37
|
+
- Real-time keyboard monitoring
|
|
38
|
+
- Keyboard and mouse inactivity detection
|
|
39
|
+
- Keyboard statistics
|
|
40
|
+
- Total key press counter
|
|
41
|
+
- JSON / CSV / TXT exports
|
|
42
|
+
- Local only data storage in ~/KeyGlow/ directory.
|
|
43
|
+
- Automated Saving
|
|
44
|
+
- Automatic inactivity shutdown after certain time passed in a parameter
|
|
45
|
+
|
|
46
|
+
# Installation
|
|
47
|
+
|
|
48
|
+
## Requirements
|
|
49
|
+
|
|
50
|
+
- Python 3.10+
|
|
51
|
+
- pip
|
|
52
|
+
|
|
53
|
+
Install keyglow:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
pip install keyglow
|
|
57
|
+
```
|
|
58
|
+
Run:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
keyglow --help
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
# Commands
|
|
65
|
+
|
|
66
|
+
## version
|
|
67
|
+
|
|
68
|
+
Show KeyGlow version.
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
keyglow version
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## privacy
|
|
75
|
+
|
|
76
|
+
Display KeyGlow privacy model.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
keyglow privacy
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## monitor
|
|
83
|
+
|
|
84
|
+
Start keyboard monitoring.
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
keyglow monitor
|
|
88
|
+
```
|
|
89
|
+
Keyglow tracks keyboard and mouse inactivity.
|
|
90
|
+
|
|
91
|
+
Default inactivity timeout:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
10 minutes
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Change timeout:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
keyglow monitor --timeout 30
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Disable automatic shutdown:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
keyglow monitor --timeout 0
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## stats
|
|
110
|
+
|
|
111
|
+
Show keyboard statistics.
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
keyglow stats
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Example:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
KeyGlow Keyboard Statistics
|
|
121
|
+
|
|
122
|
+
Key Presses Usage
|
|
123
|
+
|
|
124
|
+
SPACE 5420 ██████████
|
|
125
|
+
|
|
126
|
+
E 3120 ███████
|
|
127
|
+
|
|
128
|
+
ENTER 430 █
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## map
|
|
132
|
+
|
|
133
|
+
Display keyboard primitive heatmap.
|
|
134
|
+
Displayed keyboard may not recreate your keyboard's alignment the same way, but it does contain most of commonly used keys.
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
keyglow map
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## total
|
|
141
|
+
|
|
142
|
+
Show total recorded key presses.
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
keyglow total
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Example:
|
|
149
|
+
```
|
|
150
|
+
KeyGlow Total Key Presses
|
|
151
|
+
Total Presses: 125,340
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## export
|
|
155
|
+
|
|
156
|
+
Export collected statistics.
|
|
157
|
+
|
|
158
|
+
JSON:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
keyglow export json
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
CSV:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
keyglow export csv
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
TXT:
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
keyglow export txt
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Exports are stored in:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
~/KeyGlow/Exports/
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## reset
|
|
183
|
+
|
|
184
|
+
Delete all collected statistics. (It does not delete exported files though)
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
keyglow reset
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
KeyGlow asks for confirmation before deleting data.
|
|
191
|
+
|
|
192
|
+
## man
|
|
193
|
+
|
|
194
|
+
Display the KeyGlow manual.
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
keyglow man
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## joke
|
|
201
|
+
|
|
202
|
+
Display a random (really funny trust me) joke about keyboard.
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
keyglow joke
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## info
|
|
209
|
+
|
|
210
|
+
Show informations about the version, amount of stored keys, total key presses, storage file size and path to export folder.
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
keyglow info
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## logo
|
|
217
|
+
|
|
218
|
+
Show a KeyGlow logo.
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
keyglow logo
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
# Privacy Model
|
|
225
|
+
|
|
226
|
+
KeyGlow was designed with privacy as a priority.
|
|
227
|
+
|
|
228
|
+
## Collected
|
|
229
|
+
|
|
230
|
+
Only anonymous key frequency counters.
|
|
231
|
+
|
|
232
|
+
Example:
|
|
233
|
+
|
|
234
|
+
```json
|
|
235
|
+
{
|
|
236
|
+
"A": 500,
|
|
237
|
+
"CTRL": 120,
|
|
238
|
+
"SPACE": 900
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Never Collected
|
|
243
|
+
|
|
244
|
+
- Typed text sequences
|
|
245
|
+
- Passwords
|
|
246
|
+
- Sentences
|
|
247
|
+
- Data stored in Clipboard
|
|
248
|
+
- Websites
|
|
249
|
+
- Apps
|
|
250
|
+
|
|
251
|
+
# Data Storage
|
|
252
|
+
|
|
253
|
+
KeyGlow stores all the data locally.
|
|
254
|
+
|
|
255
|
+
Main database:
|
|
256
|
+
```
|
|
257
|
+
~/KeyGlow/keyglow_data.json
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Exports:
|
|
261
|
+
```
|
|
262
|
+
~/Keyglow/Exports/
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
No cloud synchronization, no external servers, no network needed
|
|
266
|
+
|
|
267
|
+
# Supported Keys
|
|
268
|
+
|
|
269
|
+
## Letters
|
|
270
|
+
|
|
271
|
+
A-Z
|
|
272
|
+
|
|
273
|
+
## Numbers
|
|
274
|
+
|
|
275
|
+
0-9
|
|
276
|
+
|
|
277
|
+
## Function Keys
|
|
278
|
+
|
|
279
|
+
F1-F12
|
|
280
|
+
|
|
281
|
+
## Special Keys
|
|
282
|
+
|
|
283
|
+
- ESC
|
|
284
|
+
- TAB
|
|
285
|
+
- ENTER
|
|
286
|
+
- BACKSPACE
|
|
287
|
+
- CAPSLOCK
|
|
288
|
+
- SPACE
|
|
289
|
+
|
|
290
|
+
## Modifiers
|
|
291
|
+
|
|
292
|
+
- SHIFT
|
|
293
|
+
- CTRL
|
|
294
|
+
- ALT
|
|
295
|
+
- SYSTEM
|
|
296
|
+
|
|
297
|
+
## Navigation
|
|
298
|
+
|
|
299
|
+
- UP
|
|
300
|
+
- DOWN
|
|
301
|
+
- LEFT
|
|
302
|
+
- RIGHT
|
|
303
|
+
|
|
304
|
+
# Technologies
|
|
305
|
+
|
|
306
|
+
KeyGlow is built with:
|
|
307
|
+
|
|
308
|
+
- Python
|
|
309
|
+
- Typer
|
|
310
|
+
- Rich
|
|
311
|
+
- Pynput
|
|
312
|
+
|
|
313
|
+
# Files:
|
|
314
|
+
```
|
|
315
|
+
keyglow/
|
|
316
|
+
|
|
317
|
+
- main.py
|
|
318
|
+
- monitor.py
|
|
319
|
+
- storage.py
|
|
320
|
+
- export.py
|
|
321
|
+
- map.py
|
|
322
|
+
- keyboard.py
|
|
323
|
+
- data.py
|
|
324
|
+
- joke.py
|
|
325
|
+
- logo.py
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
# Development
|
|
329
|
+
|
|
330
|
+
Clone repo:
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
git clone https://github.com/aerissdev-dotcom/KeyGlow.git
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Install dependencies:
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
pip install -r requirements.txt
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
Run:
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
python main.py --help
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
# License
|
|
349
|
+
|
|
350
|
+
MIT License
|
|
351
|
+
|
|
352
|
+
# Author
|
|
353
|
+
|
|
354
|
+
aeriss-dev
|
|
355
|
+
|
|
356
|
+
GitHub:
|
|
357
|
+
|
|
358
|
+
https://github.com/aerissdev-dotcom
|
|
359
|
+
|
|
360
|
+
# Version
|
|
361
|
+
|
|
362
|
+
0.1.0
|
|
363
|
+
|
|
364
|
+
# Testing and developing OS:
|
|
365
|
+
|
|
366
|
+
KeyGlow was fully tested and developed on macOS. The author does **not** guarantee this tool will work on other operating systems.
|
|
367
|
+
|
|
368
|
+
# OS Compatibility
|
|
369
|
+
|
|
370
|
+
## macOS
|
|
371
|
+
|
|
372
|
+
KeyGlow requires Accessibility permission.
|
|
373
|
+
|
|
374
|
+
System Settings:
|
|
375
|
+
Privacy & Security -> Accessibility
|
|
376
|
+
|
|
377
|
+
Add your Terminal application.
|
|
378
|
+
|
|
379
|
+
## Windows
|
|
380
|
+
|
|
381
|
+
No additional permissions are normally required.
|
|
382
|
+
|
|
383
|
+
## Linux
|
|
384
|
+
|
|
385
|
+
Works best on X11 sessions.
|
|
386
|
+
Wayland sessions may require additional configuration due to system restrictions.
|
|
387
|
+
|
|
388
|
+
# Conclusion
|
|
389
|
+
|
|
390
|
+
It's a free, silly little tool that might brighten someone's day, and for some specific people, give interesting statistics.
|
|
391
|
+
|
|
392
|
+
|