Standard Location for Plugin Settings / Configurations

There are multiple approaches in use, some examples:

  • tab inside the plugin info, e.g. KaTeX, Menu Bar, Relink
  • tab in Control Panel > Settings, e.g. CodeMirror, Shiraz
  • among other core settings in Control Panel > Settings, e.g. Link to Tabs
  • tab in Control Panel (top level), e.g. Encrypt Tiddlers
  • tab in Control Panel > Developer’s tab, e.g. Auto Complete
  • configuration directly though the plugin’s UI, e.g. Command Palette

All of these approaches can be argued for and they make sense in their particular case, when considered on its own. But I think the whole picture is confusing when using many plugins, even the core ones.

Should we have a standard for where plugin configuration should be displayed by default?
I couldn’t find any such thing on tiddlywiki.com, tiddlywiki.com/dev, or on the forum.

I think a reasonable approach would be that every plugin displays its configuration in the default place and additionally in some other place, if that is practical in a particular case (e.g. subplugins’s config together with parent plugin, multiple interacting plugins from one developer together). This would give freedom to place the config wherever the developer thinks is best and at the same time provide users with a predictable place to find the plugin config (or know for sure that it doesn’t have any).
Of course I only mean a recommendation or guideline, I don’t mean it should be in any way enforced or verified though the core.

As to what the default place should be, I’d propose tab inside the plugin info or tab in CP > Settings.

1 Like

Hi,
You made a very good point here. I think a “Best Practice Guide” should be similar to:

  1. Every plugin should have a “settings” tab, directly in the “Plugins” list.
    1.1 Which, optionally can be transcluded into the “readme” tab, if and only if the readme is very short
  2. New or updated plugins should use the relatively new feature to tag your settings tiddler with:
    2.1 $:/tags/ControlPanel/SettingsTab, which will
    2.2 create a new tab in the ControlPanel → Settings tab, similar to the codemirror edition
  3. Top-level ControlPanel is reserved for the core UI
  4. If possible – plugin settings should have a “Reset Settings to Default” button. or
    4.1 the UI should show what has been changed. eg: “Show Changed Settings” or something similar

add 2)

  • The tag: $:/tags/ControlPanel/SettingsTab has been introduced with TW v5.3.0 as a “Usability Improvement”

  • For plugin authors with several plugins it may be an advantage if the ControlPanel → Settings tab would be the similar to the $:/plugins/

    • eg: Tiddlywiki | WikiLabs | <you name it> | …
    • Code example will follow

I’ll create a HowTo post with a wiki when we had some time to discuss it here and it should be part of the core docs too.

just some brainstorming
-mario

4 Likes

I’m not 100% sure about this one. It may be better if there is 1 tab per plugin. Because if the Settings-tab becomes messy, that is an indication, that there are too many plugins, where probably 80% are not needed because they are not used.

From my experience, new users tend to include every plugin they like. … But plugins should only be used if needed

up for discussion :wink:

1 Like

I concur with @pmario – the preferred way for plugins to expose their settings is via a plugin info tab called “settings”.

I would also suggests another posibility for plugins with simple settings. Using a tag list include them in a single tiddler, because in these cases a whole tab may be overkill.

The CodeMirror plugin seems to go against that preference, as exposes its settings under the Settings → Code Mirror tab:

Is there a particular reason for that? I’d think it might because of how integrated with the wiki the plugin it is, or the amount of settings (and also it having its own plugins) or maybe just legacy reasons. But I am curious now!

Agree with @pmario. We need consistency.

I’d say it all belongs in one place, no guesswork, settings tab in the plugin. An echo in ControlPanel settings only if the discussion here demands it. And even then, they must be identical (a pure, unadulterated, transclusion thereof).

I’d also go a step further:

Amnesty for plugin creators up to and including 5.3.2, beyond which time, TW officially sanctioned/supported/promoted plugins will/must conform to the adopted spec.

Said spec is the consensus derived from this discussion and none other.

Seriously, we need this.

This will “bury” the settings deep within the $:/ControlPanel. For example, to access the settings for “SomePlugin”, you would need to:

  • View $:/ControlPanel
  • Select top-level “Plugins” tab
  • In the “Current installed plugins” section of that tab, select the “Plugins (n)” tab (it might not be the default)
  • Find the desired plugin by it’s registered plugin name
  • Click the “>>” to view that plugin
  • Select the “settings” tab for that plugin

To make this significantly easier to access, I suggest that all plugins that have settings should ALSO add a tab to $:/ControlPanel>Settings (using the new $:/tags/ControlPanel/SettingsTab tag added in v5.3.0). This would also provide consistent access to settings for add-ons that are not installed as plugins (e.g, as set of tiddlers imported as a “bundle”)

2 Likes

I agree though I have a conflict of interest – I put all the settings for my plugins in one nested tab at the top of the settings because:

  • It’s much easier to work with during development
  • I didn’t even think before that you can put those in the plugin tabs
  • I don’t like to click so much to find relevant setting, something that I find problematic already in vanilla TW (levels of nesting for Cascades is already enough for me to always groan when I need to look them up)

There is also the issue of space, when you unroll a plugin you still have all the remaining context of the settings around making it harder to work with. Though I guess you can just click on the plugin to open it all up in a separate tiddler, so nvm.

I don’t believe I have any officially recommended plugins at the moment, but:

I’d be sad if I that happened and I’d have to have move the settings to the plugin tabs.

No, no, understand I’m voting for consistency, #1. Where they go should be a matter of consensus, as derived here.

Personally, I’d favored CP, but I’m swung now by Eric’s disinclinations. ← consensus!


Dear Firefox spellchecker - disinclinations is a word!

I think there should be;

  • a plugin settings tab
  • A copy of this as named plugin settings tab, in the control panel if there are a lot of settings or need regular access.
  • The ability for plugins to publish some simple or high level settings in Control Panel > Settings > Custom tab, in a similar way to the tiddlywiki tab.