sc-controller is the solution I used, but they are currently in the process of adding the new controller. There is a fork that has already implemented it, although it needs to be rewritten to merge, since that fork's changes are vibe coded. Here is that fork
Its well designed software, and it even has quick switching between user created layouts and an overlay.
Linux only.

Yeah it was inactive for a while, but was forked, and that ones last commit was 4 months ago, and is now the canonical git repo. Thats the one I linked. Then just a little while ago it was forked again with those vibecoded changes. I presume they are going to reimplement it properly, there is an open issue where they are trying to clean up the fork for merging.