ROYUAN keyboard software
sharkfin is a free, open-source replacement for the ROYUAN app: remap keys, set the RGB, paint per-key colour and record macros on 115 ROYUAN boards, 115 of which accept changes. Use it in a Chromium browser with nothing to install, or as an app on Windows, macOS and Linux. It runs entirely on your own machine, with no account.
Does sharkfin support my ROYUAN board?
The table lists every ROYUAN model sharkfin knows, 115 in all. If yours is missing, plug it in anyway: these boards report their own device id, and sharkfin identifies anything built on ROYUAN hardware from that reply.
| Board | Writable | Layout |
|---|---|---|
| 6990 | yes | after a one-time check |
| 702 | yes | after a one-time check |
| AK1980W | yes | after a one-time check |
| AK8402 | yes | after a one-time check |
| AK8671 | yes | after a one-time check |
| AK8752 | yes | after a one-time check |
| Beat65 | yes | after a one-time check |
| Beat75 | yes | after a one-time check |
| BJ75 | yes | drawn |
| BJ87 | yes | after a one-time check |
| Ceres-Wired | yes | after a one-time check |
| CR104 | yes | after a one-time check |
| CX68-2 | yes | after a one-time check |
| CX77 | yes | after a one-time check |
| DK68 HE | yes | after a one-time check |
| DK68HE-UK | yes | after a one-time check |
| DK82 HE | yes | after a one-time check |
| DK82HE | yes | after a one-time check |
| DK968HE-UK | yes | after a one-time check |
| EX75 | yes | drawn |
| FF101 | yes | after a one-time check |
| FK51D2 | yes | after a one-time check |
| FK51H0-B | yes | after a one-time check |
| FK51H4 HE | yes | drawn |
| G1011 | yes | after a one-time check |
| Gaming Keyboard | yes | drawn |
| GGDJ104 | yes | after a one-time check |
| GK06-61 | yes | after a one-time check |
| GK6220G | yes | after a one-time check |
| GK6220GW | yes | after a one-time check |
| GK6940 ultra | yes | after a one-time check |
| GK6950 SE | yes | after a one-time check |
| GK7002 | yes | after a one-time check |
| GK75 | yes | after a one-time check |
| GK8140G | yes | after a one-time check |
| GM870Pro | yes | after a one-time check |
| GS75B | yes | after a one-time check |
| H60 | yes | after a one-time check |
| HHKB | yes | drawn |
| IK75 | yes | drawn |
| IROK ND_63 | yes | after a one-time check |
| JK61 | yes | after a one-time check |
| K1 | yes | after a one-time check |
| K60 | yes | after a one-time check |
| K67 | yes | after a one-time check |
| K73 | yes | after a one-time check |
| K81 | yes | after a one-time check |
| K81Max | yes | after a one-time check |
| K860 | yes | after a one-time check |
| K87 | yes | after a one-time check |
| KF068 | yes | slot grid |
| KF109-72 | yes | after a one-time check |
| KF210-B | yes | after a one-time check |
| KG183 | yes | after a one-time check |
| KG25 | yes | after a one-time check |
| Krux Morr | yes | drawn |
| KY MK85 | yes | after a one-time check |
| KY-MK231 | yes | after a one-time check |
| Lomz 75S | yes | drawn |
| MAG84 | yes | after a one-time check |
| Mage x ZM | yes | after a one-time check |
| MG108B | yes | drawn |
| MG75 | yes | after a one-time check |
| MK-23 | yes | drawn |
| MK10 | yes | after a one-time check |
| MK100 | yes | after a one-time check |
| MK1061C | yes | after a one-time check |
| MK1064 | yes | after a one-time check |
| MK11 | yes | drawn |
| MK132 | yes | after a one-time check |
| MK25001 | yes | after a one-time check |
| MK25075 | yes | drawn |
| MK25076 | yes | drawn |
| MK26013 | yes | after a one-time check |
| MK658 | yes | after a one-time check |
| MK9010 | yes | after a one-time check |
| MK9060 | yes | after a one-time check |
| MKS82 | yes | drawn |
| MOK84 | yes | after a one-time check |
| N98 | yes | after a one-time check |
| Phantom X68PG | yes | after a one-time check |
| Phantom X68RB | yes | after a one-time check |
| PL108W | yes | after a one-time check |
| PV82-V9 | yes | after a one-time check |
| R701 | yes | drawn |
| Rampage Fushi | yes | drawn |
| RxD 60% HE | yes | drawn |
| S21 | yes | after a one-time check |
| SG8905 | yes | after a one-time check |
| SG8948 | yes | drawn |
| SG8948 UK | yes | after a one-time check |
| SG8992 | yes | after a one-time check |
| SG9000 UK | yes | after a one-time check |
| SG9004 | yes | after a one-time check |
| SG9068 | yes | after a one-time check |
| SKY-PAD | yes | after a one-time check |
| Sky100Pro | yes | slot grid |
| SKY75 | yes | after a one-time check |
| ST-MKS82 | yes | after a one-time check |
| ST-MKS98 | yes | after a one-time check |
| TK-KB099 | yes | after a one-time check |
| TK35 | yes | after a one-time check |
| Vanta X1 | yes | after a one-time check |
| Vanta X3 | yes | after a one-time check |
| VM108 PRO | yes | after a one-time check |
| VM71 | yes | after a one-time check |
| VM87 | yes | after a one-time check |
| X107 | yes | after a one-time check |
| X68 Pro | yes | after a one-time check |
| XXY-820 | yes | after a one-time check |
| XXY-820 UK | yes | after a one-time check |
| YC100 | yes | after a one-time check |
| YG102C | yes | after a one-time check |
| Z68A | yes | after a one-time check |
| 万能驱 | yes | slot grid |
"Writable" means sharkfin will change settings on it. Read-only boards are ones whose command set is not established yet; sharkfin identifies them and reads from them, but refuses to write, because the two protocol families in this hardware share opcodes that mean different things. "After a one-time check" means the picture exists but is confirmed against your own board first: two boards can share one picture and still disagree about which internal slot a key lives in, so sharkfin trusts the keyboard over its own files.