No description
Find a file
johnny1093 b83e10af6a fix: remove this.forceUpdate() calls that always throw
CommandViewer, MacroViewer, and MobileModifyComponent are all plain
function components (not classes), so `this` inside their handlers
is undefined - this.forceUpdate() has never been able to succeed
since the plugin's first release, it just throws before Preact ever
gets a chance to visually update in place. The actual state mutation
and settings.save() on each of these handlers already happens before
the throwing line, so removing it doesn't change what the UI shows;
it removes a guaranteed, silently-swallowed error on every add/
remove/reorder/rename/recolor action.

Also drops mobileModifyComponent's cmdr-icon-changed listener, whose
only job was calling the broken forceUpdate.

Given this changes real code paths, worth a manual pass: add/remove/
reorder/rename commands and macros from the settings tab, and check
the mobile icon-picker modal, to confirm nothing regresses now that
the throw is gone.
2026-07-11 09:43:10 -04:00
.github Update GitHub Sponsors username in FUNDING.yml 2026-04-21 10:51:54 -04:00
locale test: add vitest suite for macros, icons, modes, styles, and locales 2026-07-11 09:13:56 -04:00
scripts feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
src fix: remove this.forceUpdate() calls that always throw 2026-07-11 09:43:10 -04:00
.editorconfig feat: 🚧 Added initial plugin boilerplate 2022-04-21 21:00:51 +02:00
.gitignore feat: support new icon-set after obsidian 1.7.3 2024-10-11 08:47:06 +08:00
.npmrc feat: 🚧 Added initial plugin boilerplate 2022-04-21 21:00:51 +02:00
AGENTS.md feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
app.css feat: remove text toolbar from Commander (extracted to standalone plugin) 2026-06-13 19:25:09 -04:00
eslint.config.mts lint: scope off no-command-in-command-id for the settings command 2026-07-11 09:26:25 -04:00
LICENSE.md Create LICENSE.md 2022-07-12 21:45:38 +02:00
manifest.json fix: bump minAppVersion to 1.4.4 to match actual API usage 2026-07-11 09:26:32 -04:00
package-lock.json Migrate ESLint to flat config with eslint-plugin-obsidianmd 2026-07-10 12:09:46 -04:00
package.json Migrate ESLint to flat config with eslint-plugin-obsidianmd 2026-07-10 12:09:46 -04:00
README.md Update README.md 2022-08-07 17:25:44 -04:00
tailwind.config.js feat: add tailwind support (hacky) 2022-11-29 20:17:13 +01:00
tsconfig.json deps: upgrade 2022-11-29 19:46:59 +01:00
versions.json chore: correct version to 0.5.6 2026-06-13 19:46:22 -04:00
vitest.config.ts test: add vitest suite for macros, icons, modes, styles, and locales 2026-07-11 09:13:56 -04:00

commander cover (2) GitHub tag (Latest by date) GitHub all releases

Commander is a plugin for Obsidian which allows you to add commands to different parts of the user interface.

commander overview

Features

  • add commands
  • remove commands
  • re order commands (via plugin settings menu)
  • edit commands
  • hide commands added by Obsidian or other plugins
  • choose which devices commands appear on (for sync users)

Demo

Commander Demo

How you can improve this Plugin

Feedback

Share feedback, issues, and ideas on Github, with our Commander feedback form, or tag the authors on Discord!

Adding translations

If you want to help and translate this Plugin to new languages, see locale/. Copy the English (en.json) File to your language file and start changing the sentences on the right.

Credits

Footer