February 5, 2026

Why the Shortcut System Can Feel Complicated

Darktable’s shortcut system is basically a “build-your-own-controls” engine. With it, you can:

  • Bind shortcuts to UI elements
  • Use mouse gestures
  • Use scroll-based controls
  • Build multi-step combos
  • Create module-specific behaviors
  • Rebuild the entire workflow around your own muscle memory

It’s a lot—but once you understand the pieces, it becomes one of darktable’s best features.

Understanding the Shortcuts Page in darktable

The Shortcuts page in darktable has two main halves and two search fields.
Each part has a specific job, and knowing how they work makes understanding and customizing shortcuts much easier.

1) Top Half: Action List

The top half shows every action darktable can perform, even if it has no shortcut assigned.

Examples of actions:

  • zoom in
  • toggle full screen
  • export selected
  • increase exposure

What you use it for

  • Finding an action you want to control with a shortcut
  • Assigning a new shortcut to an action
  • Changing or removing a shortcut for a specific action

When to use it

  • When you know what you want darktable to do
  • When you want to add or edit a shortcut for a specific action

Extra behavior

  • When you move through the list with the arrow keys, if an action already has a shortcut, that shortcut will appear in the bottom half automatically.

2) Bottom Half: Shortcut List

The bottom half shows only the actions that already have shortcuts assigned.

Each row shows:

  • the action name
  • the shortcut(s) assigned to it
  • action component drop-downs*:
    • element
    • effect
    • speed
    • instance

*NOTE: Drop-downs appear only for those components that are available for that particular action.

What you use it for

  • Seeing which actions already have shortcuts
  • Editing or deleting existing shortcuts
  • Checking which shortcuts are currently in use

When to use it

  • When you want to modify an existing shortcut
  • When you want to see all shortcuts related to a topic
  • When you want to avoid assigning a shortcut that’s already taken

3) Search Field 1: “search actions list”

This search box filters the top half.

What it searches

  • All actions, whether or not they have shortcuts

When to use it

  • When you know the action name
  • When you want to assign a shortcut to an action
  • When you want to find an action that currently has no shortcut

Example

Typing zoom (a) shows and scrolls through all actions with the word zoom in the top half (even if none of them have shortcuts yet):

  • force pan/zoom/rotate with mouse (b) – no shortcut yet (c)
  • zoom out (d) – has a shortcut (e)

Extra behavior

  • Pressing Enter does not move to the next search result.
  • Use the up and down arrow keys to move through the filtered list.
  • Pressing [enter] starts editing the selected action’s shortcut, because [enter] is bound to the action “edit shortcut.”

4) Search Field 2: “search shortcuts list”

This search box filters and scrolls through the bottom half (although it does highlight the action in the top half as well).

What it searches

  • Only actions that already have shortcuts
  • It searches by action name, NOT by key combination

When to use it

  • When you want to see which actions with shortcuts match a topic
  • When you want to find all shortcuts related to a feature
  • When you want to check whether an action already has a shortcut

Example

Typing zoom (a) shows and scrolls through all shortcuts in the bottom half that have an action associated with the word zoom; and highlights the action in the top half as well (b):

  • zoom
  • zoom close-up (c)
  • zoom in
  • zoom out

Extra behavior

  • Like the left search field, Enter does not cycle through results.
  • Use arrow keys to move through the filtered list.
  • Pressing Enter edits the selected shortcut.

Shortcut Mapping Icon (top-right corner)

The keyboard-shaped icon in the top-right corner of both lighttable and darkroom activates the system for defining shortcuts with on-screen controls (buttons, sliders, module headers, etc.).

NOTE: Right-clicking the icon will open the same screen as found at preferences -> shortcuts.

What this mode does

  • Lets you assign shortcuts directly to UI controls, not to actions in the Preferences list
  • Allows mouse-based shortcuts (click, move, scroll) combined with keys
  • Lets you delete a shortcut by typing the same combination again
  • Provides a way to open a detailed configuration dialog for a specific control
  • Exits cleanly with a right-click

How it Works

  • click the icon to activate it (a)
    • hover (b) over a control (button, slider, etc.) and press a keystroke combination
      (optionally with mouse click, move, or scroll while holding down the keys)
      to define a shortcut for the control
      • use an existing combination to delete that existing mapping (it will ask for confirmation to overwrite it)
      • ctrl+click to switch off overwrite confirmation
    • click on a control, module, or screen area to open the dialog for more detailed configuration (
  • right-click to exit mapping mode

When to use it

  • When you want a shortcut tied to a specific on-screen control
  • When you want to define shortcuts using mouse gestures + keys
  • When you want to configure shortcuts without opening Preferences → Shortcuts

Summary Table

Area / FieldWhat It ShowsWhat It SearchesBest UseExtra BehaviorExample
Top Half: Action ListAll actionsFull action listAssigning or editing shortcuts for specific actionsSelecting an action shows its shortcut (if any) in the bottom halfFind “toggle full screen”
Bottom Half: Shortcut ListOnly actions with shortcutsOnly actions that already have shortcutsEditing or reviewing existing shortcutsShows all shortcuts currently in useSee all shortcuts for zooming
Search actions listFilters top halfAction namesFinding actions to assign shortcutsArrow keys move through results; Enter edits shortcutSearch “export”
Search shortcuts listFilters bottom halfAction names (not key combos)Finding shortcuts related to a topicArrow keys move through results; Enter edits shortcutSearch “zoom”
Shortcut Mapping Icon (top-right)Shortcut-definition mode for on-screen controlsNone (interactive mode, not a search)Assigning shortcuts to buttons, sliders, modules, or screen areasSupports mouse+key combos; typing an existing combo deletes it; right-click exitsAssign a shortcut to a specific slider or module

Additional Shortcut Concepts

This section fills in the deeper shortcut features that darktable supports.
You don’t need to memorize any of this — it just helps explain why the shortcut system feels so powerful (and sometimes a little wild).

Two Kinds of Actions: “Instant” vs “Directional”

Instant actions (discrete)

These fire once and they’re done.

Examples:

  • Toggle a module on/off
  • Reset a slider
  • Switch views
  • Open a preset menu

These work great with simple shortcuts like E, Ctrl+E, or Shift+F.

Directional actions

These need a direction or movement.

Examples:

  • Increase/decrease a slider
  • Scroll through a dropdown
  • Move a crop boundary
  • Adjust a mask feather

These require something like:

  • key + scroll
  • key + mouse movement
  • key + drag

Directional shortcuts feel more like “controls” than buttons.

What a Shortcut Can Actually Contain

A shortcut in darktable isn’t just “press a key.”
It can be a whole combo of things:

  • A key (single, double, or triple press)
  • Optional modifiers (Ctrl, Shift, Alt)
  • Up to three mouse clicks
  • Optional long-press
  • Optional movement (scroll, drag, joystick, etc.)

Examples:

  • E
  • E double-press
  • Ctrl + E + scroll
  • E + left click + right double-click

You’ll probably never need the crazy ones — but darktable lets you build them.

How darktable Thinks: Widget → Element → Effect

Every shortcut is built from three layers:

Widget

The thing you’re controlling:

  • A slider
  • A button
  • A dropdown
  • A module header

Element

The specific part of that widget:

  • Slider value
  • Slider reset button
  • Module enable toggle
  • Preset menu
  • Instance menu

Effect

What the shortcut does:

  • Toggle
  • Reset
  • Increase/decrease
  • Scroll
  • Activate

This is why the shortcut editor has so many fields — it’s showing you all three layers.

Extra Elements in Processing Modules

Processing modules (exposure, color balance, tone equalizer, etc.) have special elements you can target:

  • show — expand/collapse the module
  • enable — turn the module on/off
  • focus — activate the module’s on-image controls
  • presets — open the preset menu
  • instance — manage multiple module instances
  • blending — open blend options
  • focused controls — control the first/second/third slider of the currently focused module

This is how one shortcut can behave differently depending on which module is “focused.”

Fallbacks (Automatic Shortcut Families)

Fallbacks let darktable automatically create a whole set of shortcuts from one base shortcut.

Example:
If you assign Ctrl + R to a module, darktable can automatically generate:

  • Ctrl + R → show/hide
  • Ctrl + R + left click → enable/disable
  • Ctrl + R + left double-click → reset
  • Ctrl + R + right click → presets
  • Ctrl + R + right double-click → instance menu

Fallbacks are off by default because they can surprise beginners, but they’re powerful once you understand them.

Shortcut Uniqueness Rules

  • A shortcut can only do one thing per view (lighttable vs darkroom).
  • The same shortcut can do different things in different views.
  • An action can have multiple shortcuts, but a shortcut cannot trigger multiple actions in the same view.

This keeps darktable from getting confused.

Importing, Exporting, and Restoring Shortcuts

The shortcut editor includes tools for:

  • Exporting your shortcuts to a file
  • Importing shortcuts from a file
  • Importing “extras” (extra system shortcuts)
  • Restoring defaults
  • Restoring previously disabled default shortcuts

This is super helpful if you experiment a lot or want to share your setup.

Assigning Keys as Modifiers

You can turn any key or controller button into a modifier (like Ctrl/Shift/Alt).

This is done through the global/modifier action.

It’s great if you want more modifier keys than your keyboard physically has.

Why the Shortcut System Feels So Powerful

Darktable’s shortcut system is basically a “build-your-own-controls” engine.
You can:

  • Bind shortcuts to UI elements
  • Use mouse gestures
  • Use scroll-based controls
  • Build multi-step combos
  • Create module-specific behaviors
  • Rebuild the entire workflow around your own muscle memory

It’s a lot — but once you understand the pieces, it becomes one of darktable’s best features.