Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

fumo:ui

Scripts register native controls at startup. Fumoware owns their widgets, values, RGB animation, and config serialization.

import { ui } from "fumo:ui";

ui.collapsible({
    id: "advanced",
    label: "Advanced",
    collapsed: false
});

const enabled = ui.checkbox({
    id: "enabled",
    label: "Enabled",
    default: true,
    group: "advanced"
});

const mode = ui.combo({
    id: "mode",
    label: "Mode",
    options: ["Quiet", "Detailed"],
    default: 0,
    group: "advanced",
    visibleWhen: { id: "enabled", value: true }
});

Controls:

  • checkbox, sliderFloat, sliderInt, and color
  • combo and multiSelect
  • hotkey and textInput
  • button with onClick
  • label and separator
  • collapsible

All controls expose a live value property. Common options are id, label, group, visibleWhen, and disabledWhen. A color may opt into native RGB cycling with rgbCycle: true.

Control IDs are namespaced by package and may contain letters, numbers, _, -, and .. Values are serialized as script_value/<package>/<control> config assignments. Before another config loads, controls reset to their declared defaults so state cannot leak between profiles.