Macotron

Menu bar

Macotron lives in the menu bar. Its own icon opens the Macotron menu, and plugins add their own items next to it: meters, clocks, the next meeting, the current track.

The Macotron menu

Click the Macotron icon to open its menu. Plugins can add rows at the top. The bottom of the menu always has these rows:

RowWhat it does
Open LauncherOpens the launcher. The shortcut shown is your launcher hotkey (⌥Space by default).
Reload PluginsLoads every plugin again. Shortcut ⌘R while the menu is open.
Enable Hot Reloading / Disable Hot ReloadingTurns Hot Reload on or off. With it on, a saved plugin file reloads at once, without a review.
Review & Reload (n)Shows only when plugin files changed on disk. Opens the review for the changed files.
Open Config FolderOpens your workdir in Finder. Shortcut ⌘, while the menu is open.
Check for Updates...Checks for a new Macotron now. When a scheduled check already found one, the row reads Update to version... instead.
Settings...Opens Settings.
Quit MacotronQuits the app.

To hide the Macotron icon, clear Show in menu bar in Settings → General. Plugin items stay in the menu bar.

Badges on the icon

A small badge on the Macotron icon tells you that something needs a look. When more than one thing applies, the icon shows the most important one, in this order:

BadgeMeaningMenu row
Red dotA permission that Macotron or a running plugin needs is missing.Permissions needed, with the names. Click it to open the Permissions tab.
Orange dotPlugin files changed on disk and wait for your review.Review & Reload.
Orange arrowsHot Reload is on. Plugins load without a scan.Hot Reload is on. Click it to turn Hot Reload off.
Blue arrowAn update is available for an installed plugin.A blue row that opens the plugin updates.

See Permissions and Security for what each one asks of you.

Plugin status items

A plugin can put its own item in the menu bar. An item can show an SF Symbol, an image, or an SVG; a title with an optional second line; and a small graph. A click runs an action or opens a menu. Many built-in plugins work this way:

This is the Reminders plugin, slightly shortened. It shows the next reminder with its due time on a second line, and lists the rest in its menu:

async function paint() {
  const items = (await macotron.reminders.list()).slice(0, 8);
  const next = items[0];
  macotron.menubar.status("reminders", {
    title: next ? next.title : "Reminders",
    subtitle: next ? "Next up" : "",
    sfSymbol: "checklist",
    secondary: true,
    menu: items.map((item) => ({
      title: item.title,
      onClick: () => { macotron.reminders.complete(item.id); paint(); },
    })),
  });
}

paint();
macotron.every(60_000, paint);

Call status() again with the same id to repaint the item. When a plugin is disabled or deleted, its items go away on the next reload. See macotron.menubar for every option.

Hidden and crowded items

macOS can keep an item out of view in two ways, and Macotron tells you about both on the plugin's page in Settings → Plugins, under Menu Bar:

Settings → Permissions also lists Menu Bar Items while an item that a plugin asked for is hidden, either dragged out or switched off for Macotron in System Settings → Menu Bar. Show… puts back the items it can and opens the System Settings pane for the rest.

A plugin can mark an item as fine to hide (required: false). Macotron does not warn about those.

See also