Simple solution to get rid of gerrymandering: Create a pool of extra mandates, not assigned to a specific district. Distribute them to the parties however needed to make the overall vote proportional.
This way districts still have a representative, but there is no insentive for gerrymandering.
I'm not an expert but the mixed system is used in Hungary, and the result is that Fidesz (Orban's party), with ~50% votes, gets ~68% seats (just above 2/3 they need to have infinite power), third time in a row
The Hungarian system is basically two separate elections at once where the results are just added together. There are single-member districts where the candidate that wins the plurality of votes in the district is elected (almost always a Fidesz candidate). Then there are party list elections in larger multi-member districts where the party affiliation of the MPs elected is roughly proportional to the votes to each party in the district. There is no effort in this system to make the final results proportional.
Germany, New Zealand and devolved legislatures of Scotland and Wales use a different sort of system where the party lists are used to achieve proportionality. In a system like that, Fidesz wouldn't get a lot of seats from the party listes because they are way overrepresented already in the single-member districts.
This way districts still have a representative, but there is no insentive for gerrymandering.
This is a commonly known as Overhang seats in MMP: https://en.m.wikipedia.org/wiki/Overhang_seat