Quick Access Manager

2026/1/2

I’ve updated the original post as it was outdated and didn’t reflect the latest plugin features.

Krita Quick Access Manager

A plugin for Krita that provides quick access to brush presets and shortcut management.

Features

  • Quick Brush Sets: Organize and access your favorite brush presets in customizable grids with popup window support for quick switching
  • Quick Actions: Create custom shortcut buttons for any Krita action with popup window for instant access
  • Gesture System: Execute actions using keyboard + mouse directional gestures with visual preview overlay
  • Quick Brush Adjust Docker: Dedicated docker with brush/layer controls, color/brush history, and real-time status indicators


Support

If you find this tool helpful, you can support its development:

ko-fi

Table of Contents

How to Add a Brush Preset

  1. In the “Quick Brush Sets” section, activate the grid you want to add to.
  2. Select the brush preset you want to add from Krita’s brush preset.
  3. Click the “AddBrush” button in the docker.
  4. The selected preset will be added to the active grid.
    qam_add_brush

How to Add a Shortcut.

  1. In the “Quick Actions” section, activate the grid you want to add to.
  2. Click the “Actions” button to open the shortcut selection popup.
  3. Select the action you want to add from the table.
  4. Click the “AddAction” button.
  5. The selected shortcut will be added to the active grid.
    qam_add_action

Popup Window

popup_demo

How to change shortcut and icon size

qam_popup_config

The default key for both popup are W and Tab.

Krita uses Tab for Show canvas only action, so you need to remove the shortcut first.

Gesture System

gesture_demo2

gesture_demo

A gesture-based control system that allows you to trigger actions using keyboard + mouse movements.

Features

  • 9-Directional Gestures: Execute different actions based on 8 directional swipes plus a center tap action
  • Multiple Gesture Pages: Each with its own trigger key
  • Gesture Actions: Support for brush presets, actions, and docker visibility toggles
  • Customizable Sensitivity: Adjust the minimum pixel movement required to trigger gestures
  • Visual Configuration: Intuitive UI with arrow icons and action previews

How to Use

qam_gesture_config

First-time setup: When opening the gesture configuration dialog for the first time, you may see an empty “1” tab. Ignore it and simply click the “+” button to create your first gesture page.

  1. Open Configuration: Click the “Gesture” button in the Quick Access Manager docker to open the gesture configuration dialog

  2. Configure Trigger Key:

    • Click the center “Config Key” button
    • Press any key (A-Z, 0-9, F1-F12, etc.) to assign it as the gesture trigger
    • Configure the center tap action (executed when you press and release the key without moving)
    • Important: If the key is already assigned to a Krita shortcut, you must remove it first, as Krita’s native shortcuts take priority
  3. Configure Directional Gestures:

    • Click any arrow button to configure an action for that direction
    • Choose from:
      • Brush Preset: Select the currently active brush
      • Action: Choose any Krita action from the list
      • Docker Toggle: Show/hide a specific docker by name
      • None: Clear the gesture configuration
  4. Add More Gesture Pages:

    • Click the “+” button to create additional gesture configurations
    • Each page can have its own trigger key and 9 actions
  5. Settings:

    • Click the “Settings” button to access:
      • Enable Gesture System: Toggle the entire gesture system on/off (Require Krita restart)
      • Minimum Pixels to Move: Adjust gesture sensitivity (1-200 pixels)
      • Preview Overlay: Enable/Disable preview overlay
  6. Execute Gestures:

    • Press and hold the configured trigger key
    • Move(hover) your mouse in one of the 8 directions
    • Release the key to execute the action
    • Or simply press and release without moving to trigger the center action

Temporarily Disable

There is a Krita shortcut Toggle Gesture Recognition that can be used to disable gesture recognition temporarily.

Preview Overlay

By default, a visual preview overlay appears when you press and hold the gesture key, showing all configured actions for each direction.
You can disable the preview overlay in the gesture settings.

Tips

  • The dialog is modeless, allowing you to continue working in Krita while it’s open
  • Gesture detection is automatically disabled while the configuration dialog is active
  • All configurations are saved automatically when you click “Save”
  • Configuration files are stored in quick_access_manager\gesture\config\

Alias

You can rename actions and add custom icons to the gesture preview overlay.

How to set up aliases:

  1. Open the gesture config dialog
  2. Click the “Settings” button in the top-right corner
  3. Edit the “Alias Settings (JSON)” field

Example:

{
    "KisToolSelectOutline": {
        "alias_name": "Free Hand",
        "icon_name": "free_hand.png"
    },
    "invert_selection": {
        "alias_name": "Invert"
    },
    "Tool Options": {
        "icon_name": "tool_option.png"
    }
}
  • alias_name: Custom name to show instead of the action ID
  • icon_name: PNG file name from quick_access_manager\gesture\icon\ folder
  • Both fields are optional
  • Priority: Icon > Alias Name > Original Name

External API

The gesture system provides a public API for external plugins to pause and resume gesture detection when needed:

from quick_access_manager.gesture.gesture_main import (
    pause_gesture_event_filter,
    resume_gesture_event_filter,
    is_gesture_filter_paused
)

# Pause gesture detection (completely removes event filter)
pause_gesture_event_filter()

# Resume gesture detection (reinstalls event filter)
resume_gesture_event_filter()

# Check if gesture filter is currently paused
if is_gesture_filter_paused():
    print("Gesture detection is paused")

Use Cases:

  • Pause gestures during heavy document operations to prevent UI freezing
  • Disable gestures when other plugins need exclusive keyboard/mouse control
  • Temporarily suspend gesture detection during critical operations

Example:

try:
    pause_gesture_event_filter()
    # Perform heavy operations (e.g., document loading, batch processing)
    open_document(file_path)
finally:
    # Always resume in finally block to ensure gestures are re-enabled
    resume_gesture_event_filter()

Technical Details:

  • pause_gesture_event_filter(): Calls QApplication.removeEventFilter() for zero overhead when paused
  • resume_gesture_event_filter(): Calls QApplication.installEventFilter() to restore gesture detection
  • When paused, the event filter is completely removed from Qt’s event chain, eliminating all processing overhead

Quick Brush Adjustments Docker

A dedicated docker for quick brush and layer adjustments, providing instant access to commonly used painting settings.
The docker also includes a status bar at the bottom that displays real-time indicators for active selection, alpha lock, inherit alpha, and gesture system states.
Click the gesture icon will toggle on/off the gesture system.

Features

Brush Controls:

  • Size Slider: Adjusts brush size from 1 to 1000 pixels with non-linear scaling for precise control of small brushes
  • Opacity Slider: Controls brush opacity (0-100%)
  • Rotation Widget: Circular dial for intuitive brush rotation adjustment (0-360°)
  • Blend Mode Dropdown: Quick access to change the current brush’s blending mode
  • Reset Button: Instantly reloads the current brush preset to its default settings

Layer Controls:

  • Layer Opacity Slider: Adjusts the active layer’s opacity (0-100%)
  • Layer Blend Mode Dropdown: Change the active layer’s blending mode

Color & Brush History:

  • Color History: Quick access to recently used colors
  • Brush History: Switch between recently used brush presets

Docker Toggle Buttons

The buttons at the bottom of the docker provide quick show/hide toggles for other Krita dockers (e.g., Tool Options, Layers, Brush Presets).

Configuration:

  • Settings are stored in quick_access_manager\config\docker_buttons.json
  • The file is auto-created with default buttons on first launch if it doesn’t exist
  • To use custom icons, place PNG files in quick_access_manager\config\icon (24×24px recommended)

Button Configuration Format:

{
  "button_name": "Display Name",
  "button_width": 50,
  "button_icon": "filename.png",
  "docker_keywords": ["keyword1", "keyword2"],
  "description": "Tooltip text"
}

Customization

To modify the docker’s appearance and behavior, see “Global Config”.

Global Config

qam_global_setting

The global configuration allows you to customize the default appearance and behavior for all shortcut buttons and UI elements.

How to Access:

  • Click the “Setting” button in the docker

Available Settings:

  • Default Font Color: Sets the default text color for shortcut buttons
  • Default Background Color: Sets the default background color for shortcut buttons
  • Default Font Size: Sets the default text size for shortcut buttons
  • Max Shortcut Per Row: Controls how many buttons appear in each row (default: 4)
  • Spacing Between Buttons/Grids: Adjusts the spacing between UI elements
  • Quick Brush Adjustments Docker Settings: Customize font sizes, history sizes, and other docker-specific options

Note: Individual buttons can override these global settings. See “Shortcut Button Config” below.

Shortcut Button Config

Each shortcut button can be individually customized with its own appearance settings.
qam_shortcut_button_config

How to Access:

Available Options:

  • Button Name: Custom display name for the button
  • Font Size: Override the global font size for this button
  • Background Color: Custom background color (hex color code, e.g., #3d3d3d)
  • Font Color: Custom text color (hex color code, e.g., #ffffff)
  • Icon Name: PNG filename to display as an icon instead of text
  • Use Global Settings: When checked, the button uses colors from the global config

Icon Support:
To display a button as an icon instead of text:

  1. Place your PNG icon file in quick_access_manager\config\icon\
  2. Open the button config dialog (Alt + right-click)
  3. Enter the filename in the “Icon Name” field (e.g., my_icon.png)
  4. Configure the grid’s “Icon Size” parameter (see “Edit Grid Parameter” below)
  5. When both icon name and grid icon size are set, the icon will be displayed

Tips:

  • Leave “Icon Name” empty to display text instead
  • Icons automatically replace text when configured

Sort/Remove

Sort:
To reorder a brush or shortcut button within a grid or move it between grids, hold Ctrl and left-click and drag the button to the desired position or grid.

Advanced Sort:

  • To move a shortcut button up by one position within the same grid, hold Shift and left-click the grid name.
  • To move a shortcut button down by one position within the same grid, hold Shift and right-click the grid name.
  • To move a grid up by one position, hold Shift and left-click the grid name.
  • To move a grid down by one position, hold Shift and right-click the grid name.

Remove:
To remove a brush or shortcut from a grid, hold Ctrl and right-click on the button you want to remove.

Remove Grid:
To delete an entire grid, hold Ctrl + Alt + Shift and right-click the grid name.

Edit Grid Parameter:
Each grid can have its own configuration parameters that override global settings.

How to Access:

  • Hold Alt and right-click the grid name

Available Parameters:

  • Grid Name: Rename the grid to organize your shortcuts
  • Max Shortcut Per Row: Set a grid-specific column count (overrides global setting)
    • Leave empty to use the global “Max Shortcut Per Row” setting
    • Set a number (e.g., 6) to use a custom column count for this grid only
  • Icon Size: Set the size for icon buttons in this grid (in pixels)
    • Required for buttons with icons to display properly
    • Leave empty for text-only grids
    • Recommended value: 24 (pixels)
    • Buttons with icon_name configured will only display icons if this is set

Activate Grid:
To activate a grid, simply left-click the grid name.

32 Likes

:slight_smile: Hello @Toma_Omito and welcome to the forum!

Thank you for sharing your plugin with the community! There were many requests for the functionality you implemented in the past, so you’ll probably make many users happy.
:person_bowing:
Michelist

Looking good..I definitely gonna try it out. I am just teeeking my shortcut composer and also remapping my huion so this will be a perfect compliment! If you want i can return after I tried and let u know

Feedback is always appreciated.

I have just updated the code to dynamically adjust the text of the Shortcut buttons, and also updated the method for changing the order of Shortcut buttons.

1 Like

Thank you very much for this very useful plugin.

:thinking: Hmm.. tried it, but i did not get it to run correctly though.. a error-message appeared on start, of Krita itself.

I followed instructions as per ce, Tools>script>from file (the zip) followed the promt and “yes” to activate the plug, and then restarted.

I’m on a windows 10, latest version of Krita (5.2.11 i think, it was updated the other day)

(Is the uppdate on the same link as on the original post?)

:smiling_face: I’ll try again later today, and take a screenshot of the massage if that would help in anyway.

:waving_hand::hot_beverage:

I tried the latest file myself, and both zip files (download zip from repository or release file) are working.
Install them using Tools > Scripts > Import Python Plugin from File.

OS is Win11, krita version is 5.2.10.

1 Like

Then its something else, cheers for answering! :grinning_face:


Ahh .. still getting the same message. Can’t really figure out what’s wrong

I just tested the plugin installation on my Ubuntu PC with a fresh install of Krita.

Everything is working fine.

Are you using the latest zip file?

In latest main branch file, the code on line 648 is different.

Alternatively, you can try the file from the dev branch. I just updated the code.

I just merged the dev branch so you can just re-download the zip file and give it a try.

1 Like

Allright, I’ll give it a try later today, ty for quick reply.
I’ll let you know how it progresses

works, gonna try it out!

cheers

1 Like

v1.1.0

If you are updating the plugin from an older version, please delete shortcut_grid_data.json.
The data structure of shortcut_grid_data.json has changed and is not compatible with previous versions.

  • Support for more Krita Shortcut Actions
    Previously, only Krita’s Global Shortcuts could be retrieved and registered to buttons. Now, almost all Actions can be retrieved and registered.

  • Individual Shortcut Button Configuration
    You can now change the display name, font size, and colors of each shortcut button by holding Alt and right-clicking the button.
    If you set the font size or color to a value different from the global config, that button will keep its individual settings and will not be affected by future changes to the global config.

3 Likes

Is there any way to make Docker more compact? On a lower resolution screen, Docker takes up a considerable amount of the screen.

You can try the smaller_icon branch file.

2 Likes

thanks for the support

v1.1.2

You can now customize the spacing between buttons or grid elements and the size of brush icons by editing the following values in data_manager.py:

spacingValue = 1 # The spacing (in pixels) between buttons or grid elements
iconSize = 40 # The default icon size (in pixels) for brush preset buttons

3 Likes

v1.1.4

You can now set the brush icon size and the spacing between buttons from the Settings screen.
If you are updating, delete common.json beforehand.

3 Likes

It’d be nice to instead of clicking the active button to activate, we can just click the name of the grid or the brush. It’ll free up some space. Thank you by the way.

edit: the active button to activate, we can just click the name of the grid or the brush. It’ll free up some space. Thank you by the way

v1.2.0

The UI has been updated: all buttons within each grid have been removed, and actions are now handled through mouse click events on the grid name.

Some button positions and names have also been adjusted.

Sort/Remove

Sort:
To reorder a brush or shortcut button within a grid or move it between grids, hold Ctrl and left-click and drag the button to the desired position or grid.

Advanced Sort:

  • To move a shortcut button up by one position within the same grid, hold Shift and left-click the grid name.
  • To move a shortcut button down by one position within the same grid, hold Shift and right-click the grid name.
  • To move a grid up by one position, hold Shift and left-click the grid name.
  • To move a grid down by one position, hold Shift and right-click the grid name.

Remove:
To remove a brush or shortcut from a grid, hold Ctrl and right-click on the button you want to remove.

Remove Grid:
To delete an entire grid, hold Ctrl + Alt + Shift and right-click the grid name.

Rename Grid:
To rename a grid, hold Alt and right-click the grid name.

Activate Grid:
To activate a grid, simply left-click the grid name.

5 Likes