xooooooooox135 downloadsGroup your ribbon and launch commands from a configurable ribbon menu.
An Obsidian plugin that organizes the left ribbon and launches your commands from configurable ribbon menus.
ribbon-organizer icon) and can be grouped with separators.data.json, so it follows whatever vault sync you use.Via BRAT: add xooooooooox/obsidian-ribbon-organizer.
Groups are managed from a single column mirroring the ribbon's final order: drag icons between groups, drag groups to reorder. Groups start collapsed — the header shows a member count, or a visible/total pill when some members are hidden — and filtering reveals matches inside collapsed groups. Icons you haven't assigned fall into the ungrouped bucket, so newly installed plugins land in a predictable spot. Desktop and tablet ribbons are reordered in place; on phones the plugin reorders the navbar ribbon menu (the ≡ button) as it opens, separators included.
Hiding writes Obsidian's native hide and Commander's hide list together (when Commander is installed), and showing clears both. Caveats: Commander matches icons by title, so two same-titled icons share the hide, and renaming a hidden icon makes it visible again while leaving a stale Commander entry behind. On phones, hidden icons also disappear from the navbar ribbon menu — including icons hidden only in Commander, which Obsidian's own menu would still show.
Each menu is one ribbon icon (icon and name editable) opening its own command list. Drag entries to reorder them; dropping one on a menu header sends it to that menu's end (its own header included). Every row shows the command id it is bound to; a command not installed on the current device is greyed out and recovers automatically once its plugin is installed. Caveat: renaming a menu changes its ribbon id, so it falls out of its ribbon group back into Ungrouped — re-drag it to restore.
Copy ribbon diagnostics copies a JSON snapshot — platform, both hide layers per icon, and the outcome of the last phone-menu grouping pass — to the clipboard. Attach it when reporting mobile issues.
npm run build — typecheck + production bundle · npm test — unit tests · npm run lint — zero-warning baselinedocs/ARCHITECTURE.mdMIT