Skip to main content

fizzctl

Linux tool for controlling the Redragon K617 Fizz keyboard's RGB lighting and restoring keymaps from Cfg.ini files.

Install

# from PyPI
pip install fizzctl

# from PyPI (uv)
uv tool install fizzctl

# from source
git clone https://github.com/you/fizzctl.git && cd fizzctl
uv build && uv tool install .

Udev rules (needs one sudo)

fizzctl setup-udev

This installs 99-k617.rules to /etc/udev/rules.d/, reloads udev and re-triggers device events. The command elevates its own privileged steps via sudo (you are prompted for your password), so you do not need to wrap it as sudo fizzctl ... — that fails because the binary lives in a user-local path like ~/.local/bin. Unplug/replug the keyboard afterwards if the trigger did not pick it up.

Commands

Command Description Persists
rgb Set the whole board to a solid color yes
effect Run one of 22 firmware-native effects yes
key Paint a single key yes
paint Paint multiple keys at once yes
keymap Write the keymap from a Cfg.ini yes
animate Host-streamed animation (volatile) no

Examples

All commands accept short flag aliases alongside their long forms:

Long Short Applies to
--color -c effect, animate
--speed -s effect, animate
--brightness -b effect, rgb
--fps -f animate

Write keymap (most important)

Apply the full keymap (bindings, lighting zones, function keys) from a Cfg.ini — the file the official Redragon software exports:

fizzctl keymap Cfg.ini

Set the whole board to one color

fizzctl rgb red
fizzctl rgb 00ff00 --brightness 4       # or: rgb 00ff00 -b 4

Firmware effects

All 22 effects from the official Redragon software are supported, with full speed and brightness control. speed and brightness are 5 levels (0-4, matching the firmware); higher = faster / brighter. Run fizzctl effect with no name to list every effect:

fizzctl effect
fizzctl effect rainbow
fizzctl effect rainbow --speed 2 --brightness 4   # or: -s 2 -b 4
fizzctl effect fixed-on --color 00ff00 --brightness 3
fizzctl effect snake --color ff0000 --speed 4
fizzctl effect off

Aliases are supported: staticfixed-on, wheelrainbow-wheel, snakeretro-snake, waterfallcolorful-waterfall.

Per-key painting

Keys are named by their top-left legend. Any key not listed turns off because the canvas is absolute:

fizzctl key W ff0000
fizzctl paint W=ff0000 A=00ff00 S=ffff00 D=ff00ff Space=ffffff

Host-side animations

Volatile — lost when the keyboard reconnects or reboots. Run fizzctl animate with no name to list the animations:

fizzctl animate
fizzctl animate rainbow --fps 30 --duration 10  # or: -f 30
fizzctl animate chase --color ff0000 --speed 2  # or: -c yellow -s 2
fizzctl animate solid --color 0000ff

Debug mode

fizzctl --debug effect rainbow

Shows the raw frames and handshake bytes sent over HID.

Dev tools

The fizzctl-dev binary exposes the full reverse-engineering toolkit (capture inspect, diff, export, replay) in addition to all user commands.

fizzctl-dev inspect captures/r3.json
fizzctl-dev diff captures/r2.json captures/r3.json
fizzctl-dev export captures/r2.json frames.json
fizzctl-dev replay frames.json
fizzctl-dev cfg Cfg.ini
fizzctl-dev list

How the RGB paths work

Flash writes (rgb, key, paint, effect, keymap) send a 4-5 frame burst through the vendor HID interface (258a:0049, interface 1, usage page 0xFF00). The sequence ends with a 5AA5 magic commit that writes to flash. Colors persist across reboots. Keys not listed in a key or paint canvas turn off.

Animations (animate) stream 382-byte per-key reports at the requested frame rate with no flash commit. They are host-side only and lost on reconnect.

Colors

Colors can be given as a name or RRGGBB hex (with or without #). Spaces, dashes and underscores in names are ignored, so light green, light-green and lightgreen are equivalent:

red green blue white black off
yellow cyan magenta orange pink purple lime teal violet indigo coral salmon
navy brown gold silver gray grey olive maroon
lightred lightgreen lightblue darkred darkgreen darkblue

Both -c yellow and --color ffaa00 work anywhere a color flag is accepted.

Release files for fizzctl 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fizzctl 0.2.0
File Size Uploaded
fizzctl-0.2.0.tar.gz 25.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fizzctl 0.2.0
File Interpreter ABI Platform
fizzctl-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.5 kB

Release files / fizzctl-0.2.0.tar.gz

Download URL fizzctl-0.2.0.tar.gz
Size 25.0 kB
Tags Source
SHA-256 checksum
How to use checksums
5826b1d9f30d2771d597796ffa958e2d21440809f536ef38ba73de1719acca6f
BLAKE2b-256 checksum
How to use checksums
e5de622b9d41d145b2b13e757b3ef150b98164dde1a89c66d33d09ccdff21dcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.0.r2147.g2fbac0c","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / fizzctl-0.2.0-py3-none-any.whl

Download URL fizzctl-0.2.0-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dfb42a9b62f66c33188564c5494fecb7d8b0287faae947f108c2a7112395b215
BLAKE2b-256 checksum
How to use checksums
3494300fd983f0024b152784ea1210d87b8bb1ef354aaf96ffef8929a0c40349
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Omarchy","version":"4.0.0.r2147.g2fbac0c","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

This release

0.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page