Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Options to reconfigure key/mouse bindings for navigation #1032

Open
1 task done
DrMechanica opened this issue Sep 27, 2024 · 4 comments
Open
1 task done
Labels
enhancement New feature or request

Comments

@DrMechanica
Copy link

Is there an existing issue for this?

  • I have searched the existing issues and checked the recent builds/commits

What would your feature do ?

Expose settings to change the keybinds/mousebinds for panning, drag selecting, etc.
The main reasons this is needed are that the current set up is pretty unconventional when compared to other node-based environments like blender, Nuke, or even Adobe products, etc. and the ability to use a more familiar setup would be incredibly useful. Personally I'd find the Adobe method of holding space to pan and having an unmodified click+drag do a selection box very comfortable and would love to be able to work that way. Others may prefer blender, I see that mentioned a lot.

In addition to this: when using Firefox on macOS you cannot drag select without editing the litegraph python file to use the metaKey instead of the ctrlKey for drag selections. I realize this is more of a bug, and I will mention it in a separate issue, but for whatever reason, the ctrlKey does not work for that in Firefox on macOS. So I have to edit the python file to make it work every time I update ComfyUI. Very cumbersome and annoying, but this feature would provide a fix.

Proposed workflow

  1. Go to settings
  2. (optional) Select from a list of keybind templates mimicking other popular node or art software.
  3. If no suitable keybind template is found, choose "Custom" and set your own keybinds and mouse behavior.

Templates would be great, but at this point even the most basic "set your own" options would be tremendously helpful.

Additional information

No response

@DrMechanica DrMechanica added the enhancement New feature or request label Sep 27, 2024
@Ryxx
Copy link

Ryxx commented Sep 28, 2024

I'll add my 2 cents, but for me navigation is THE most important part of an application that should allow user keymap customisation, because the entire work we do in an app involves navigating around it.

The 3 most used navigation actions I perform in Comfyui are the following:

  • Panning: currently you can pan with Left Mouse Button AND Middle Mouse Button. 2 buttons for the same action is a waste.
  • Select Multiple Nodes: Currently Ctrl + LMB. But conventionally, LMB click and drag forms the selection rectangle. If we free LMB from panning, there is no need for the Ctrl key.
  • Move Multiple Nodes: Currently Shift + LMB. If you have selected multiple nodes, they should all move together instead of moving only the one being hovered. We could get rid of Shift key as well!

In my opinion, those 3 actions should be performed solely with the mouse, so my left hand can rest on the armchair :)

@DrMechanica
Copy link
Author

Ryxx, I agree with you completely. Those are such standard navigation conventions that’s absolutely how it should work.

@webfiltered
Copy link
Contributor

FYI work is underway on this. It is a bit convoluted due to hard-coded values that were written over a decade ago (and were perfectly fine then).

Implementing a workaround that will need be broken soon after isn't an option, so please bear with whilst this gets done cleanly.

@j-jasz
Copy link

j-jasz commented Dec 22, 2024

+1 for LMB click + drag for selecting multiple nodes.
For moving selected nodes I'd prefer G - Blender style.

Anyway I thing this should be added to Keybinding editor as an option, same as more arcane litegraph bindings that are currently hardcoded. Since this task is about navigation only I took the liberty of making an overall task for editing all litegraph bindings: #2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants