Plugin Management & Lazy Loading

Hey everyone,

Quite some time back I created a partial plugin that added a few ways to change when your plugins are enabled. A plugin manager of sorts.

In its current state, it adds a form of “lazy loading” (like shown by TFTHacker here) and the ability to toggle any given plugin with a command or hotkey.

However, I’ve abandoned this project due to lack of interest. Beyond a few bugs (mostly with concurrency), it works.

So, what value do you feel this plugin offers?

P.S.
Have any suggestions for other ways to manage plugins? For instance, I’ve considered a feature to enable plugins only within certain notes. Though, I suspect plugins like DataView might have some issues.

8 Likes

This plugin is closely related: GitHub - swar8080/obsidian-plugin-update-tracker: Know when installed obsidian plugins have updates and evaluate the risk of upgrading

I can see a merging of the two.

Merge the plugin? I certainly never considered that. Update Tracker does appear to share similar values to my plugin, so I could see that happening.

What benefits do you see by merging the two plugins?

I guess I misunderstood. I read your post as if you were done working on it, hoping for someone to take over. Admittedly, I was very distracted while reading it.

The main benefit I could see would be one place for all plugin management related settings.

Ah, I understand. No worries. I’m really trying to gauge if there is any interest for such a plugin. If not, I won’t any reason to polish it up for a real release.

Yes I would be very interested. This is how many plugins I have:

	Plugins installed: 146
	Plugins enabled: 98

On my M1 Max, it’s fine. But on my iPhone Xr, I dread launching the app so much that I rarely use it.

1 Like

I think it’d be cool to add the ability to make some plugin lists and set startup delay for each of them. Each list may have additional conditions too (such as target device or internet connection, for example).

I was trying to do a plugin for same purposes with TfTHacker’s post as origin, but stopped at the moment of making UI.

I’m glad to see somebody might find some good mileage out of the plugin.

I have nowhere near 98 plugins enabled, but how would feel about testing a pre-release version to gauge the startup benefits?

P.S.
I did notice that the mobile app for IOS got a lot faster recently; though, I suppose it could just be some change to my vault.

2 Likes

I like those condition options. I could easily create a toggle for mobile/desktop, but I may have to get creative for a specific device or internet connection.

Thanks. :smiley:

1 Like

For sure, I’d be happy to test.

Btw, there’s another reason why this is more important on mobile than desktop. On desktop, just like an IDE, I launch the app in the morning and keep it up all day.
On mobile, well, you know how you switch apps and the OS kills the app. So you suffer through restarts several times an hour.

2 Likes

I would be glad to test a pre-release version

1 Like

I meant mobile/pc as target devices

Great, I’m glad to have found a couple interested people.

I’ll fix it up for y’all. I should be able to get that done tomorrow. It’ll be posted on Github with instructions, so I’ll link it here when it’s ready.

Thanks.

P.S.
Can I reply to multiple people at once? I didn’t meant to leave you out @obsequious. Thank you too.

2 Likes

Finally got the main bugs squashed, so it’s usable now. If you’re interested (@decatetsu & @obsequious), you can find the instructions here: GitHub - ohm-en/obsidian-plugin-manager: Allows better management of Obsidian.md plugins.

Please note, the plugin doesn’t yet override the normal plugin menu, so using both does cause some issues. If you want lazy loading, make sure not to toggle plugins from the usual ‘Community Plugins’ tab. Fixing this is my primary concern before release.

Also, for now, the startup delay (lazy loading) is set in milliseconds, not seconds.

Let me know if you have any issues. It’s still a work in progress.

2 Likes

@ohm.one Thanks! Plugin at its core is excellent. On my cheap Samsung, plugins are loaded in 1.1 second (x5 faster), and it’s awesome! I’ll test it more completely tomorrow, but it’s already nice. Waiting for a device (pc/mobile) toggle.

Also, I have an idea how to organize plugins by their delays, I see it like a kanban board where each plugin list has its own delay. You can play around this idea if you wanna.

@ohm.one Thanks for your pre-release. I’m trying to get this working. Right now I need to build it from source because I need to do a few tweaks to facilitate turning on my 100 plugins. But I can’t build it cause it’s missing rollup.config.js

Yes, I was worried it may have issues as the plugin count increased (for one not being able to search plugins).

As for Rollup, it was not used. The plugin right now is made in pure JS (no TS or external libraries), so there’s no need to “build it”. This may change in the future, but this makes it easy to manage as a literate program.

If you’re making changes, please either submit a request on Github so I can merge or, at least, let me know what features your looking to add.

Best of luck! :smiley:

P.S.
With 100 plugins, it may be easier to edit the data.json file to change the lazy load delay. You simply have to make sure enabled is set to true and a (any) delay is set. Both are required to set lazy loading. (Though a delay value of less than 100 could be detrimental.)

Hi All. Just tripped across this initiative. This is awesome. My article and its instructions is not easy for many to implement, this is a much better approach.

I have not tried it yet (but will). Do you support different settings on mobile or desktop, or is it universal?

In an ideal world (and this is crazy) I could set this configuration per device. I would also be able to choose which plugins are delayed and don’t even load under certain devices.

Like I don’t need DB folder on my little iPhone :slight_smile:

Great work y’all!

Happy to see the FastStart script coming in plugin form! I think on Mobile it’s extremely useful, on desktop I see use for turning plugins on/off with hot key, or turning a set of plugins on/off with a hot key. For different types of work, Kind of like ‘simple fast Obsidian’ vs. ‘plugin enhanced Obsidian’.
And there are plugins that sync articles into your vault like rss, Readwise and Matter. I really don’t need them running and syncing all the time, actually every couple of days would be enough.

1 Like