Skip to content

Use the Trackpad

Ferris Sweep Pro versions with the Cirque trackpad can handle pointer movement, clicks, scrolling, and basic drag operations without moving your hand to a separate mouse.

Ferris Sweep Pro trackpad

ActionHow to use it
Move cursorSlide one finger on the trackpad.
Left clickTap once anywhere on the trackpad.
Double clickTap twice quickly.
Right clickTap the lower-right area of the trackpad.
Vertical edge scrollSlide up or down along the right edge of the trackpad.
Hold-to-scrollHold Z, then move on the trackpad. Pointer movement becomes wheel movement while held, so horizontal finger movement sends horizontal wheel events and vertical finger movement sends vertical wheel events.
Horizontal edge scrollHold Z, then use the right-edge scroll gesture. Sweep Pro converts the native right-edge wheel event into a horizontal wheel event while Z is held.
App-level horizontal scrollSome desktop apps also treat Shift + vertical wheel as horizontal scroll. This is handled by the app or operating system, not by the trackpad firmware.
X hold left clickTap X to type the character, or hold it for left click. This is useful for drag selection without switching layers.
Mouse click combosPress D + F for left click, E + R for right click, or C + V for middle click. These combos use a short 25 ms timeout so normal typing is less likely to trigger them by accident.
Browser navigation combosPress F + G for browser back (MB4) or R + T for browser forward (MB5).

Z still types a normal character when tapped, and only enables drag-scroll while held. X still types a normal character when tapped, and becomes left click when held.

The current Sweep Pro firmware boots the Cirque controller in absolute mode:

data-mode = "absolute";

The Mode key on the mouse layer runs &crq_mode CIRQUE_MODE_TOGGLE, which switches the Cirque controller between relative mode and absolute mode at runtime. Switch modes while your finger is off the trackpad for the cleanest transition.

ModeWhat it feels likeSweep Pro behavior
Absolute modeThe driver reads absolute finger coordinates, then converts them back into REL_X/Y pointer movement. This is the boot default and gives the firmware more control over gesture thresholds.Supports software tap detection, lower-right right-click zone, tap-drag, right-edge vertical scroll, edge auto-pan, hold-to-scroll with Z, runtime pointer speed, and runtime scroll speed.
Relative modeThe Cirque ASIC reports mouse-like relative packets.Supports pointer movement, tap buttons, native right-edge vertical scrolling, GlideExtend, hold-to-scroll with Z, runtime pointer speed, and runtime scroll speed.

Use the default absolute mode when you want the more tunable software gesture layer, especially tap-drag and edge auto-pan. Switch to relative mode when you want the ASIC’s stock relative packet and GlideExtend behavior. If the pointer feel changes after pressing Mode, press Mode again to switch back.

For pointer controls that are easier to use as keys, switch to the mouse layer:

  1. Hold the left thumb Tab layer key.
  2. Press Space to toggle the mouse layer.
  3. Press Q or P to leave the mouse layer.

Ferris Sweep Pro mouse layer

On the mouse layer:

  • MB4 and MB5 are browser back and forward.
  • MCLK, LCLK, and RCLK send middle, left, and right mouse clicks.
  • The arrow-style mouse keys move the pointer or send wheel events without using the trackpad.
  • Z / X adjust pointer speed down/up in 0.01x steps. Hold either key to repeat quickly.
  • C / V adjust scroll speed down/up in 0.01x steps. Hold either key to repeat quickly.
  • The left encoder adjusts pointer speed coarsely; pressing it resets pointer speed to 1.00x.
  • The right encoder adjusts scroll speed coarsely; pressing it resets scroll speed to 1.00x.
  • Pointer speed is adjustable from 0.10x to 4.00x; scroll speed is adjustable from 0.10x to 10.00x.
  • Speed settings are saved separately for USB and each Bluetooth profile.
  • Mode toggles the Cirque trackpad between relative mode and absolute mode.
  • The same click/navigation combos also work here: E + R for right click, D + F for left click, C + V for middle click, F + G for browser back, and R + T for browser forward.

Sweep Pro’s right half defines the Cirque hardware in sweep_right_trackpad.overlay:

  • I2C address 0x2a with data-ready-gpios.
  • sensitivity = "2x".
  • startup-delay-ms = <600> to give the controller time to recover after resets or firmware flashing.
  • idle-packets-count = <3> so relative-mode tap/drag release can be detected after finger lift.
  • primary-tap-enable, glide-extend-enable, and invert-y. GlideExtend is only used after switching to relative mode.
  • Absolute-mode tuning for touch threshold, tap timing, tap-drag, lower-right secondary tap, edge auto-pan, and right-edge scroll.

The shared keymap connects the trackpad listener to two processors:

&glidepoint_listener {
input-processors = <&pointer_processor 0 0 &drag_scroll_processor 1 8>;
};

pointer_processor handles runtime pointer speed when Z is not held. drag_scroll_processor handles hold-to-scroll, native edge-wheel scaling, and the horizontal-when-enabled conversion that turns right-edge wheel into horizontal wheel while Z is held. Both processors use multiplier-based runtime speed rather than fixed speed levels.

  • Edge scrolling is a right-edge gesture, not a two-finger laptop-style gesture.
  • Hold Z when you need firmware-generated horizontal wheel events from the trackpad.
  • To avoid relying on app-level Shift + wheel behavior, hold Z while using the right-edge scroll gesture, or use the mouse layer’s SCRL_LEFT and SCRL_RIGHT keys.
  • For text selection or window dragging, hold the D + F left-click combo, use the mouse layer’s LCLK, or double-tap the trackpad and keep your finger down on the second tap.
  • Use NXTKB Input Tester to check mouse buttons, pointer movement, and wheel events in the browser.
  • Confirm that your keyboard version includes the Cirque trackpad.
  • Turn on both keyboard halves. The trackpad is on the right half and sends input through the split connection.
  • If the right-hand trackpad does not respond, especially right after flashing firmware to the right half, press the reset button on the right half once.
  • If only keys work, but the pointer still does not move, power-cycle both halves and try the right-half reset again.
  • If right-edge scrolling works but moves on the wrong axis, confirm whether you are holding Z. Firmware-level horizontal conversion only happens while drag-scroll is enabled.
  • If scrolling goes the wrong way for your system preference, adjust the operating system’s mouse or touchpad scroll direction setting.