Well, the new MacOS Monterey adds third-party device support for battery life. This is great, but unfortunately, the Anne Pro keyboards that I have don’t honor it. They always report 100% battery even when dead, the only reliable way to tell battery life is to start the Obinskit utility and see what it says. As an aside, reports say that it gets about 7-9 hours without the backlight on. Personally I’ve found it to be better than that. It has a 1700 mAh battery and you can replace it. Although I tried to mod my Keychron and I destroyed the thing (the mechanical switch), so personally I can live with an effective battery life of about a week or so for 4-6 hours a day. There is an open source app called Akku which is supposed to be better but it was discontinued when MacOS Monterey added this support (although its buggy as you can see).
They ship with software called Obinskit which works great for USB connection and pretty well for Bluetooth. It works for a while, but now I get a WriteTo error on Bluetooth so there are definitely bugs. It let’s you add various keystroke macros and lighting controls. AS a reminder on the Anee Pro 2 there are lots of overloaded keys, so FN1 and FN2 are your friend. As an example, FN1 and a number key gets you the various function keys while FN2 and the number keys give you which Bluetooth to use from FN2-1, FN2-2, FN2-3 and FN2-4. And then for lighting FN2-9 turns changes the light pattern, FN2-0 darkens and FN2-“-” brightens and FN2-“+” brightens. You have to first download the light patterns with Obinskit. When you first start the application, you have to click the Hello World button or it doesn’t look for keyboards. The most critical parameter is General > Layout > Tap enable at 150ms. This let’s you use the Shift, FN1, FN2 and right CTRL keys as arrow keys, you just have to tap for less than 150ms and it will use them as arrow keys. And then Layout > Mac to get your Mac keys
Other keyboards like the Keychron K6 as an example don’t report any battery life at all, so maybe no reading is better than a false one 🙂