Touchpad Scroll Controller Dummy Node
The 'Dummy' Node That Quietly Fixes Your Touchpad Scroll
If you run ComfyUI on a MacBook (or any laptop with a decent trackpad), you know the pain: two-finger scroll over the canvas does nothing useful, horizontal swipes send you back a page in the browser, and zooming is a cramped mess of chorded keypresses. This pack is the fix - and the node you're looking at is the least interesting part of it.
TouchpadScrollControllerDummyNode is exactly what its name says: a dummy node. It has no inputs, no outputs, and its execute returns an empty tuple. Its whole job is to give the pack something to register in the node menu. The actual work happens in a JavaScript extension that loads the moment ComfyUI starts, whether or not you ever drag this node onto a canvas.
What it actually does
The extension monkey-patches LGraphCanvas.prototype.processMouseWheel - the function that handles wheel events on the ComfyUI canvas - and replaces it with touchpad-aware handling:
- Two-finger scroll pans the canvas instead of scrolling the page. Because horizontal gestures now pan instead of passing through, you stop triggering the browser's back/forward navigation - the classic accidental-swipe annoyance.
- Ctrl + two-finger scroll (or pinch) zooms, and zoom happens around your cursor position rather than the canvas center.
- Cmd/Ctrl + two-finger scroll zooms at a finer granularity, for precise framing when you're buried deep in a 200-node graph.
It also attaches a listener to elements matching CSS selectors (by default textarea.comfy-multiline-input and .p-panel.p-component) that forwards wheel events from textareas to the canvas. That means when your mouse is floating over a prompt box, scrolling still pans the graph instead of getting eaten by the text field.
What you actually set
There are no node inputs to fiddle with. All the controls live in Settings → ComfyUI Touchpad Scroll Controller, and there are only three:
- Enable Touchpad Scroll Controller - the master toggle (on by default). The setting's own tooltip warns you may need to refresh the page after flipping it.
- Ignore Textarea Scroll - whether wheel events over textareas redirect to the canvas (on by default).
- Target Selectors (Comma Separated) - the CSS selectors that get the textarea redirect. Only touch this if you want to exclude or add UI elements.
Installing it
Easiest way: ComfyUI Manager → search "ComfyUI Touchpad Scroll Controller" → install → restart. Manual install is the usual:
cd ComfyUI/custom_nodes
git clone https://github.com/joreyaesh/comfyui_touchpad_scroll_controller.enableTouchpadScroll
Then restart ComfyUI. There are no Python dependencies, no model downloads, no heavy install - the whole thing is one JavaScript file plus the dummy node. That's about as frictionless as a ComfyUI pack gets, which is saying something in an ecosystem known for dependency hell.
Where people get tripped up
The biggest misunderstanding is treating the dummy node like a real node: you do not need to add it to your workflow. It's not part of any pipeline and wires into nothing. Adding it changes nothing; skipping it changes nothing. The extension is global by design.
Two grounded gotchas worth knowing:
- It only matters on a touchpad. With a mouse it's basically inert - normal wheel zoom still works through the patched handler.
- It overrides ComfyUI's default wheel behavior globally. If you ever find canvas navigation feeling different from stock, remember this pack is the reason, and the master toggle is where you undo it.
Honestly, this is one of those packs you install, forget about, and only notice when you use a machine without it. For touchpad users, that's exactly the compliment it deserves.
Inputs (0)
No inputs
Outputs (0)
No outputs