yeah, software is kinda solved. i reverse engineered gen 1 apple tv remote in ~45 minutes?
it runs on linux over bluetooth, open source