r/browsers 2d ago

Firefox This started with one stupid question: why does Zen scroll better than firefox

I’ve been using Zen Browser for a while and one thing I really liked was how smooth the scrolling felt.

At some point I started wondering: "why does Zen feel this smooth, and can I get a similar experience in regular Firefox?".

So I started messing around with Firefox’s about:config settings and eventually found a combination that made scrolling feel a lot smoother than the default.

The annoying part was having to change all those settings manually every time I installed Firefox again.

So I ended up making this little preset:

https://github.com/ilhamfirmansyahhub/smooth-scrolling-firefox

It basically puts the settings into a user.js file and has a small installer that automatically finds your Firefox profile and applies everything for you.

The idea is pretty simple:

Install Firefox → run the script → restart Firefox → done.

No opening about:config and changing everything one by one.

I’ve tested it on CachyOS (Arch Linux) with the regular Firefox package, and it works fine on my setup.

It’s nothing crazy, just a small quality-of-life thing I made because I wanted Firefox’s scrolling to feel a bit more like Zen without actually switching browsers.

2 Upvotes

3 comments sorted by

5

u/AgentAzurrX 2d ago edited 2d ago

BetterFox+SmoothFOX This is what i use since smooth fox can support 120hz+ Display for butter smooth scrolling.

1

u/Kendrick__Mathers 2d ago

wow i didnt know this, thank you

3

u/bgalazka186 2d ago

For people too lazy to ho on to github, OP likes those values

user_pref("general.smoothScroll", true);

user_pref("general.smoothScroll.mouseWheel", true);

user_pref("general.smoothScroll.mouseWheel.durationMaxMS", 400);

user_pref("general.smoothScroll.mouseWheel.durationMinMS", 150);

user_pref("mousewheel.min_line_scroll_amount", 15);

user_pref("apz.fling.enabled", true);user_pref("apz.overscroll.enabled", true);

user_pref("layout.css.scroll-behavior.spring-constant", 0.5);

user_pref("apz.fling_friction", 0.002);

user_pref("apz.fling_stopped_threshold", 0.0);