Split54 Configurator is my attempt to make a better software for the TWS Split54 keyboard sold by Keebmonkey. Alas, it has zero support from Keebmonkey of from its creator, but it has been my main driver since I got it, and my last resort was trying to improve it by myself 😀
This was entirely made with opencode and claude-opus-4.5. I fed it with json, uf2, and wireshark files to make it reverse engineer everything this app contains! It's very likely this has bugs and bad practices, as I only wanted something functional and cross-platform.
If you have the Split54 and you used its original software (Keymap), you should be familiar with it. Connect to the keyboard on the top right, click "Read" to import your current mappings, and start making your changes. After you're done, you can click "Apply" for testing (temporary save; gets reset once you unplug the dongle) then "Save" for the permanent save.
bun devfor local developmentbun buildandbun previewfor testing the prod build
If you're on Linux and you see a NotAllowedError: Failed to open the device error when connecting to the keyboard, it means your user doesn't have permission to access the HID device. This is a common issue on Linux since HID devices are owned by root by default.
- Open the browser console (F12 → Console tab) and try to connect
- If you see
NotAllowedError: Failed to open the deviceon the console, it's a permissions issue - Run
ls -la /dev/hidraw*to check device permissions:- If you see
crw-------withroot root, your user can't access the device - You need the udev rule above to fix this
- If you see
You need to get your dongle product ID to create a new udev rule to allow read and write access to your user. Try running this command: lsusb -d 0520:. This should return a line like this: Bus 003 Device 024: ID 0520:1314 Taiwan Semiconductor Manufacturing Co. Split_54.
If it doesn't, run lsusb alone and search for a line that mentions Split 54 somewhere. Take note of its ID. In the example above it's 0520:1314. Break this ID into vendor ID and product ID on the colon, and input these in the command below to generate the udev rules.
Vendor ID: 0520 / Product ID: 1314
printf '%s\n' \
'# Split54 Keyboard - WebHID access' \
'KERNEL=="hidraw*", ATTRS{idVendor}=="0520", ATTRS{idProduct}=="1314", MODE="0666", TAG+="uaccess"' \
'SUBSYSTEM=="usb", ATTRS{idVendor}=="0520", ATTRS{idProduct}=="1314", MODE="0666", TAG+="uaccess"' \
| sudo tee /etc/udev/rules.d/99-split54.rules >/dev/null
sudo udevadm control --reload-rules
sudo udevadm trigger- Run the commands in the tl;dr section above
- Unplug and replug your keyboard dongle
- Refresh the browser and try connecting again
The device should now show permissions that allow your user to access it.