They are both cause when they spread untruth as truth and truth as untruth. Hannity, Rush and others more so for doing it for a long time. Trump was a symptom and now is a cause. You know what the green/purple ratio is and projected to be. Simply, you should draw district based on population, not make up of the population. You certainly should not be drawing district to cheat, and that's exactly what have been happening.
Agree w' you on Hannity and Trump. On gerrymandering, if you do have a good idea of green/purple from existing data, then you can draw those lines accordingly. This has happened in state after state. Only by mass migrations could people fight it at this point.
You could easily stop gerrymandering by comparing the ratio of the area of a district to the length of it's boundary to a square of the same area. You make a limit as to how much "rope" you can use for a given area based on a comparable square. For instance if the area of a proposed district is 100 square mile, that's equivalent to using 40 miles of rope to make that square. So you give say 25% extra rope to craft that district (50 miles) however they want but it stops them from drawing crazy districts because the wouldn't have enough rope.