Free, Open Source, Lightweight, Cross-platform Software for Royal Kludge Keyboards
If you enjoy using Rangoli, please consider donating
Royal Kludge Keyboards are very popular in the budget mechanical keyboard community. Sometimes it is the only viable option for students especially from developing countries like me. However, they are infamous for poor software support.
There are efforts to get 3rd party firmware like QMK to run on some of these keyboards, but not every keyboard is supported. Also there are keyboards with the same model name but different processors. The entire process is risky and not recommended for begineers.
I decided to try another approach to this problem. I reverse engineered the protocol these keyboards use with their default firmware. I did this by using Wireshark to capture and observe USB packets sent from my PC to my keyboard after editing settings in the RK Software.
Therefore, instead of changing the keyboard firmware, this software pretends to be "RK Software".It is plug and play!
- Free and Open Source.
- Cross-platform. Rangoli runs on Linux, Windows and MacOS.
- Start On Boot. You can configure Rangoli to start at system boot and also select a profile to be applied on startup.
- Functional System Tray Icon. Although the RK Software does show up in System Tray, it is very limited and opens up the main window for even basic tasks like selecting a profile. Rangoli offers more functionality, including the ability to apply a profile per keyboard.
- Modern. Far more user friendly and has basic window behaviours including being able to resize, maximise, etc - something which the RK Software lacks.
- Colour Picker. You can select colour of your choice directly from your screen. Hex, RGB, HSV, HSL are also supported.
- Customisable. Rangoli offers users to change it's theme colours and also offers light and dark themes.
- Custom Key Map
- All built-in light modes
- Per key RGB
- Per key LED Brightness, Animation and Sleep
- Music Mode
- Custom RGB Patterns
- Macros. This is something that can be done directly on OS level. There are tools like AutoHotkey and AutoKey that does this far better than RK Software itself.
- Keyboard Firmware update. I was not able to reverse engineer this aspect of the RK Software because the function itself is broken.
Rangoli is NOT official software. It is a hobby project.
There is no guarantee that it will work with your keyboard. There is no official documentation for the RK Software protocol, so I had to reverse engineer it based on the RK71RGB N Keyboard. Other keyboards are not guaranteed to work. I am not responsible if you brick your keyboard.
- Qt >= 6.5
- CMake >= 3.16
- GCC >= 9.4.0 / Clang >= 5
- Ninja >= 1.10.2
Rangoli uses hidapi. It has been included as a submodule.
Therefore, you need to clone the repository with --recurse-submodules
.
git clone --recurse-submodules https://github.com/rnayabed/rangoli.git
In case you forget to do that, you need to run the following command:
git submodule update --init
cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=Release
cmake --build build --parallel
- Linux:
./build/src/rangoli
- Windows:
.\build\src\rangoli.exe
- MacOS:
open ./build/src/rangoli.app
If you want to report an issue or sugggest a feature, please report it by creating a GitHub issue.
You may also contact me via any of the following platforms:
- E-Mail: debayansutradhar3@gmail.com
- Matrix: @dubbadhar:matrix.org
- Discord: rnayabed#0784
It takes a lot of time and effort to build quality software. Anything will be highly appreciated <3
Developed by Debayan Sutradhar. All Rights Reserved.
Logo by Sab GFX.
Rangoli is licensed to GNU General Public License v3.0.
Rangoli - Free, Open Source, Lightweight, Cross-platform Software for Royal Kludge Keyboards
Copyright (C) 2023 Debayan Sutradhar (rnayabed)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.