Horrible keyboard on the Librem 5

I don’t think that does justice to GNOME. With dconf/Gsettings there are many things configurable. If not, there are the shell extensions which can let you modify anything within GNOME shell. Okay, the extensions often break with new releases but there is work ongoing to improve that and after a short time they get mostly fixed anyhow.