Keychron M6
A mouse with the memory of an elephant
I just wanted a mouse with programmable buttons that works on a PC without any software running.

Keychron M6 does exactly that. There is a web version of a customization software, so you can technically set everything up even on Linux, but I can’t say I had a great experience with it, so having a Windows machine is a must.
But I just set everything up once and forgot about it. I didn’t do anything fancy; I just created a couple of shortcuts, like opening a closed browser tab or moving a window to another monitor. You can do way more.
I also gave up on multi-PC connectivity. In order to use it, you need to connect via Bluetooth, after which you can swap between up to three machines. However, I never had a great experience with Bluetooth mice. That option is still there if I really need it, but I prefer using a dongle.
As far as I know, Logitech is the only company that makes mice and keyboards that can switch between multiple dongles. But if I ever need a multi-device setup, I would probably just go with on of those KVM switches, and get a simple one that’s only for USB devices.
I like the physical device itself. It has a slightly plastic feel, and the buttons are crunchier than I prefer. It can switch between a ratcheting and a free-spinning wheel, but not automatically. And it’s much lighter and cheaper than premium mice from Logitech, for example.
I also have Razer Orochi V2, which I got for the same reasons. It does essentially the same things, but has fewer buttons. However, I rarely use it, so I can’t fully vouch for it.