Boards · Attack Shark

Attack Shark X87Ultra keyboard software

Remap keys, set the RGB, record macros and change device settings on the Attack Shark X87Ultra. Free and open source. Use it in a Chromium browser with nothing to install, or download the desktop app for Windows, macOS or Linux. Either way it runs entirely on your own machine: no account, and the browser version makes no network requests once the page has loaded.

3 revisions of the X87Ultra ship under this name. They are on different controllers, so they are genuinely different hardware and not just a firmware bump. sharkfin does not ask you which one you have: the board reports its own device ID when it is plugged in, and the right command set follows from that.

What sharkfin does with the X87Ultra

  • Remap any key. Click a key on a picture of the board and give it another key, a mouse button, cursor movement, the scroll wheel, a macro or a media control. Base and Fn layers both. 3 or 4 onboard profiles, by revision.
  • Lighting. 18 backlight effects with direction options, full RGB colour, brightness and speed. The effect runs on a picture of the board as you change it; a slider writes to the board when you let go of it.
  • Per-key colour. Paint individual keys and send the pattern to the board's flash.
  • Macros. Record key and mouse sequences with per-event delays into the 50 onboard slots, then bind a key to one.
  • Debounce. Adjustable, 1 to 10, on the revisions that have it (device 3438).
  • Sleep timers for 2.4 GHz and Bluetooth, plus deep sleep.
  • Edge light. Present on some revisions of this model (device ids 2852, 3438). Where it exists, the edge LEDs get their own effect, colour, brightness and speed.
  • Device settings. Windows-key lock, WASD and arrow-cluster swap, backlight off, host-OS auto-detect and a factory reset, all from the Device page.
  • Backup. Export everything to a file and restore it later.
  • Magnetic switches. Some revisions have them (device ids 2660, 2852). The Switches tab writes the switch settings on the revisions whose firmware has been read (device ids 2660, 2852); on the rest it reads them, and Setup can open writes for your board.
  • Screen. This board has one. sharkfin draws on it on the revisions whose firmware is worked out (device ids 2660, 2852); on the rest it reads the display's version and leaves it alone.

The picture sharkfin has for the X87Ultra knows the board's shape but not yet which internal slot each key lives in, so the first connection includes a check: the drawing is matched against the keymap your own board reports, you confirm it once, and from then on you remap on the picture. Until then the app shows a plain grid. The check exists because two boards can share one picture and still disagree about which slot a key lives in, and a wrong guess would send a remap to the wrong key. sharkfin trusts your keyboard over its own files.

X87Ultra at a glance

BrandAttack Shark
ModelX87Ultra
USB ID3151:502d, 3151:5030, 3151:504c
Device ID2660, 2852, 3438
Protocol familygen2
Settings writableyes
Drawn layoutafter a one-time check
Onboard profiles3 or 4
Backlight effects18

gen2 and yc500 are the two command sets these keyboards speak. The same command can mean different things in each, so sharkfin never guesses: the board names itself when it is plugged in, and the command set follows from that.

Connecting

Plug the X87Ultra in with a USB cable. Over a 2.4 GHz receiver sharkfin reads whatever the receiver relays: some carry the settings channel, some carry nothing, and the same model ships with both, so plug the receiver in and the app says which yours is. Writes need the cable. Bluetooth has no settings channel. Settings are stored on the keyboard itself, so everything you change keeps working wirelessly once you unplug. sharkfin never flashes firmware. On Linux, the AppImage and the browser build need a one-line udev rule before they can open the keyboard; the .deb and .rpm install it. And if you are hunting for a polling-rate or report-rate setting: there is none in sharkfin, because this hardware does not expose one.

If the X87Ultra stops responding

It happens: the firmware stops answering and the app says the board needs a replug. Typing keeps working the whole time. In order:

  1. Close sharkfin, or the browser tab. While either is open it keeps trying to reach the board.
  2. Unplug the cable, wait ten seconds, plug it back in. The board needs to lose power, not just reconnect.
  3. Fn + Home turns the lighting back on if the backlight looks dead.
  4. Fn + Esc, held for about three seconds, resets the board's settings.
  5. Still wrong? Open sharkfin and use Device, then Factory reset.

None of this touches firmware; nothing here can leave the X87Ultra unusable.

X87Ultra revisions

Device IDUSB IDControllerFamily WritableLayout
26603151:502dry5088_sg9035_8k_1k_socgen2yesafter a one-time check
28523151:5030ry5088_sg9035_3m_8k_1kgen2yesafter a one-time check
34383151:504cry6609_sg_9089_3m_8k_8kgen2yesafter a one-time check

Other Attack Shark boards

Beat75 · K75RGB · K85 · K85PROHE · K86 · M86 · R68HE · R82HE · R82PROHE · R85HE · R85Ultra · R86HE · R86PRO · R86PROHE

All Attack Shark keyboards →