Skip to content

willianba/split54-configurator

Repository files navigation

Split54 Configurator

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.

How to use it

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.

Development

  • bun dev for local development
  • bun build and bun preview for testing the prod build

Troubleshooting

The app doesn't work on Linux

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.

How to check if this is your problem

  1. Open the browser console (F12 → Console tab) and try to connect
  2. If you see NotAllowedError: Failed to open the device on the console, it's a permissions issue
  3. Run ls -la /dev/hidraw* to check device permissions:
    • If you see crw------- with root root, your user can't access the device
    • You need the udev rule above to fix this

Creating new udev rules

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

After applying the udev rule

  1. Run the commands in the tl;dr section above
  2. Unplug and replug your keyboard dongle
  3. Refresh the browser and try connecting again

The device should now show permissions that allow your user to access it.

About

My vibe-engineered app to configure the TWS Split54 keeb

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages