github wojtryb/Shortcut-Composer v1.6.0

2 months ago

What's new in 1.6.0

This release contains several new features, many of which were requested by the community. It also fixes a many issues and prepares the plugin for krita 6 release in following years. Many of the core features were massively rewritten, hopefully making them faster, less bug-prone and easier to maintain in the future.

Before updating, remember that any custom changes in plugin code will be overwritten.

This update introduces a breaking change: order of presets in tag mode will be lost. After updating, it will have to be recreated. I apologize for the inconveniance.

Added

Current value icon

In settings mode, Pie menus now feature a small icon with currently selected value. It allows to quickly drag this value to the pie, without searching for it in the tray.

Screenshot_20250703_151633

It was designed with presets in mind, but this icon is available in every pie which property specifies a current value.

New action: Pick foreground color

Changing foreground color with pie menus was one of the more requested features. While I still do not want to compete with color selectors in vanilla krita and dedicated plugins such as Pigment.O, implementation of the current value icon made the idea of selecting color with a pie possible.

New PieMenu for color allows to create a color palette of frequently used colors for each krita document. Current color can only be dragged from this icon to the pie.

Screenshot_20250703_151229

By default, colors are held inside the krita document, so they can be different for each painting. This, and initial color values can be changed with from the PieMenu settings with existing GUI.

This feature cannot be integrated with krita palettes system, as it is not exposed to Python plugins.

New settings for MultipleAssignment action

Configuration of MultipleAssignment actions was introduced back in v1.1.0. It was meant to be a temporary solution, before a proper system using PieMenus is written. Then it became a low-priority task to merge those two systems, as the feature was functional after all.

Finally, this old relict was replaced with a window, which reuses PieMenus and its ScrollArea, allowing to change the values to cycle with more intuitive drag&drop.

Screenshot_20250703_150834

This unification also comes with some new possibilities:

  • Long-key-press value can now be edited without changing the plugin code
  • Cycle painting opacity action can now be edited without changing the plugin code

New action: Cycle brush presets

Another big change that is a direct result of new settings for MultipleAssignment, is the new ability to change brush presets in this action. While it was possible to achieve this effect before by editing the action definition and hardcoding preset names, now one can use GUI to specify the presets or tag to cycle.

Screenshot_20250703_151435

While PieMenus are still considered the main way to quickly switch brush presets, I hope this new possibility will find some creative usage in your workflows.

Support for longer text in labels

Another highly requested feature is the new system for displaying text inside the labels. Existing system was designed with the most frequently used blending modes in mind. Three letter names proved to be insufficent for other blending modes and especially for other types of values, like krita actions.

Screenshot_20250703_151902

New system attempts to fit more text into the labels, while still allowing to achieve the original look for those who prefer it. Labels in the tray have fixed number of lines and signs, but those in PieMenu can be configured from the PieSettings.

Size of text can be configured in Tools > Scripts > Configure Shortcut Composer > Text label global scale. Use if if the text inside the labels appears too small, or does not fit into the labels.

As text size can be dependent on the OS, and system-wide text scaling, determining the text size fully automatically proved to be unreliable. Default value should work on most workspaces.

Exponential CursorTrackers

Existing CursorTracker actions allowed only to change the values linearly. While it worked well with most of the properties, some required different scale to make work as expected.

This update affects the Canvas zoom level and Brush size trackers.

Unification of PieSettings types

Previously PieSettings used different code for presets and enums (ex. tools, actions). New version unifies the code, making it easier to maintain.

As a result, tool and actions PieMenus now can also operate in tag mode (which was renamed to group mode).

Screenshot_20250703_152051

Sadly, previously stored order of groups will be lost, and will have to be recreated after updating the plugin

Safely quitting the plugin on krita 6

Krita 6 will introduce Qt6. While this brings many new opportunities, it will also break the plugins that did not prepare for this change.

Plugins shipped with krita will be using universal builds, that work on both versions at the same time. I want to avoid this solution, as supporting two versions of Qt at once can be problematic for a plugin that can still change before krita 6 release.

When trying to open krita 6 with this version of plugin, instead of crashing, it will display a message, and safely quit. The message box contains the links to unofficial universal build and to the main plugin repository, where dedicated release will be available for download once krita 6 releases.

Screenshot_20250703_152202

Modified

  • #97 MultipleAssignment logic was changed to prevent unintuitive behavior:
    • After manually changing to value from a list, the action will continue cycling from that value instead of starting from the beginning
    • Long-press-value can now be in a list, without causing any disruptions
  • PieWidget now remembers previously selected label between sessions
  • SpinBoxes in all types of settings can now have minimal values. Value limits were adjusted
  • Button for accessing PieSettings now scales with the pie configured size
  • Reset buttons in every settings window were replaced with safe-confirm button known from PieSettings
  • Creation of PieLabels should be faster
  • PieLabels are now cached to prevent creating the same label multiple time
  • Text displayed on the bottom of ScrollArea, now clears when leaving the whole tray, to prevent blinking
  • Animation no longer stops abruptly when going into edit mode

Fixed

  • #96 Action pie menu does not close properly when the action involves opening a new window
  • #100 Implementation of PickLayerStrategies enum was changed to make plugin work under python 3.13+
  • #101 Preset tags created with krita 6 are not recognised by PieMenu settings
  • PieMenu blinks when changing labels
  • PieMenu widget changes size and position size of its labels changes due to their amount
  • PieSettings slightly changes size when hovering over it for the first time
  • PieWidget fade-in-animation stumbles when the pie is empty
  • PieWidget fade-in-animation is using hardcoded interval instead of configurable FPS_LIMIT
  • Empty PieWidget accepts labels of any type, which could result in a crash
  • Default config value can be changed by editing a list returned by ListField
  • PieMenu is not hidden when global size config changes resulting in messed up pie
  • Global pie opacity is not working

Don't miss a new Shortcut-Composer release

NewReleases is sending notifications on new releases.