Dynamo lights do solve this issue nicely.
For my battery lights, my solution is to always charge the light on the bike. I only buy lights that charge by plugging a cable into them (which is like 90% of all lights nowadays), then I put the chargers by the lights and just plug in the chargers at the end of every ride. Modern chargers with lith-ion batteries turn themselves off automatically, so it works well.
Still possible to forget to charge everything all at once, but it's either all charged or none of it is.