| | import {app} from "../../scripts/app.js";
|
| |
|
| | app.registerExtension({
|
| | name: "Comfy.Keybinds",
|
| | init() {
|
| | const keybindListener = function (event) {
|
| | const modifierPressed = event.ctrlKey || event.metaKey;
|
| |
|
| |
|
| | if (modifierPressed && event.key === "Enter") {
|
| | app.queuePrompt(event.shiftKey ? -1 : 0).then();
|
| | return;
|
| | }
|
| |
|
| | const target = event.composedPath()[0];
|
| | if (["INPUT", "TEXTAREA"].includes(target.tagName)) {
|
| | return;
|
| | }
|
| |
|
| | const modifierKeyIdMap = {
|
| | s: "#comfy-save-button",
|
| | o: "#comfy-file-input",
|
| | Backspace: "#comfy-clear-button",
|
| | d: "#comfy-load-default-button",
|
| | };
|
| |
|
| | const modifierKeybindId = modifierKeyIdMap[event.key];
|
| | if (modifierPressed && modifierKeybindId) {
|
| | event.preventDefault();
|
| |
|
| | const elem = document.querySelector(modifierKeybindId);
|
| | elem.click();
|
| | return;
|
| | }
|
| |
|
| |
|
| | if (event.ctrlKey || event.altKey || event.metaKey) {
|
| | return;
|
| | }
|
| |
|
| |
|
| | if (event.key === "Escape") {
|
| | const modals = document.querySelectorAll(".comfy-modal");
|
| | const modal = Array.from(modals).find(modal => window.getComputedStyle(modal).getPropertyValue("display") !== "none");
|
| | if (modal) {
|
| | modal.style.display = "none";
|
| | }
|
| |
|
| | [...document.querySelectorAll("dialog")].forEach(d => {
|
| | d.close();
|
| | });
|
| | }
|
| |
|
| | const keyIdMap = {
|
| | q: "#comfy-view-queue-button",
|
| | h: "#comfy-view-history-button",
|
| | r: "#comfy-refresh-button",
|
| | };
|
| |
|
| | const buttonId = keyIdMap[event.key];
|
| | if (buttonId) {
|
| | const button = document.querySelector(buttonId);
|
| | button.click();
|
| | }
|
| | }
|
| |
|
| | window.addEventListener("keydown", keybindListener, true);
|
| | }
|
| | });
|
| |
|