551

Chrome supports two-finger swipes left/right in order to browse back/forward in the browser history. Unfortunately, Chrome handles this differently to other macOS applications, and it's far too easy to accidentally trigger it while you're in the middle of a long down/up scroll, which needless to say occurs often.

I generally like the gesture, and things like Preview, Safari, and other application have implemented it much better, where you cannot blindly navigate back/forward so long as you have begun to scroll up/down.

How do I selectively disable two-finger back/forward navigation in Chrome?

13
  • 16
    This sounds like a poor implementation on Chrome's part. Have you considered filing a bug?
    – jtbandes
    Commented Aug 9, 2011 at 22:43
  • 3
    That's not a suitable answer by virtue of the fact that (in theory), any other channel will eventually have the current state of the dev channel. Commented Aug 10, 2011 at 16:37
  • 5
    It's also easy to do if the page is wide and you are simply trying to scroll all the way back to the left.
    – Michael
    Commented May 13, 2016 at 20:08
  • 4
    Judging by the number of votes and views on this page, this should be disabled by default.
    – rouble
    Commented Jun 21, 2018 at 2:46
  • 7
    The only time I've ever used this feature is by accident Commented Aug 6, 2022 at 6:32

8 Answers 8

601

I know its over a year later, but I had the same question, and then figured out the answer myself.

Open terminal and type:

defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool FALSE

Then restart Chrome.

Now you can have it enabled system wide, and just disabled for chrome. By the way, this works for any app, just replace com.google.Chrome with the bundle identifier of the target app.

If your interested in how it works, the AppleEnableSwipeNavigateWithScrolls is the global setting, that can be overwritten for any specified app.

Hope this helps someone in the future.

31
  • 39
    Oh yes. Oh my god yes. This is EXCELLENT. It helped me, NOW. THANK YOU! Commented Jan 28, 2013 at 3:00
  • 28
    I want to create a hundred accounts just to keep upvoting this answer as many times as humanly possible.
    – Scott
    Commented Jul 16, 2013 at 13:11
  • 8
    Works for me on Mavericks without the .plist
    – Billy Moon
    Commented Nov 12, 2013 at 11:06
  • 6
    Tried this in Yosemite and it doesn't seem to work (even after restarting Chrome). This is super annoying - especially when I am entering information (say, writing an answer on SE), and scroll to check something - it's rather easy to end up going back, and losing your edit. Does this answer need an update for Yosemite?
    – Floris
    Commented Dec 29, 2014 at 15:52
  • 4
    For Yosemite + Chrome latest stable 47.0.2526.106 (64-bit): defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool FALSE works perfectly for me after restarting Chrome. (Note previous answers mentioned defaults write com.google.Chrome.plist AppleEnableSwipeNavigateWithScrolls -bool FALSE but the extraneous .plist suffix made it a NOOP.)
    – cweekly
    Commented Jan 7, 2016 at 19:24
238

I went into the System Prefs and changed the Page change gesture from two fingers to three (OSX Lion). The three finger swipe seems to be more responsive at any rate and I'm usually only using two fingers for everything else.

System Preferences > Trackpad > More Gestures > Swipe between pages

9
  • 32
    ...this works, though you're also changing the setting for every other app (including Preview). I like this solution and it's what I'm doing, but I'm hoping the Chrome people will read this thread and see that they need to offer a fix within the browser.
    – Eric
    Commented Mar 27, 2012 at 17:04
  • 1
    Also works for Mountain Lion.
    – Nakilon
    Commented Aug 4, 2013 at 16:56
  • 4
    IMHO this is a better solution than changing the Chrome defaults with the command line command. Commented Nov 26, 2014 at 2:13
  • 2
    Works in Mavericks when the command line option did not.
    – atwixtor
    Commented Dec 12, 2014 at 15:12
  • Works fine in Yosemite also. Some people might like the swiping/gesture stuff but I don't really, so I changed it to three-finger swipe (which should avoid false positives). Commented Jul 23, 2015 at 19:59
62

Summary:

It looks like Google Chrome uses Apples default gestures, so by disabling Apples gestures you disable Chromes. However, you probably still love some gestures like I do. For that get BetterTouchTools.

Disable Google Chromes Gestures

You can disable chromes gestures by going to System Preference > Mouse OR Trackpad > More Gestures > and uncheck Swipe between pages.

Keep the Gestures You Want

I still love gestures so I downloaded BetterTouchTools which allows me to make the gestures I want. I disabled all apples gestures then created my own. You can get very custom with gestures this way. Or if you prefer, leave some of apples gestures on and use BetterTouchTools for the more custom ones.

9
  • How do you enable the Swipe between pages gesture for other applications?? The gesture is missing in the BetterTouchTools. Commented Sep 26, 2012 at 13:48
  • @PetrPeller Each application should have its own keyboard shortcut for swiping between pages. In BetterTouchTools you can setup custom gestures for each application. Setup an new application, use whatever gesture you want for a swipe, then enter that applications keyboard shortcut for the gestures action. Make sense?
    – zechdc
    Commented Sep 26, 2012 at 15:50
  • @zechdc But that way I would have to set up every single application separately and I would miss the animation as the gesture would be translated into keyboard shortcut. It's a pity that the BetterTouchTools can't just disable the 2-finger swipe gesture for Google Chrome and leave default behaviour for different apps. Commented Sep 26, 2012 at 18:04
  • @PetrPeller I agree. Sorry I can't be of more help.
    – zechdc
    Commented Sep 26, 2012 at 20:50
  • 1
    @DavidAmmouial, true. When I wrote this answer BetterTouchTools was free. I no longer use it because this hasn't been an issue for more anymore. At the time, 9 years ago, it worked well.
    – zechdc
    Commented Sep 6, 2020 at 3:57
52

There are two different properties, one is for the Trackpad: AppleEnableSwipeNavigateWithScrolls, the other is for the Mouse/Magic Mouse: AppleEnableMouseSwipeNavigateWithScrolls.

So you need to execute one or both of these commands:

defaults write com.google.Chrome AppleEnableMouseSwipeNavigateWithScrolls -bool false
defaults write com.google.Chrome AppleEnableSwipeNavigateWithScrolls -bool false
3
  • 2
    Thanks so much for this! Couldn't figure out for the life of me why this was working for everyone else but me—it was because I'm using a Magic Mouse and needed AppleEnableMouseSwipeNavigateWithScrolls. Commented Apr 10, 2019 at 19:57
  • This is the answer needed if you're using an Apple Magic Mouse 2. Commented Aug 29, 2020 at 7:29
  • awesome, I almost got crazy about this, when some pages needed vertical scrolling and instead it navigated ...
    – Karl Adler
    Commented Sep 5, 2020 at 11:30
15

I also tried the terminal command on Yosemite, it didn't work for me.

And then I tried uncheck "Swipe between pages" in mouse settings, and it worked.

enter image description here

1
  • In MacOS Sonoma 14+, in System Settings > Trackpad > More Gestures, you can select for Swipe between pages = Swipe with three fingers instead of disabling altogether and keep the two finger scroll. Commented Aug 27 at 22:59
14

Chrome Canary users should use:

defaults write com.google.Chrome.canary AppleEnableSwipeNavigateWithScrolls -bool FALSE
2
  • 2
    During my testing the com.google.Chrome.canary.plist should be com.google.Chrome.canary. Commented Sep 5, 2014 at 3:08
  • I used com.google.Chrome.dev to enable it on the dev version (which now has it disabled by default) thanks for the inspiration
    – Sodj
    Commented Dec 14, 2020 at 18:40
8

As this ironically seems like the Answer for non-MacOS systems, least as of ChromeOS 131 this is available in Settings (for the system, not Chrome) > Accessibility > "use a swipe gesture to navigate between pages" (toggle off)

You may need to activate #enable-accessibility-overscroll-setting in chrome://flags to show this option in the Accessibility panel (though I honestly have no idea why, given at least to me it's an incredibly annoying "feature", and further given Chromebooks appear to mandate a hardware back button..)

chromebook us qwerty

chromebook uk qwerty


Original Answer

This is available as the #overscroll-history-navigation flag in chrome://flags

Overscroll history navigation
History navigation in response to horizontal overscroll. – Windows, Linux, Chrome OS

#overscroll-history-navigation

There is an option called "disable click" on that. Then just restart Chrome.

3
  • 5
    Dont have such flag on MacOs Chrome Version 98.0.4758.102 (Official Build) (x86_64) Commented Feb 24, 2022 at 6:32
  • 1
    @AlexandreG you are correct, it appears that flag is only exposed on Windows, Linux, Chrome OS Commented Apr 15, 2022 at 7:51
  • The only working solution for Google Crome on Windows 10. Thanks! Commented Jan 28, 2023 at 4:52
6

The only way I'm currently of is two disable two-finger page swiping system-wide, from the Trackpad section of System Preferences. I wait patiently for Chrome to either fix its implementation, or at least provide an app preference for disabling the feature.

1
  • 1
    I don't expect them to ever fix this. They've been arguing in favor of an even stupider mis-feature for years, where hitting the [delete] key will go back a page if no fields have focus. From a usability perspective, Chrome is a steaming pile 💩. It's main redeeming factors are (1) a superior Inspector, and (2) more and better extensions. Otherwise it would be worthless.
    – iconoclast
    Commented Dec 2, 2015 at 23:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .