Changelog
What changed in each release, newest first. The same text ships with every release.
0.9.4
Live travel. On a board with magnetic switches, plugged in by cable, the Switches tab can show how far each key is pressed as you press it, in millimetres. With a key picked, it keeps the deepest point you reached and the largest lift that did not let go, and sets the actuation point or the rapid trigger release step from them with one click. Press every key to the bottom and it says which ones read short. Drawing a board that has no picture, a key pressed on it names its slot, so the drawn key takes the right label. Worked out from the board's own firmware and a GamaKay TK75HE-V2 owner's capture in issue #67.
Travel values read right on boards with firmware 5.00 and later. Those boards count travel in half-hundredths of a millimetre; sharkfin took every board as hundredths, so the Switches tab showed double the real travel and wrote half of what was set. The scale now follows the board's firmware version, as the vendor's software does.
0.9.3
The Linux AppImage can be updated in place from this release on. AppImageUpdate fetches the next one. The 0.9.2 file has no update instructions, so that copy is downloaded once.
The AppImage catalog page shows the Keys page on an Attack Shark X86.
macOS asks for Input Monitoring again.
0.9.2
Linux downloads start on Ubuntu 22.04 and Debian 12. The 0.9.1 packages needed a C library from 2024, so those systems refused to open them.
Atas A75 and the Kwumsy K3 are in the registry, from owners' reports. The pictures matched on the boards.
0.9.1
Pictures go to the slot you choose. Boards whose display holds more than one picture, five on the Gamakay TK75 TMR, used to get every upload in the first slot while the display could be showing another. The Device tab now asks which slot, says which one it wrote, and the data bundle records whether the display accepted the picture.
Akko 3098B is in the registry, from an owner's report with the picture built in. Its settings live on the keyboard interface, which on macOS needs Input Monitoring permission: the app now asks for it and can open the settings pane. Contributed by Shiroki Satsuki.
0.9.0
Pick which switch is fitted. Some boards take more than one switch model, and a few take mechanical switches in the same sockets as magnetic ones. The board has to be told what is in each socket, or the key does not read right. The Switches tab now offers the models a board takes, per key or for every key at once, on the 446 boards that list any. The Gamakay TK75 TMR from issue #63 is one, with mechanical among its choices.
0.8.6
The firmware version reads right on newer boards. Many boards answered the old version request with zeros and showed as 0.00. The app now reads the version where those boards keep it.
The data bundle asks one more question. The read sweep now includes the second version request the vendor's software sends on connect, so a report says a little more about boards with a display.
Akko 5075B Plus-S in Mac mode connects. In Mac mode the board keeps its settings on the keyboard's own interface. The app and the browser build now look there for it. Its picture has the bottom row in the right order.
0.8.5
A key change that the keyboard drops is retried the long way. Some firmware ignores the command that changes one key. The app now reads the key back after writing it and, if the change did not land, rewrites the whole keymap instead, the way the vendor's software does. It says so once, and Setup's report notes it. Each change then takes a few seconds.
Keyboards in Mac mode are found. A board switched to Mac mode presents itself as an Apple device. That id is now on the list the app and the Linux permission rule match, so the board shows up either way.
Akko 5075B Plus-S is in the registry from an owner's report, with its picture, four profiles and edge light.
0.8.4
Remapping works on the Akko PC75B Plus+. Its firmware ignores the command sharkfin used to change one key, so a remap was accepted and then dropped. The app now rewrites the whole keymap on this board, the way the vendor's own software does. Its siblings on the same firmware are marked to do the same once Setup has confirmed their command set.
Akko PC75B Plus+ is in the registry with its picture, four profiles, debounce, sleep timers and edge light, from an owner's report.
0.8.3
A data bundle says when it was cut short. If the keyboard stopped answering partway through collecting one, the app handed back a file that simply ended, with nothing in it to show it was incomplete. It now stops and says the board needs replugging.
The Contribute tab explains an empty list. A keyboard can be plugged in and typing and still not appear there, because sharkfin only sees a board that exposes a settings interface it speaks. The page says so now instead of showing nothing.
Refusing an oversized picture says why. A frame too large for the board's firmware to count now reports its size and the limit, rather than saying only that it was too big.
0.8.2
66 more keyboards. The registry holds 1382 boards, 1143 of them writable without setup. New names include the Hator HE180 and HE165, Keydous NJ98EP in five European layouts, QwertyKeys NEO98 HEW, Epomaker Glyph, KiiBoom MMD FIT68 and Cybrix30, cherry MX8.2 TMR DE, WOMIER WD75-HE, DAGK K68, and the URX(R) Core 68HE Pro and 75HE. Several boards moved to the brand that sells them, so a keyboard may be listed under a different name than before.
Finding your board no longer downloads every picture. Matching used to fetch the whole collection to score it. It now scores against a digest of the pictures and fetches only the ones worth offering. This is most noticeable in the browser on a slow connection.
The Switches tab no longer throws away what you are editing. The app looks for the keyboard every few seconds, and the Switches and Device tabs read the board again each time it did, closing any open dialog and discarding changes that had not been sent. They now read again only when the board itself changes. Reported and diagnosed in issue #52.
The display clock can be set from the Device tab. On a board with a screen, Set clock writes this computer's time. Cable only.
0.8.1
ANSI boards no longer get an ISO picture. The firmware on many boards maps the two ISO-only keys whether or not they are fitted, and an Attack Shark K86 from issue #51 maps both plus the US backslash on an ANSI shell. sharkfin took the pair as proof of ISO and drew a key beside left Shift that was not there. The ISO picture is now offered only after you say no to the plain one, and Setup has a "My keyboard has no such key" button for the two keys it adds.
0.8.0
Setup. A keyboard sharkfin does not know can now be set up by its owner. Setup shows the picture and asks if it is yours, allows changes, has you press a few keys, turns the backlight red and asks what you see, switches profile and back, remaps one key you choose, and on a board with magnetic switches sets one key to a light touch and asks how it feels. Every write is read back and put back. What you answer is kept for that keyboard, so it works on your computer from then on, and it rides along with the data bundle so it can work for everyone with the same board. Setup runs over the cable only. A board that already works does not need it; the Contribute tab has a "Run setup" button all the same.
Switch settings on boards whose firmware has not been read can be opened by Setup's felt test, for that keyboard only: the write has to read back and you have to feel it.
Screen Colour read back as red. A board sitting in that mode showed red on the Lighting tab whatever colour it had; it keeps its own colour now.
0.7.11
The rainbow toggle is right on 106 more boards. The vendor's driver carries, for each board, which way its firmware reads the colour flag. Where a board's firmware is not published, sharkfin now takes the answer from there instead of assuming. The MonsGeek FUN60 PRO from issue #49 is one of them: picking a colour gave a rainbow and asking for the rainbow gave one colour.
The "Swap them" link shows whenever a colour is in play, in either direction, and the data bundle prints which way the board is read and by what evidence.
0.7.10
162 more boards. Akko, MonsGeek and Hator ship the same driver under their own names with their own board tables, and those tables carry boards the shared catalogue does not: 97 Akko, 36 MonsGeek and 29 Hator, the Hator SKYFALL 80 PRO from issue #48 among them. The registry is 1316 boards. Akko's report vendor id 38ee, so on Linux the udev rule below needs installing again. 144 of the boards with a display can take a picture, 18 more than before.
The Display section says why there is no upload on a board whose display size is not on file, instead of showing three rows and nothing else.
0.7.9
The rainbow toggle was backward on some boards. Turning it on gave one solid colour and turning it off gave the rainbow. Which way round a board reads it now comes from the board's own firmware, which settles 33 of them, mostly Akko and MonsGeek, plus the AttackShark X65HE and the Keydous AJ68-CP. On any other board the Lighting page offers to swap the two and remembers the answer for that board. The edge light follows it.
The window no longer dies on Wayland with an Nvidia card. It opened blank and the app was gone in under a second. The drawing path behind that is switched off on those two together, and left alone everywhere else.
0.7.8
The Lighting page shows the effect. An animation of the board's LEDs runs above the effect chips and follows every chip, colour and slider. It is timed from the keyboard's own firmware, mode by mode, so Flow, Layers, Sine wave and the rest run at the board's pace. Layers and Sine wave play the firmware's own scripts. The shapes of the other effects are drawn to match by eye.
0.7.7
VGN Neon75 Extreme under its second device id (3391) is supported, with the picture built in from the owner's keymap; the earlier revision (3288) gets the same picture. Reported in issue #44.
One bundle. The Contribute tab's bundle now carries the keyboard picture and your answer about it, so a board report is a single paste. The Keys page's "send it in" opens the Contribute tab instead of copying a second bundle. A board drawn from its built-in picture is no longer asked for a report.
0.7.6
The Keys page is the picture. Click a key and the cap itself takes your typing: type a name and Enter picks the match, or press the key you want on another keyboard and it is assigned on the spot. The picker opens on the key with search, recents and every group. The cap flashes when the write lands.
Pictures have controls. A Picture menu on the Keys page edits the current picture, tries another from the collection, or sends yours in. A picture offered for confirmation can be fixed in the editor instead of rejected. Drawings and picked pictures are remembered on boards that have a built-in one too.
One look across the app. Sections replace cards on every page, choices are chips, the one primary action on a screen is filled. The editor's presets are drawn as small keyboards with their match counts.
0.7.5
Draw your board. When no stored picture matches your keyboard, the Keys page lets you draw it instead of sending you to keyboard-layout-editor.com. Start from a preset (60% to full size, ISO, knob) or from the closest stored picture; each preset shows how many of its keys your board has. As you draw, a key your board does not have dims, and the keys it has that are not drawn yet are listed to add with one click. The drawing goes through the same confirmation as any other picture, and its bundle bakes it in for everyone with the board. Pasting a keyboard-layout-editor drawing still works and opens in the editor.
0.7.4
KOODO Solar is supported (device id 1087), with its picture built in from the owner's keymap. Reported in issue #42.
0.7.3
Switch writes closed on 23 gen2 boards. 0.7.1 let boards whose internal name starts with yc3121_ write their switch settings whatever their command set. That prefix names the yc500 lineage whose firmware was read; on gen2 (the JEDEL KL166 and 22 siblings) no image has been read, and the KL166's firmware does not take the packets. Those boards are read-only again until one is. Reported in issue #41.
0.7.2
Lighting per board. The Lighting page now offers the effects your board's firmware has, from the vendor's own per-board table, instead of one list for everyone. 26 boards (Akko's V5 HE lineage and siblings) get Train and Endless and lose two wave directions they never had; the MK12 and MK14 get brightness 0 to 7. Most boards keep their 18.
gen2 speed. Boards on the gen2 command set ran every effect one step slower than the vendor app at the same slider position and could not reach their fastest. Read out of the X65HE image: the speed byte is a frame divider that starts at 0 there, at 1 on yc500.