Butterfly icon indicating copy to clipboard operation
Butterfly copied to clipboard

[Feature request]: Customizable keyboard shortcuts and addition “hold” shortcuts for canvas navigation

Open drv398-web opened this issue 4 weeks ago • 5 comments

Is your feature request related to a problem? Please describe

No, it is not related to a problem.

Describe your feature request!

I’d like Butterfly to support fully customizable keyboard shortcuts and “press and hold” style shortcuts for canvas navigation and tools.

Concretely:

  1. Let users remap existing keyboard shortcuts.

  2. Allow binding keys directly to tools or actions, even if those tools are not on the toolbar.

  3. Add support for “press and hold” shortcuts, for example:

  • Hold a key to temporarily use the Hand tool (pan).
  • Hold a key and drag the pen up/down to zoom in/out.
  • Hold a key to temporarily use the eraser.
  • Press a key to switch to lasso / selection.

These changes would make Butterfly much more powerful for pen-tablet users who rely on keyboard + pen workflows.

Additional context

Additional context about my workflow:

I use a pen tablet on my right hand and keep my left hand on the keyboard all the time. I constantly use shortcuts while drawing (pan, zoom, erase, change tool, change brush size, etc.).

I come from using Concepts on Windows, where this workflow works very well, but I want to move my setup to Linux and have a cross-platform solution. Among the applications I’ve tested, Butterfly clearly stands out, but the current fixed keyboard shortcuts and lack of “press and hold” behaviour make it difficult to use Butterfly efficiently with a keyboard + pen tablet setup on desktop.

Thank you very much for your amazing work with this project.

Code of Conduct

  • [x] I agree to follow this project's Code of Conduct

drv398-web avatar Dec 02 '25 05:12 drv398-web

Good idea. Custom keyboard shortcuts is a thing that I also thought about it but I havent looked how I can do this exactly. Hold to change is already a thing for non keyboard devices, but for custom keys there is no currently.

CodeDoctorDE avatar Dec 02 '25 07:12 CodeDoctorDE

Quick question: how do you want to switch to tools not in the toolbar? Currently every tool has its own properties and you can change them in the properties view when clicking on it

CodeDoctorDE avatar Dec 02 '25 08:12 CodeDoctorDE

Working on a library to allow custom shortcuts: https://github.com/LinwoodDev/dart_pkgs/tree/main/packages/keybinder

Image

CodeDoctorDE avatar Dec 02 '25 10:12 CodeDoctorDE

Image

:)

CodeDoctorDE avatar Dec 02 '25 17:12 CodeDoctorDE

Quick question: how do you want to switch to tools not in the toolbar? Currently every tool has its own properties and you can change them in the properties view when clicking on it

Thanks for the quick reply!

In my previous workflow (e.g. in Concepts) I usually had several pen styles pinned in the toolbar, and I switched between them with the number keys (1–0).

For some tools like eraser or lasso selection, I didn’t rely on them being in the toolbar. Instead I used dedicated keys, for example:

Press & hold E → temporarily switch to Eraser

Release E → automatically go back to the previously selected tool in the toolbar

So, regarding tools that are not in the toolbar:

One option would be that a shortcut can activate a tool by its ID/type, regardless of whether it is visible in the toolbar.

The tool would simply use the last properties that were set for it (which I can adjust in the UI/properties view when I need to, as you mentioned).

It would also be ok with a simpler version where the tool has to be in the toolbar, as long as:

You can remap the shortcut (e.g. tool in slot 8 uses E instead of Ctrl+8).

You can choose whether that shortcut is:

  • a toggle (press once to switch), or

  • temporary while held (press & hold to use the tool, release to go back to the previous one).

There are also actions that are not tools, but would really benefit from keyboard shortcuts, for example:

“Hold key + drag pen up/down to zoom in/out” – this is not a tool so it cannot be put on the toolbar, so it would need its own shortcut behaviour.

That’s basically the idea: some shortcuts switch tools (with optional “while held” behaviour), and some shortcuts trigger navigation/view actions like temporary pan/zoom, all of them remappable so they fit a keyboard + pen tablet workflow.

Image :)

Wow you already did the customizable keyboard shortcut, amazing, thank you very much! How can I try it? I am sorry for the noob questions, this is my first time using Github

drv398-web avatar Dec 02 '25 17:12 drv398-web

Added basic custom keybind support in 2.5.0-beta.0, will add more in further releases. Version should release next month

CodeDoctorDE avatar Dec 24 '25 21:12 CodeDoctorDE