A keyboard that you can fully customize on Linux, and is just as good or better than System76's Launch keyboard

I really wanted to get the System76’s Launch keyboard, but it’s unreasonably expensive as someone who lives at the hat of America.

Is there an alternative that is

  • Fully customizable on Linux (via an app)
  • Reasonably priced
  • Macro keys (preferable)
  • Can save settings to firmware (preferable)
  • Multiple profiles