After decades of frustration with shower curtain rings coming undone, breaking, not being filled with helium, or not being Diane Sawyer ear rings, there's real momentum behind this idea. As usual, the designs on the internet all suck.
![](https://cdn.hackaday.io/images/8097421658171726925.jpg)
![](https://cdn.hackaday.io/images/7218041658171728020.jpg)
![](https://cdn.hackaday.io/images/4523121658171728168.jpg)
![](https://cdn.hackaday.io/images/5279661658171729064.jpg)
Printed a full set over 3 hours. They also work as ear rings.
I don't have your problem with the tub being narrower than the door, but the fix may be the same: Cut and sew the curtain so that it follows the shape of the tub instead of trying to do the impossible drape over it.
If you put a fixed bevelled ring over the rail near the end, then the curtain ring is pushed over it, and won't slide back from the end on its own. Alternatively, put a super magnet inside an aluminium curtain rod, and another in the curtain ring. This is what I currently have in my new shower - it's nice as it pulls the curtain closed when you get near the end (rather than needing you to actively push it over the fixed ring on my old steel rod)
Imagine a pendulum hung below the last (edge) curtain ring. If you pull the pendulum away from the wall (to the middle) gravity pulls it back towards the wall.
You can also have a weight that is near the bottom but somewhat toward the middle from the pendulum line beneath the edge curtain ring. This weight can push the curtain towards the wall.
For that to happen you have to hold the curtain ring in place at the edge as above (or the pendulum effect just opens the top of the curtain), and the curtain fabric itself has to be able to act like a pendulum string i.e this works with some curtains materials but not others.
As you can tell I have rebuilt my shower box recently, adding a shower dome on top and solving the curtain issues. With hindsight, I regret not putting some hard drive magnets behind the liner plastic top and bottom both sides, when I installed it - too late now.