I've used HyperX's Alloy Elite for a few years now and it's still going strong: https://hyperx.com/collections/keyboards-mice/products/hyperx-alloy-elite-2-mechanical-gaming-keyboard?variant=41031691468957.
Has most of the features you're looking for. One thing is Linux - I'm not sure if it has "Linux" support like you're looking for, but it does work like a normal keyboard on Linux. I've never used macros or any customizing features for it on Windows, and thus don't use anything like that on Linux either. Media controls work perfectly fine on Linux.
The other concern is hot swapping switches - I've never done that either, I have stuck with my brown switches since I got it. Only real customizing I've done is to change the keycaps to pudding style.
It's unlikely but if she wants Japanese riichi mahjong and not solitaire style, Kemono Mahjong is a really solid app. No ads or micro transactions (the only in app purchase is to optionally support the dev for $1/month), full feature, minimal to no tracking (email address for online game purposes). It's not open source or free but it's only $3 one time purchase.
I don't have any suggestions for solitaire/tile matching mahjong, unfortunately. Microsoft's app is not malware but will be datamine galore. It also has ads unless you pay per month. Anything else, id be leery of the security of the app and your data.