Here's a much a simpler solution, Kinto. I've been working on this for 3 years now.. and finally feel like I can contribute something back because of how well it works, unlike my last 2 attempts. It is intended for x11, and systemd based distros, but the concept will carry over to Wayland once I find a good way to implement it, despite the enhance security that makes it difficult to work with.
1) Gist (for those that just want to see the premise or implement their own alternating solution, edge cases not covered).
2) The full on installer that makes use of systemd, bash, and xprop. (Edge cases, like chromebooks are covered, it was surprisingly difficult to support, but I enjoy mine so everyone can benefit!)
The reason for Kinto, japanese for flip, is this - even if you perfected a key remapping for every normal GUI app using some other method, you're not going to have the same Terminal type of experience, easily, on Linux as you do on a Mac. And that is unfortunate - because Macs spoil us developers with a keymap that works surprisingly well for Terminal apps. The point of what I have done, by changing your keymap to 1 of 2 layout options via setxkbmap and the active app in use, is that it results in you having to create the fewest additional shortcut keys specific to any particular app.
Essentially, with this solution you're not fighting how to properly create new shortcut keys or trying to avoid shortcut conflicts in your Terminal apps vs the rest of your GUI apps. You simply get the best of both words, and it works as seamlessly as it can - beyond including default shortcut config files for various terminals and popular text editors, which I may include later. Even text editors like Sublime don't simply swap out the Cmd key with Ctrl on every shortcut, but it aligns properly about 95% or more of the time I'd say.
And talking about Wayland I do have a proof of concept of how to make this keymap keyswap trick work on KDE Plasma 5 with an existing widget that pulls in app names. If anyone has a better solution then I am all ears, especially if it can work on x11 as well. Xprop is completely sufficient on x11, but obviously no use on Wayland.