rkcu


Namerkcu JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/gagan16k/rkcu
SummaryRoyal Kludge Config Utility - Manage profiles and per-key RGB lighting
upload_time2025-08-23 22:33:36
maintainergagan16k
docs_urlNone
authorHardik Srivastava
requires_python>=3.7
licenseMIT
keywords royal kludge keyboard rgb lighting config utility
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# RKCU - Royal Kludge Config Utility
Python3 based command line utility/API to manage and modify profiles on Royal Kludge keyboards with **per-key RGB support**.

## Features
- **Per-Key RGB Lighting**: Set individual colors for each key
- **JSON Configuration**: Load complex lighting setups from files
- **Windows Compatible**: Updated for Windows HID interface detection
- **RK100 Support**: Enhanced for newer Royal Kludge models
- **Rangoli**: Based on the [rangoli project](https://github.com/rnayabed/rangoli)

## Supported Keyboards
- Royal Kludge RK100 (VID: 0x258a, PID: 0x00e0)
- Royal Kludge RK61 (original support)
- Other RK keyboards with compatible HID interfaces

## Dependencies

    hidapi

## Standard Usage

    python rkcu.py <arguments>

Arguments :

    --speed, --sp [1-5]
    # speed of led animation.
    
    --brightness, -br [0-5]
    # brightness of led animation
	
	--sleep, -sl [1-5]
	# sleep duration for the keyboard led
	 - 1: 05 Minutes
	 - 2: 10 Minutes
	 - 3: 20 Minutes
	 - 4: 30 Minutes
	 - 5: Never Sleep
	
	--rainbow, -rb
	# Set LED color mode to Rainbow
	
	--red, -r 0-255
	# Red value of Color
	
	--green, -g 0-255
	# Green value of Color
	
	--blue, -b 0-255
	# Blue value of Color
	
	--animation, -an "animation_name"
	# List of availaible animations:
	 - neon_stream
	 - ripples_shining
	 - sine_wave
	 - rainbow_routlette
	 - stars_twinkle
	 - layer_upon_layer
	 - rich_and_honored
	 - marquee_effect
	 - rotating_storm
	 - serpentine_horse
	 - retro_snake
	 - diagonal_transformer
	 - ambilight
	 - streamer
	 - steady
	 - breathing
	 - neon
	 - shadow_disappear
	 - flash_away

## Per-Key RGB Arguments

	--set-key KEY_INDEX:RRGGBB
	# Set color for a specific key (can be used multiple times)
	# Example: --set-key 15:ff0000 (sets key 15 to red)
	
	--set-keys-json FILE_PATH
	# Load multiple key colors from JSON file
	
	--clear-custom
	# Clear all custom per-key colors

Example :

    # Standard usage
    python rkcu.py --speed 3 --brightness 5 --sleep 5 -r 255 -g 255 -b 255 -an "ripples_shining"
    python rkcu.py -sp 5 -an "rotating_storm" -rb
    
    # Per-key RGB examples
    python rkcu.py --set-key 15:ff0000 --set-key 29:00ff00 
    python rkcu.py --set-keys-json rainbow_config.json      # Load from file
    python rkcu.py --set-key 15:ff0000 --brightness 2     # Custom key with brightness

## Custom Testing

Readme with some standard tests for keyboard (mainly per-key) RGB functionality can be found in [`custom_testing/README.md`](custom_testing/README.md).

## Notes

The `--rainbow` argument will overrule the `--red, --green, --blue` parameters.

By default the script would require superuser access to run. In order to run this without root, you can plug a udev rule by performing the following steps :
Step 1: Find your vendor id and product id. Here it is `258a` and `004a` respectively, and would most likely be same for you if you are having the same keyboard.

    $ lsusb
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 005: ID 0c45:671e Microdia Integrated_Webcam_HD
    Bus 001 Device 002: ID 258a:004a SINO WEALTH RK Bluetooth Keyboard
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Step 2:
add a `rules` file to `/etc/udev/rules.d`
file: `60-rk.rules`

    SUBSYSTEMS=="usb|hidraw", ATTRS{idVendor}=="258a", ATTRS{idProduct}=="004a", TAG+="uaccess"

replace `258a` with your vendor id and `004a` with your product id, in case it is different.
Step 3:
Finally, reload your udev rules by running the following command :

    # udevadm control --reload-rules && udevadm trigger

## What's working?
Currently the script allows setting and configuring of inbuilt color profiles on the keyboard. Custom customisation such as custom LED colors and macros are still not present but will (hopefully) be soon supported.

## Credits
Big credits to [this](https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/2308) issue thread on the OpenRGB Gitlab Repo that served great reference.

Special thanks to the [Rangoli project](https://github.com/rnayabed/rangoli) for the foundational work that made the per-key RGB functionality possible.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/gagan16k/rkcu",
    "name": "rkcu",
    "maintainer": "gagan16k",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "royal kludge, keyboard, rgb, lighting, config, utility",
    "author": "Hardik Srivastava",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/08/ed/165b1423352e6dd98da0fb93ec7bcd3b7a21174c673e31549c377ea1db96/rkcu-1.0.1.tar.gz",
    "platform": null,
    "description": "\n# RKCU - Royal Kludge Config Utility\nPython3 based command line utility/API to manage and modify profiles on Royal Kludge keyboards with **per-key RGB support**.\n\n## Features\n- **Per-Key RGB Lighting**: Set individual colors for each key\n- **JSON Configuration**: Load complex lighting setups from files\n- **Windows Compatible**: Updated for Windows HID interface detection\n- **RK100 Support**: Enhanced for newer Royal Kludge models\n- **Rangoli**: Based on the [rangoli project](https://github.com/rnayabed/rangoli)\n\n## Supported Keyboards\n- Royal Kludge RK100 (VID: 0x258a, PID: 0x00e0)\n- Royal Kludge RK61 (original support)\n- Other RK keyboards with compatible HID interfaces\n\n## Dependencies\n\n    hidapi\n\n## Standard Usage\n\n    python rkcu.py <arguments>\n\nArguments :\n\n    --speed, --sp [1-5]\n    # speed of led animation.\n    \n    --brightness, -br [0-5]\n    # brightness of led animation\n\t\n\t--sleep, -sl [1-5]\n\t# sleep duration for the keyboard led\n\t - 1: 05 Minutes\n\t - 2: 10 Minutes\n\t - 3: 20 Minutes\n\t - 4: 30 Minutes\n\t - 5: Never Sleep\n\t\n\t--rainbow, -rb\n\t# Set LED color mode to Rainbow\n\t\n\t--red, -r 0-255\n\t# Red value of Color\n\t\n\t--green, -g 0-255\n\t# Green value of Color\n\t\n\t--blue, -b 0-255\n\t# Blue value of Color\n\t\n\t--animation, -an \"animation_name\"\n\t# List of availaible animations:\n\t - neon_stream\n\t - ripples_shining\n\t - sine_wave\n\t - rainbow_routlette\n\t - stars_twinkle\n\t - layer_upon_layer\n\t - rich_and_honored\n\t - marquee_effect\n\t - rotating_storm\n\t - serpentine_horse\n\t - retro_snake\n\t - diagonal_transformer\n\t - ambilight\n\t - streamer\n\t - steady\n\t - breathing\n\t - neon\n\t - shadow_disappear\n\t - flash_away\n\n## Per-Key RGB Arguments\n\n\t--set-key KEY_INDEX:RRGGBB\n\t# Set color for a specific key (can be used multiple times)\n\t# Example: --set-key 15:ff0000 (sets key 15 to red)\n\t\n\t--set-keys-json FILE_PATH\n\t# Load multiple key colors from JSON file\n\t\n\t--clear-custom\n\t# Clear all custom per-key colors\n\nExample :\n\n    # Standard usage\n    python rkcu.py --speed 3 --brightness 5 --sleep 5 -r 255 -g 255 -b 255 -an \"ripples_shining\"\n    python rkcu.py -sp 5 -an \"rotating_storm\" -rb\n    \n    # Per-key RGB examples\n    python rkcu.py --set-key 15:ff0000 --set-key 29:00ff00 \n    python rkcu.py --set-keys-json rainbow_config.json      # Load from file\n    python rkcu.py --set-key 15:ff0000 --brightness 2     # Custom key with brightness\n\n## Custom Testing\n\nReadme with some standard tests for keyboard (mainly per-key) RGB functionality can be found in [`custom_testing/README.md`](custom_testing/README.md).\n\n## Notes\n\nThe `--rainbow` argument will overrule the `--red, --green, --blue` parameters.\n\nBy default the script would require superuser access to run. In order to run this without root, you can plug a udev rule by performing the following steps :\nStep 1: Find your vendor id and product id. Here it is `258a` and `004a` respectively, and would most likely be same for you if you are having the same keyboard.\n\n    $ lsusb\n    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub\n    Bus 001 Device 005: ID 0c45:671e Microdia Integrated_Webcam_HD\n    Bus 001 Device 002: ID 258a:004a SINO WEALTH RK Bluetooth Keyboard\n    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub\n\nStep 2:\nadd a `rules` file to `/etc/udev/rules.d`\nfile: `60-rk.rules`\n\n    SUBSYSTEMS==\"usb|hidraw\", ATTRS{idVendor}==\"258a\", ATTRS{idProduct}==\"004a\", TAG+=\"uaccess\"\n\nreplace `258a` with your vendor id and `004a` with your product id, in case it is different.\nStep 3:\nFinally, reload your udev rules by running the following command :\n\n    # udevadm control --reload-rules && udevadm trigger\n\n## What's working?\nCurrently the script allows setting and configuring of inbuilt color profiles on the keyboard. Custom customisation such as custom LED colors and macros are still not present but will (hopefully) be soon supported.\n\n## Credits\nBig credits to [this](https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/2308) issue thread on the OpenRGB Gitlab Repo that served great reference.\n\nSpecial thanks to the [Rangoli project](https://github.com/rnayabed/rangoli) for the foundational work that made the per-key RGB functionality possible.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Royal Kludge Config Utility - Manage profiles and per-key RGB lighting",
    "version": "1.0.1",
    "project_urls": {
        "Homepage": "https://github.com/gagan16k/rkcu",
        "Issues": "https://github.com/gagan16k/rkcu/issues",
        "Repository": "https://github.com/gagan16k/rkcu"
    },
    "split_keywords": [
        "royal kludge",
        " keyboard",
        " rgb",
        " lighting",
        " config",
        " utility"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e85bfb87d803c924d22808e356dbfad65bf37b1e830fa0f2436b2c16f104b449",
                "md5": "27d3d70a708a96c4af04ec430fa7bbc8",
                "sha256": "90aff0e1feff65c27be7e4a0d349a00c45793946f7e9b0b22f85e327ae232984"
            },
            "downloads": -1,
            "filename": "rkcu-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "27d3d70a708a96c4af04ec430fa7bbc8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 10149,
            "upload_time": "2025-08-23T22:33:35",
            "upload_time_iso_8601": "2025-08-23T22:33:35.120791Z",
            "url": "https://files.pythonhosted.org/packages/e8/5b/fb87d803c924d22808e356dbfad65bf37b1e830fa0f2436b2c16f104b449/rkcu-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "08ed165b1423352e6dd98da0fb93ec7bcd3b7a21174c673e31549c377ea1db96",
                "md5": "3d5d16cef203fea5c96db9cadcd57a2e",
                "sha256": "af48b294d40f4cfa7b4c6474d3b205161729be12a82cfa5ee6353780da99ccd3"
            },
            "downloads": -1,
            "filename": "rkcu-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3d5d16cef203fea5c96db9cadcd57a2e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 11497,
            "upload_time": "2025-08-23T22:33:36",
            "upload_time_iso_8601": "2025-08-23T22:33:36.682158Z",
            "url": "https://files.pythonhosted.org/packages/08/ed/165b1423352e6dd98da0fb93ec7bcd3b7a21174c673e31549c377ea1db96/rkcu-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-23 22:33:36",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "gagan16k",
    "github_project": "rkcu",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "rkcu"
}
        
Elapsed time: 1.64604s