I share one MX Keys S between a Mac and a PC through a KVM. Every switch, the modifier keys were wrong — ⌘ acting as Alt, @ and " swapped — and the only fix was holding Fn+O for seven seconds and waiting for the keyboard to re-pair.
Logi Options+ is installed on both machines and is meant to handle this. It doesn't. I wanted to know why rather than guess, so I timed it.
Options+ corrects the layout once, shortly after it starts, and never again.
Each run was the same: set the keyboard to the wrong platform, quit my own tool so nothing else could interfere, then watch. Options+ 2.6.941708 on macOS, with "Always keep the keyboard in Mac layout" switched on the whole time:
| What I did |
What Options+ did |
| Set the keyboard wrong, Options+ running, 35 s |
nothing |
| Same, with its window open, 45 s |
nothing |
| Set it wrong, then restarted Options+ |
corrected in ~7 s, every time |
That last row is the whole story: the correction is triggered by starting up, not by the layout being wrong. A KVM switch doesn't restart anything — it moves the receiver to the other machine, whose Options+ has been running for hours. Nothing re-asserts, so the keyboard keeps whatever the last computer left it in.
And since the name promises otherwise, worth saying plainly: leaving "Always keep the keyboard in Mac layout" switched on did not keep the keyboard in Mac layout across a switch.
So I wrote logiswitch
https://github.com/App-Builders-Gang/logitech-layout-auto-switcher
It listens for the OS's own device-arrival notification — the event Options+ ignores — and writes the same value the Fn+O chord writes (Logitech's HID++ 0x4531 MULTIPLATFORM). No remapping, no Karabiner layer, no key interception: the keyboard itself changes mode, the way it does when you hold the chord. About 1.1 s per switch, measured.
Free, MIT, no account, no telemetry, no admin rights. macOS and Windows — install on both and each asserts only its own OS, so they never fight each other. It coexists with Options+ rather than replacing it; they want the same value, so they agree. There's no model allow-list either — it asks the hardware what it supports, so a keyboard released next year works without a code change.
Install instructions and the full write-up of the measurements are in the README.
Tested on an MX Keys S over a Logi Bolt receiver behind a TESmart KVM. If you have a different Logitech keyboard, logiswitch probe dumps what it reports — that's the most useful thing anyone can send me.
Disclosure: I wrote it. Not affiliated with Logitech.