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.
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.
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 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.
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.
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.
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.
@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!
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.
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.