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 is 1..5 and brightness is 0..4 (5 levels each, 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.1

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.1
File Size Uploaded
fizzctl-0.2.1.tar.gz 25.1 kB Details

Built distribution (wheel)

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

Total release size: 54.5 kB

Release files / fizzctl-0.2.1.tar.gz

Download URL fizzctl-0.2.1.tar.gz
Size 25.1 kB
Tags Source
SHA-256 checksum
How to use checksums
567227b297eda83838bd8e7106f9c1de9ebe377ad0d84ce3dff9bfd9980b6ffb
BLAKE2b-256 checksum
How to use checksums
4d4ceb61218a43418d4b53abbddbb96f638539f9f736c8dbdc22867c3e0f3705
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.1-py3-none-any.whl

Download URL fizzctl-0.2.1-py3-none-any.whl
Size 29.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b92092dee2cbd380209f9863ac09e2ffe5e0551e7c29fd390189a2fa20c217cd
BLAKE2b-256 checksum
How to use checksums
05f8aeae918d4d1bd82212438c7bf787516443ebdcf835e3adcaeaa92aa88526
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

This release

0.2.1 This release

2 release files

0.2.0

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