Help setting up scrubbing between tabs on chrome

Hello, I'm brand new to BTT. I'm used to scrubbing between different tabs in a chrome window using 3 fingers on a track pad to move from tab to tab. I would love to add that feature to my mac.

I don't really know what I'm doing but I'm hoping to learn. Can anyone explain to me how to do this? Or direct me to some youtube videos that could explain?

Thank you!!!

Do you want to do this just for Chrome, or do you want to do it for other applications also?

The short answer is that you figure out what the hotkey is to do the thing you want (action) in the application that you want to do it in, then you set up a trigger that fires the hotkey.

For most of the applications I use, Shift-Cmd-] is Next Tab, and Shift-Cmd-[ is Prev Tab.
(This works in Firefox, Chrome, and VS Code at least).

So the simple way to do this is to create a Top Level Trigger on the gesture you want, then for that trigger add a Send Keyboard Shortcut, press the "click here to record shortcut" button, and press Shift-Cmd-]. (I don't use Trackpad Gestures, but if you select "Trackpad" from the upper left droplist there will be a big + button and you should be able to figure out which gesture you want.)

However, in general I have found that some actions require different hotkeys in different applications, so I do something slightly more complicated:

  1. Select "For All Apps" at the right, then create a Named Trigger for doing the action you want, and give it a useful name like "App_Next_Tab". Set the action for App_Next_Tab to be the usual hotkey for the action. In this case, Shift-Cmd-]
  2. Also in "For All Apps", create a Trackpad Gesture with the gesture that you want. Now set this gesture to activate the named trigger you just created (App_Next_Tab).

I have my StreamDeck+ set up so that one of the knobs triggers Next Tab, doing exactly the above. I also have one of this side buttons on my Logitech mouse set up to trigger the same named trigger.

There are actually multiple reasons this is useful:

  • (Most important) When you find some application that uses a different hotkey for the action. Then what you do is to add a new named trigger with the same name for that specific application, which fires the application specific (but different) hotkey. Once you do that, then your gesture always fires the App_Next_Tab trigger, but it will fire a different App_Next_Tab trigger depending on the foreground application.
  • (Helpful) When you are looking at your BTT config, it's a lot easier to see "App_Next_Tab" and know what a trigger is doing than to see Shift-Cmd-].
  • (Helpful) If you want to have more than one gesture that fires the command, you can just set the second gesture to also fire the named trigger. (Becomes especially useful when testing triggers from a floating menu.)

A better example of this is the command for going to the top/bottom of a document. In most apps this is Cmd-Up. However, in Word this is Cmd-Home. My StreamDeck button always fires App_Home, but App_Home does something different in Word to get the same result.

(all problems can be solved by adding a level of indirection...)

@queuest, I was able to accomplish your use case using "3 Finger Swipe Right" and "3 Finger Swipe Left" Trackpad Gestures triggers.

The trick is to configure the triggers to "Repeat assigned action while fingers are touching" by toggling on the "Repeat assigned action" setting and then setting the "Repeat Rate" to a small number e.g. 0.12 (see screenshot). Next, assign each trigger to send the keyboard shortcut shift+cmd+] to scrub to the next Chrome tab to the right and shift+cmd+[ to scrub to the previous Chrome tab to the left.

If you copy and paste the two JSON strings below into your BTT configuration, then you'll duplicate the setup I have in the screenshot above:

[
  {
    "BTTActionCategory" : 0,
    "BTTLastUpdatedAt" : 1749712390.2185259,
    "BTTTriggerType" : 101,
    "BTTTriggerTypeDescriptionReadOnly" : "3 Finger Swipe Right",
    "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll",
    "BTTUUID" : "D19F333E-36B4-44D8-8376-139680E08F12",
    "BTTPredefinedActionType" : 366,
    "BTTPredefinedActionName" : "Empty Placeholder",
    "BTTRepeatRate" : 0.11711742728948593,
    "BTTEnabled" : 1,
    "BTTEnabled2" : 1,
    "BTTOrder" : 0,
    "BTTAdditionalActions" : [
      {
        "BTTActionCategory" : 0,
        "BTTLastUpdatedAt" : 1749711951.03107,
        "BTTTriggerParentUUID" : "D19F333E-36B4-44D8-8376-139680E08F12",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll",
        "BTTUUID" : "D1CAEFC8-6C70-44EB-957B-F838C64CF2EC",
        "BTTLayoutIndependentActionChar" : "]",
        "BTTShortcutToSend" : "56,55,30",
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1,
        "BTTOrder" : 794
      }
    ]
  }
]
[
  {
    "BTTActionCategory" : 0,
    "BTTLastUpdatedAt" : 1749711996.402643,
    "BTTTriggerType" : 100,
    "BTTTriggerTypeDescriptionReadOnly" : "3 Finger Swipe Left",
    "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll",
    "BTTUUID" : "B6C34606-9FDC-42FA-B16D-EEE560260F0E",
    "BTTPredefinedActionType" : 366,
    "BTTPredefinedActionName" : "Empty Placeholder",
    "BTTRepeatRate" : 0.12206464260816574,
    "BTTEnabled" : 1,
    "BTTEnabled2" : 1,
    "BTTOrder" : 1,
    "BTTAdditionalActions" : [
      {
        "BTTActionCategory" : 0,
        "BTTLastUpdatedAt" : 1749712033.9183102,
        "BTTTriggerParentUUID" : "B6C34606-9FDC-42FA-B16D-EEE560260F0E",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeTouchpadAll",
        "BTTUUID" : "B01F81DA-48DE-4AD9-A3B6-907FB193A66A",
        "BTTLayoutIndependentActionChar" : "[",
        "BTTShortcutToSend" : "56,55,33",
        "BTTEnabled" : 1,
        "BTTEnabled2" : 1,
        "BTTOrder" : 0
      }
    ]
  }
]

Note, it's a little finicky though. You'll have to play around with it. Hope this gets you in the right direction.