openajazz 0.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.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Shreyas Deb
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,99 @@
1
+ Metadata-Version: 2.4
2
+ Name: openajazz
3
+ Version: 0.4.0
4
+ Summary: Unofficial control for AJAZZ keyboards (AK820 Max Plus so far): lighting, per-key RGB, remaps, macros, music sync. CLI, TUI and web.
5
+ Author-email: Shreyas Deb <shreyasdeb@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Web app, https://openajazz.vercel.app
8
+ Project-URL: Homepage, https://github.com/shrey715/openajazz
9
+ Project-URL: Releases, https://github.com/shrey715/openajazz/releases
10
+ Project-URL: Issues, https://github.com/shrey715/openajazz/issues
11
+ Project-URL: Protocol, https://github.com/shrey715/openajazz/blob/main/PROTOCOL.md
12
+ Keywords: ajazz,ak820,ak820 max plus,keyboard,mechanical keyboard,rgb,hid,hidraw,linux,tui,macro
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Environment :: Console :: Curses
16
+ Classifier: Intended Audience :: End Users/Desktop
17
+ Classifier: Operating System :: POSIX :: Linux
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Topic :: System :: Hardware :: Hardware Drivers
21
+ Classifier: Topic :: Multimedia :: Sound/Audio :: Analysis
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: rich>=12
26
+ Requires-Dist: textual>=3.0
27
+ Provides-Extra: music
28
+ Requires-Dist: numpy>=1.21; extra == "music"
29
+ Provides-Extra: dev
30
+ Requires-Dist: pytest; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ # openajazz
34
+
35
+ Control **AJAZZ keyboards** without the Windows app: lighting effects, per-key RGB, key remaps, macros, music sync, sleep and battery. Works over the USB cable or the 2.4G dongle.
36
+
37
+ ![the tui lighting tab with a live effect preview](https://raw.githubusercontent.com/shrey715/openajazz/main/docs/tui-lighting.svg)
38
+
39
+ > [!WARNING]
40
+ > Unofficial. Not affiliated with AJAZZ. The protocol was reverse engineered from the vendor's Windows driver, and the lighting, colours, per-key RGB and live frames have been confirmed on real keyboards. It only sends the settings packets the official app sends and never touches firmware. Use at your own risk; `openajazz factory-reset` puts the keyboard back to stock.
41
+
42
+ ## Supported keyboards
43
+
44
+ | Keyboard | Wired | 2.4G dongle | Bluetooth |
45
+ |---|---|---|---|
46
+ | AK820 Max Plus (tri-mode RGB) | yes | yes | no (the keyboard doesn't expose settings over Bluetooth) |
47
+
48
+ Have another AJAZZ board? Open an issue with the output of `openajazz devices` and the name of the vendor driver package; most of them share this protocol.
49
+
50
+ ## Get it
51
+
52
+ Pick one:
53
+
54
+ | | |
55
+ |---|---|
56
+ | **Web, no install** | open **[openajazz.vercel.app](https://openajazz.vercel.app)** in Chrome, Edge or Opera on a computer |
57
+ | **pipx / uv** | `pipx install 'openajazz[music]'` or `uv tool install 'openajazz[music]'` |
58
+ | **AppImage** | grab it from [releases](https://github.com/shrey715/openajazz/releases/latest), `chmod +x`, run |
59
+
60
+ ### Linux permissions
61
+
62
+ Once, so you don't need sudo (the web app needs this too):
63
+
64
+ ```sh
65
+ openajazz udev --install # then replug the keyboard or dongle
66
+ ```
67
+
68
+ It only opens the keyboard's settings interface to your user, never the typing one.
69
+
70
+ ## Use it
71
+
72
+ ```sh
73
+ openajazz # full-screen TUI
74
+ openajazz status # battery
75
+ openajazz light breathing -c cyan # effect + colour (openajazz modes lists them)
76
+ openajazz lights off # and `on` brings your lighting back
77
+ openajazz custom -a 101010 w=red a=red s=red d=red
78
+ openajazz remap capslock esc
79
+ openajazz macro f12 +lctrl c -lctrl
80
+ openajazz music --background # lights follow what's playing, terminal can close
81
+ openajazz autostart music # ...and start that at every login
82
+ openajazz --help # everything else
83
+ ```
84
+
85
+ Coming from ak820ctl? Same commands under the new name; your saved settings and presets move over on first run.
86
+
87
+ ## What doesn't work (yet)
88
+
89
+ - Bluetooth: plug in the cable or dongle to change settings.
90
+ - Phones: browsers on phones don't support WebHID.
91
+ - Firmware updates and mouse-button assignments aren't supported.
92
+
93
+ More detail: [CHANGELOG](https://github.com/shrey715/openajazz/blob/main/CHANGELOG.md) · [PROTOCOL.md](https://github.com/shrey715/openajazz/blob/main/PROTOCOL.md) · [issues](https://github.com/shrey715/openajazz/issues)
94
+
95
+ ## Credits
96
+
97
+ Hardware test results, the colour palette, live-frame behaviour and the effect previews come from [prasoondev/ajazz-linux](https://github.com/prasoondev/ajazz-linux) (MIT).
98
+
99
+ MIT licensed. "AJAZZ" and "AK820" are trademarks of their owner, used here only to say what hardware this is for.
@@ -0,0 +1,67 @@
1
+ # openajazz
2
+
3
+ Control **AJAZZ keyboards** without the Windows app: lighting effects, per-key RGB, key remaps, macros, music sync, sleep and battery. Works over the USB cable or the 2.4G dongle.
4
+
5
+ ![the tui lighting tab with a live effect preview](https://raw.githubusercontent.com/shrey715/openajazz/main/docs/tui-lighting.svg)
6
+
7
+ > [!WARNING]
8
+ > Unofficial. Not affiliated with AJAZZ. The protocol was reverse engineered from the vendor's Windows driver, and the lighting, colours, per-key RGB and live frames have been confirmed on real keyboards. It only sends the settings packets the official app sends and never touches firmware. Use at your own risk; `openajazz factory-reset` puts the keyboard back to stock.
9
+
10
+ ## Supported keyboards
11
+
12
+ | Keyboard | Wired | 2.4G dongle | Bluetooth |
13
+ |---|---|---|---|
14
+ | AK820 Max Plus (tri-mode RGB) | yes | yes | no (the keyboard doesn't expose settings over Bluetooth) |
15
+
16
+ Have another AJAZZ board? Open an issue with the output of `openajazz devices` and the name of the vendor driver package; most of them share this protocol.
17
+
18
+ ## Get it
19
+
20
+ Pick one:
21
+
22
+ | | |
23
+ |---|---|
24
+ | **Web, no install** | open **[openajazz.vercel.app](https://openajazz.vercel.app)** in Chrome, Edge or Opera on a computer |
25
+ | **pipx / uv** | `pipx install 'openajazz[music]'` or `uv tool install 'openajazz[music]'` |
26
+ | **AppImage** | grab it from [releases](https://github.com/shrey715/openajazz/releases/latest), `chmod +x`, run |
27
+
28
+ ### Linux permissions
29
+
30
+ Once, so you don't need sudo (the web app needs this too):
31
+
32
+ ```sh
33
+ openajazz udev --install # then replug the keyboard or dongle
34
+ ```
35
+
36
+ It only opens the keyboard's settings interface to your user, never the typing one.
37
+
38
+ ## Use it
39
+
40
+ ```sh
41
+ openajazz # full-screen TUI
42
+ openajazz status # battery
43
+ openajazz light breathing -c cyan # effect + colour (openajazz modes lists them)
44
+ openajazz lights off # and `on` brings your lighting back
45
+ openajazz custom -a 101010 w=red a=red s=red d=red
46
+ openajazz remap capslock esc
47
+ openajazz macro f12 +lctrl c -lctrl
48
+ openajazz music --background # lights follow what's playing, terminal can close
49
+ openajazz autostart music # ...and start that at every login
50
+ openajazz --help # everything else
51
+ ```
52
+
53
+ Coming from ak820ctl? Same commands under the new name; your saved settings and presets move over on first run.
54
+
55
+ ## What doesn't work (yet)
56
+
57
+ - Bluetooth: plug in the cable or dongle to change settings.
58
+ - Phones: browsers on phones don't support WebHID.
59
+ - Firmware updates and mouse-button assignments aren't supported.
60
+
61
+ More detail: [CHANGELOG](https://github.com/shrey715/openajazz/blob/main/CHANGELOG.md) · [PROTOCOL.md](https://github.com/shrey715/openajazz/blob/main/PROTOCOL.md) · [issues](https://github.com/shrey715/openajazz/issues)
62
+
63
+ ## Credits
64
+
65
+ Hardware test results, the colour palette, live-frame behaviour and the effect previews come from [prasoondev/ajazz-linux](https://github.com/prasoondev/ajazz-linux) (MIT).
66
+
67
+ MIT licensed. "AJAZZ" and "AK820" are trademarks of their owner, used here only to say what hardware this is for.
@@ -0,0 +1,3 @@
1
+ """openajazz: unofficial control for AJAZZ keyboards (AK820 Max Plus supported)."""
2
+
3
+ __version__ = "0.4.0"
@@ -0,0 +1,5 @@
1
+ import sys
2
+
3
+ from .cli import main
4
+
5
+ sys.exit(main())