Skip to content
uqqu edited this page Jun 9, 2026 · 3 revisions

Gestures are one of Cadans' most advanced input types.

Like any other assignment in Cadans, gestures can trigger actions, participate in chains, define window-specific behavior, react to context, and control their own execution logic.

What makes gestures special is the set of capabilities unique to gesture input: independent gesture pools, configurable recognition, continuous gesture chains, and guided navigation through Live Hint.

As a result, gestures can be used both as simple shortcuts and as building blocks for much larger workflows.


Gesture triggers

Gestures in Cadans are attached to any keyboard key or mouse button, called gesture triggers.

Once a gesture is assigned to a key or button, it automatically becomes a trigger without affecting or limiting the key’s other assignments.

When a trigger is pressed inside an active gesture pool, Cadans enters drawing mode and begins interpreting mouse movement as gesture input, displaying a visual trail and contextual hints.

Any number of gesture triggers may exist simultaneously – each trigger maintains its own independent gesture assignments, pools, behaviors, and possible continuations.

The same input may still participate in taps, holds, chords, modifiers, and chains according to the global Cadans logic.

Gestures simply become another available event type for that input.

This allows gesture systems to remain local to specific triggers rather than becoming a single global collection shared across the entire application.


Gesture pools and spatial organization

Even within a single trigger, gestures do not have to belong to a single gesture set.

Instead, gesture assignments can be divided into independent pools selected by where the gesture begins.

Each pool may define its own boundaries, visual preferences and sets of assignments, to separate different workflows, applications, or categories of actions.

Cadans provides 8 configurable outer gesture pools around the screen edges and corners, plus one central pool.

The remaining center area can either function as a single gesture pool or, if you need more structure, can be split using a grid or diagonal layout into 4 additional subpools, giving up to 13 distinct gesture pools in total.

When the center area is split, both Grid and Diagonal layouts use the same A/B/C/D pools and assignments. The only difference is how the center area is divided and how gestures are mapped to those pools.

The single-center layout uses its own dedicated pool and does not share assignments with the A/B/C/D pools.

Pools are selected by the gesture's starting position, and once drawing begins, the active pool remains fixed until the gesture or gesture chain ends. The gesture itself does not need to remain inside the original pool boundaries.

Selective trigger activation

One of the most important benefits of zoning is selective trigger activation.

Gesture triggers are only active inside pools that contain assignments for that pool.

Outside those pools, the trigger continues to follow its normal Cadans behavior: other assignments may still apply, and if none exist, the input remains completely native.

Rather than occupying the entire screen, gesture systems can be limited to the areas where they are actually needed, allowing gesture controls and normal mouse usage to coexist naturally.


Recognition

Every gesture begins as a drawing.

When a gesture trigger is activated, the current shape is continuously evaluated and compared against the gestures available in the current state.

In addition to context- and pool-aware matching, and basic parameters such as minimum gesture length for matching and minimum similarity for successful matching, each gesture can define how its shape should be interpreted.

Available options include:

  • Bidirectional recognition – allows gestures drawn in reverse order to match the same assignment.
  • Closed gestures – for enclosed shapes, matching can ignore the drawing starting point; drawing direction still matters unless bidirectional recognition is enabled.
  • Scale impact – incorporates size comparison into the matching score. Higher values require the drawn gesture to more closely match the original gesture size.
  • Rotation handling – reduces or completely removes sensitivity to the overall rotation of the gesture.

These options can be combined freely on a per-gesture basis.

A gesture may be strict about direction but flexible about size, insensitive to rotation but sensitive to scale, or use any other combination that best matches its intended purpose.


Gesture chains

Since gestures are regular assignments, they naturally participate in the same chaining system as the rest of Cadans.

A gesture can execute an action, continue into another assignment, interrupt an existing chain, or become part of a larger workflow:

… β†’ Trigger β†’ Gesture β†’ Assignment β†’ …

Gesture chains extend this model further by allowing gestures to continue directly into other gestures.

Trigger
 └─ Gesture
     └─ Gesture
         └─ Gesture

Gesture assignments that contain child gestures can act as transition points.

After such a gesture is successfully recognized, keeping the trigger pressed and briefly pausing the cursor confirms the transition and enters its child assignments. Drawing can continue immediately without releasing the trigger.

Gestures without child assignments resolve normally according to their configured behavior and do not require idle confirmation.

Just like elsewhere in Cadans, intermediate elements of a chain may execute their own actions rather than serving only as transitions.

In other words, each gesture remains a fully featured assignment and supports the same capabilities available elsewhere in Cadans, including:

  • actions
  • context rules
  • behavior overrides
  • nested colors and visual customization
  • further continuations and transitions

A workflow may consist entirely of gestures:

Trigger β†’ Gesture β†’ Gesture β†’ Gesture

or combine gestures with any other assignment types:

… Assignment β†’ Trigger β†’ Gesture β†’ Gesture β†’ Assignment …

The system makes no distinction between these cases.

Gesture_chains_demo.mp4

Live Hint

To help navigate both larger gesture trees and just single assignments, Live Hint guides you through the entire drawing process.

As gesture systems become larger, remembering every available gesture and transition becomes impractical.

Live Hint acts as a navigation layer for gestures.

When a trigger is activated, Live Hint displays every currently available gesture.

Availability is determined by:

  • the current gesture pool
  • active window rules
  • active layers
  • the current chain level

In other words, Live Hint shows exactly what can be entered at the current moment.

Available gestures will be displayed together with:

  • gesture thumbnails
  • names
  • child gesture counts

After the drawing length reaches the minimum recognition length, Live Hint switches into candidate mode and displays the best recognition matches for the current shape.

When a gesture chain transition occurs, Live Hint automatically returns to navigation mode and displays the gestures available in the newly entered gesture table.

This allows even very large gesture systems to remain discoverable without requiring memorization.

Live Hint customization

Live Hint provides extensive customization options, allowing it to adapt to different workflows and gesture systems.

Available settings include:

  • Display activation distance – controls how much cursor movement is required before Live Hint appears. Depending on the triggers and gesture pools you use, this can be set to 0 to display Live Hint immediately when entering drawing mode, or increased so hints only appear during intentional drawing.
  • Navigation and candidate limits – configure the maximum number of entries displayed in navigation mode and candidate mode independently, as well as the minimum candidate score required for display.
  • Primary and secondary positions – Live Hint can use an alternative screen position when drawing begins in the same pool as its primary location, helping avoid overlap between the hint window and gesture input.
  • Thumbnail line colors – thumbnail rendering can use a dedicated Live Hint color, or inherit colors from the gestures themselves according to parent assignment or global pool settings.
  • Size and appearance settings – additional options control dimensions, spacing, colors, fonts, transparency, and other visual aspects of the interface.

Workflow and usability features

Beyond recognition, pools, chains, and Live Hint, Cadans provides a number of additional features designed to make large gesture systems easier to build, maintain, and navigate.

Gesture cancellation

Besides simply interrupting the drawing, Cadans supports several ways to cancel gesture input.

Idle cancellation

If the current drawing does not match a recognized gesture and no mouse movement occurs for a configurable amount of time, gesture mode can automatically terminate without executing any action.

This behavior is disabled by default and can be enabled through the Unrecognized pause cancel setting.

Shake to cancel

Drawing mode can also be cancelled by rapidly changing drawing direction within a small area.

This provides a quick way to abort gesture input without waiting for timers or releasing the trigger.

Visual indicators

Gesture chain transitions (idle confirmation) and idle cancellation are accompanied by dedicated visual feedback around the cursor.

Four display modes are available, allowing these states to be presented as subtly or as prominently as desired.

Per-assignment customization

Individual assignments can override colors for nested gestures and define behavior for unrecognized input.

In addition to everything listed above, gestures themselves – just like all other actions – can have window rules. Even within a single trigger and pool, you may have gestures with different rules that will be taken into account.

GUI integration

Gestures are represented throughout the interface using dedicated thumbnails and visual indicators.

In the interface gestures are represented in the dedicated list, that displays thumbnails with pool markers, assignment options, and Alt-help descriptions, making large gesture collections easier to navigate and maintain.

Thumbnail colors follow the same rules as Live Hint. Unless explicitly overridden, they use the gesture's own color inherited from its parent assignment or the global pool settings.

Gestures can also be previewed directly from the GUI using the Show button, available both above the gesture list and inside the gesture assignment form.

Previews respect gesture-specific recognition settings, including options such as bidirectional and closed recognition, and are displayed within the gesture's own pool context.

To simplify pool management, Cadans can visualize the current zone layout directly within the settings interface and gesture assignment forms.

This makes it easier to understand pool boundaries, assign gestures to the intended areas, and experiment with different zoning layouts.


Putting it together

The easiest way to explore these concepts in practice is through the included RMB Edge Gestures preset layer.

This layer uses a single gesture trigger (RMB) together with multiple gesture pools while keeping the center area completely native.

It provides a ready-to-use environment for experimenting with gesture input, Live Hint navigation, gesture-to-gesture transitions, cancellation behavior, and other gesture features described throughout this page.

Several assignments include short gesture chains. In these cases, gesture-to-gesture transitions intentionally duplicate the existing gesture-to-click behavior, serving primarily as demonstrations of uninterrupted gesture chaining.

The preset can be used as-is, modified to fit personal workflows, or extended with additional assignments, gesture chains, and context rules.

Exploring it directly is often the fastest way to understand how the individual gesture features combine into a larger interaction system.

RMB_gestures.mp4

This recording was captured before the introduction of the current Live Hint system and continuous gesture chains.