Repository navigation
Two mice that were being named after the wrong model, a binding that turned into a mouse click when you saved a profile, and a dongle that could follow you onto the wrong mouse. Measured by @pogojonson, @f-o-o-g-s, @bluesceada and @variasjon.
Your X2 CrazyLight is called an X2 CrazyLight again
Every Pulsar X2 CrazyLight on v0.1.33 was shown as "Pulsar X2 Mini Wireless". The wireless mice on the Nordic chipset are told apart by an identity byte looked up in a table taken from Pulsar's own Cfg.ini — and that file does not list the CrazyLight at all, so the byte an X2 CrazyLight answers with (0x03) reads as a different mouse in it.
The CrazyLight line now has its own identity table, kept deliberately apart from the other, and reads the pair whole: cid 0x57 plus a mid that says which CrazyLight answered.
Pulsar X3 LHD CrazyLight Medium
New driver, contributed by @pogojonson, over both its connections. It is a CrazyLight mouse, so it speaks the CrazyLight's Nordic protocol under its own cabled ID — not the Sonix protocol of the X3 LHD that shares part of its name. Identity, settings, stage tables, writes, four profiles and battery-while-charging were all confirmed on the hardware.
Its dongle is the CrazyLight line's shared 5406, which is now asked which mouse it carries rather than assuming the one it was sold with.
A dongle no longer follows you onto a different mouse
Two bugs in how the app pairs a mouse's cabled and wireless halves, both found reviewing the above.
The shared CrazyLight dongle had a fixed partner declared for the model it ships with. With that dongle carrying an X3 LHD and an X2 CrazyLight plugged in to charge, the declared partner won and the app paired the dongle with the X2 — so pulling the dongle had the window follow onto the wrong mouse and write profiles to it while naming it as the same one. Asking now takes precedence over any declared pairing, in both directions.
And the dongle remembered which mouse it carried for as long as the app ran. Pair a different CrazyLight to it and it went on naming the old one. It is asked again on every connection now, the same way the Fusion2 dongles already were.
An arrow key stays an arrow key
A button bound to Left or Right Arrow was written into an exported profile as left or right — the same words the app uses for the mouse buttons, and the mouse buttons win when a profile is read back. So saving a profile and restoring it turned an arrow binding into a click, and the remap dialog showed a click.
Arrow keys are now written as arrowleft, arrowright, arrowup and arrowdown. Profiles already on disk still load: up and down restore the key as they always did, and left and right still mean the buttons, which is what they mean when you type them. A profile written before this that held an arrow binding cannot be told from a click and will not recover.
Media keys on the Nordic mice
Those mice have no media button mode. Pulsar's own software binds a media key as a keyboard-shortcut record with a different event type inside it, which @bluesceada pinned by binding Volume Up and then Volume Down and dumping the memory either side. So --button thumb1 vol+ writes what Fusion writes, where before it wrote a mode this family does not have.
The eight media names the app knew were never a limit of the hardware: @f-o-o-g-s bound three usages it had no name for and got the right key from Linux each time. calc, homepage and eject are named now, and any other HID Consumer usage can be given directly:
pulsar-mouse --profile 1 --button thumb1 'media(0x0226)'
The Fusion2 mice were reporting more than anything read
Three reports arrive unasked on the config interface of the X2A, X3, Xlite v4 and the 1K/8K dongles. One was read; @f-o-o-g-s decoded the other two on an X3, on its cable and through the dongle alike.
A profile changed on the mouse itself now reaches the app, so switching profile with a button no longer leaves a stale page on screen. And 04 <mask> says which buttons are down whatever they are bound to — including the two bits that turned out to be wheel ticks rather than buttons, which is the kind of thing that only shows up when somebody logs the pointer node next to the config node and counts 461 of them.
Also
- The Pulsar Xlite v4 offers its shortest lift-off, 0.7 mm. Pulsar's page claims it, which is the same evidence this driver had already declined once, so @variasjon wrote the value and read it back off the mouse instead.
- The Start on Login toggle is documented where it actually is, on the Tools page.
Full attribution is in the README.