Skip to content

udtren/krita-quick-access-manager

Repository files navigation

Krita Quick Access Manager

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

Sample

Support

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

ko-fi

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. How to Add a Brush Preset

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. How to Add a Shortcut

Popup Window

Popup

How to Use

  1. Brush Sets Popup: Press W to show/hide the brush sets popup
  2. Actions Popup: Press Tab to show/hide the actions popup

Change Shortcut and icon/button size

Edit the following value to change shortcut key and icon/button size:

  • quick_access_manager\popup\brush_sets.py
    • BrushSetsPopupShortcut
    • BrushIconSize
  • quick_access_manager\popup\actions.py
    • ActionsPopupShortcut
    • ActionButtonSizeX
    • ActionButtonSizeY

Gesture System

Gesture Configuration

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

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

Gesture Preview

Click the image above to watch the gesture system demo video

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 (top-right corner of the gesture config dialog).

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

alt text

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

Quick Brush Adjustments

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, and inherit alpha states.

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, edit the parameters in:

  • quick_access_manager\quick_brush_adjust_widgets\__init__.py

Available customization options:

  • Font sizes for labels and values
  • Number of color/brush history items
  • Icon sizes for history widgets
  • Available blend modes in dropdowns

Global Config

Use the "Setting" button to customize the UI and layout, including the default font color, background color, and font size for shortcut buttons. Setting

Shortcut Button Config

To customize an individual shortcut button, hold Alt and right-click the button. If the "Use Global Settings" is checked, the color of font and background will use the value in the global config file. Shortcut Button Config

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.

Config file

The configuration files for grids and shortcuts are stored in ./quick_access_manager/config.

  • grids_data.json: Stores the brush preset grids.
  • shortcut_grid_data.json: Stores the shortcut grids.
  • common.json: Stores UI and layout settings.

Note:
There is no profile management function, but you can manually edit these files while Krita is closed.
If you want to reset or backup your settings, you can copy or edit these files directly.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Languages