Code Monkey home page Code Monkey logo

obsidian-plugin-groups's Introduction

  • 👋 Hi, I’m @Mocca101
  • 👀 I’m mainly interested in CG, Procedural Art, Shaders, Game programming, but that's just the tip of the iceberg there are too many interesting Possibilities to count.
  • 🌱 I’m currently working on and with Shaders, Godot, Vu & svelte.

obsidian-plugin-groups's People

Contributors

mocca101 avatar rhhub avatar sundevista avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

rhhub

obsidian-plugin-groups's Issues

Unit of the Startup Delay Timer

Delay says a number but it it in seconds or minutes or hours or feet!?

It would be good if this information would appear right next to the number or at least in the documentation.

[FR] Device Specific Plugin Settings

Love this plugin! It's essentially a Better Plugin Manager adding load order and device support.

Given that, it might be an awesome solution to the problem of intra-device settings incompatibility, i.e. plugins you need different settings for different devices. Think like git, pandoc, etc, which need different paths, and style settings which may differ from Mac to Windows or Laptop to Desktop, etc.

What if for every device, we had the ability to select what settings were unique and this plugin patched each settings.json as it loaded the plugin on a certain device. I imagine it would be hard to implement a ui that mimics any other plugin's settings ui, so instead maybe users could select settings by some handle, i.e. plugin.category.subcategory.setting, and whatever type .setting is, this plugin just knows to save the current version of that setting and patch it in next time that plugin loads on that device. (Maybe implement something like fuzzy matching that searches for the title of each setting/section/category as well as the actual .setting selector which is shown in dark gray to the right of the actual setting title in the search list). Then, users can update a plugin setting on their device and select an 'update' button for that setting in this plugin to save any changes (maybe the button turns red if this plugin senses a difference, IDK). Granted, I'm assuming how Obsidian works is plugin settings files are read on initialization, maybe there's a hook you can implement to capture it and then patch it before the plugin actually gets it like you've done with the actual loading of the plugin. I'm no expert in plugins, though.

My current solution to this is to have completely separate .obsidian directories for each device, which is cumbersome to maintain and means the not-so-small .obsidian directory is 99.9% duplicated for every device of mine. This would be an incredible improvement over that!

[BUG] Plugin stops working / becomes disabled after closing and opening Obsidian

I have set up a few plugin groups for delaying the upstart of certain plugins. This works, but after I close and open Obsidian one or two times, the Plugin Groups plugin becomes disabled and all the plugins start without delay again.

The strange thing is that the toggle to disable Plugin Groups under community plugins stays as enabled. Nevertheless, the settings page for Plugin Groups disappears, and like I said, all plugins run from startup without delay, so the plugin stops working.

By disabling and enabling Plugin Groups on the community plugins page, I can re-enable the Plugin groups plugin so its settings page reappears, and it starts working again, for a while.

I don't know if this is relevant, but anyway, I installed the plugin using BRAT – not manually.

[FR] Detect "isDesktopOnly" manifest option

I would love a way to display-list plugin with :

  • "isDesktopOnly": true
  • "isDesktopOnly": false

(It's a manifest plugin option)

Some things can be done with that :

  • Auto link plugin with "true" to a group, ie a group "disabled on mobile" for example, and same for false
  • Filter based on this option

Plugins reload after turnimg them off with plugin groups.

I turned off all of my plugins in a group to troubleshoot one in particular, by restarting Obsidian with the plugins turned off and seeing the dev tools console output. However, when I restart Obsidian all the plugins are turned back on.

[FR] Allow to sort the plugin list

I would to love to have a way to sort the plugin list by the other group.

For example, I created a group X with some plugin. I create a new group, and in the plugin's list, I would to remove all plugin that are already in the list X.
So, I get a clean list!


Also, a way to hide all plugin that are already checked, so I can see all plugin not in the group.

[FR]: Reorder the plugins in one group which are loaded on startup

Feature Request

It will be perfect that the plugins in one group could be loaded in the order user defines.

Why it's important?

As you know different plugins have different startup speed. The order of the plugins may impact user experience. Some plugins may render the graphical interface slowly in inappropriate order.

To tell the truth, I've applied fast-startup template before which you can see here. Different order does impact user experience. By the way it's not neccessay to create too many groups for this.

Is it feasible?

There's no need to sort the plugin list in the group. I think it is already OK to enable plugins asynchronously in the order user defines. The fast-startup template could be reference. However UI may be complicated as there are moveup and movedown actions.

My Hope

I hope this feature will be added. It's not urgent. I love the plugin. Thank you for your excellent work. ❤️

Option to add newly installed plugins automatically to a group

I've been using tfthacker templater script to delay loading plugins on startup, but I stopped using it because I'm always trying new plugins and having to manually add each newly installed plugin to the list was a pain.

I wonder if you could add a toggle to a group that says "add newly installed plugins to this group".

The use case: If, for example, I have one group that is opened on startup delayed by 3 seconds. the new plugins would be added automatically instead of manually adding them each time.

The new plugins can be installed with the official plugin store or with BRAT, it would be nice if this feature handles both ways of installing plugins.

[FR] Device-specific Load on Startup/Delay settings

Hello. I have a group called "GuiExtend" that contains a lot of toolbars and extra panels that are compatible with both my desktop and mobile device. Although these panels are very useful on desktop, they often add clutter and increase plugin load time on mobile.

When I open Obsidian on Desktop, I want to allow this plugin group to load by default. However, on Mobile, I do not want it to load by default and I want it to instead load it via command if needed.

My current solution, which works perfectly fine.

Create GuiExtend group that is active on PC and Mobile with a command.
Create GuiExtendDesktop group that contains GuiExtend group and is only active on desktop and has "Load on Startup" checked.

Why this workaround could become an issue

Imagine that someone has three or four devices with different capabilities. One is a tablet, one is a mobile device, one's a desktop computer and one's an old laptop that struggles to open a web browser. In order to create custom "load on start up" or "delay" settings for each device, I would have to create a separate group per device -- or groups, if needing to configure multiple per device. This adds a lot of clutter.

Suggestion Method 1: Add toggle for device-specific startup/delay settings

If group is active on more than one device, add a toggle for "per device" to the startup area.
When toggled on, the devices will each be listed with their own "Load on Startup" and "Delay" settings.
When toggled off, all devices will use the same settings.

Suggestion Method 2: If more than one device is selected, show settings for both.

If multiple devices are present and "Active on All devices" is active (no devices are checked), make the heading say "Startup - All devices"
If multiple devices are present and one device is checked, specify under the Startup heading what device you're currently configuring these settings for. (e.g. - Startup - Mobile)
If multiple devices are present and multiple devices are checked, give settings per device the group is active on. (e.g. Startup - Desktop and then Startup - Mobile)

Delay start logic

I have found that the current delayed startup logic only involves waiting for a period of time after the software starts and then attempting to start the plugin. However, if the plugin itself is in an open state, delayed startup only starts it again after a while. I hope that delayed startup is not only about waiting for a period of time to start the plugin, but can also prevent or disable the plugin from being loaded the next time the software starts, Allow the plugin to be loaded after waiting for the set time

Compatibility with other plugins that check `app.plugins.enabledPlugins` for certain plugin dependencies

Some plugins, such as marcusolsson/obsidian-projects, make use of Dataview and, to do so, app.plugins.enabledPlugins is checked for the dataview entry.

I opened a feature request with that project to check app.plugins.plugins['dataview']?._loaded instead (FR: Support Mocca101/obsidian-plugin-groups with Dataview queries #448), however I think it would more appropriate for your plugin to use app.plugins.enabledPlugins.add(...) for plugins your project loads as that is the expected default behavior compatible with the app.plugins.enabledPlugins method.

Similarly, if you unload a plugin with your project, I would suggest using app.plugins.enabledPlugins.delete(...).

Thank you!

Loading plugins after workspace load that save state in the workspace

Some plugins (such as Pane Relief) do not support being loaded after the workspace starts, because they save workspace-specific state with the workspace. This is resulting in people opening issues on Pane Relief saying that certain functionality isn't working, because there's no warnings in this plugin to indicate that plugins might not support late loading. (It's also apparently causing some people not to realize that Pane Relief has those features in the first place -- e.g. persistent history.)

I'm not sure what the best way to handle this is. It's possible that I could change Pane Relief to allow another plugin (such as yours) to handle the workspace data loading, so that it can still work when loaded late. A generic way to do this would be great, because I expect to have other plugins in the future that do this, and allowing them to still work with late loading would be nice.

Would you be interested in a PR for that at some point? And/or perhaps adding warnings to the docs or plugin in the meantime? Thanks.

I just want to know this plugin in is still under development?

I believe this plugin is very important for the Obsidian users who want to manage their plugins according to different user cases. However, I am not sure if this plugin is still under development? Because I still find some critical problems, for example:
if I enable and re-enable a group, some plugins won't be enabled and no configuration sidebar for those plugins. (I am not sure a soft reload should be applied)

[Bug]: Repeat loading the same plugin

Bug

I created 2 plugin groups which are loaded on startup with different delay time. The two groups all contain Quick Explorer. Then Quick Explorer will be loaded twice. It is my mistake to include Quick Explorer in both groups. But it's not good to load the same plugin twice.

image

Suggestion

Maybe it's better to check the plugins which are loaded on startup and to remove the redundant plugins.
PS: Enable the same group twice by the plugin groups will not load the same plugin again.

FR: Device switch

It'd be cool to have the ability to choose a device for group (mobile/pc). It'll be very helpful to delay startup of a group of heavy plugins on mobile.

[FR]: Add a status bar menu allowing users to quickly enable/disable plugin groups

My wish

It would be fantastic to add a status bar menu allowing users to quickly enable/disable plugin groups. Users could enable/disable/manage plugin groups with a mini menu that shows up with a click of a button.

The idea comes from MySnippets plugin. It will be super convenient with a status button. Actually enabling/disabling plugin groups with commands is not that convenient. I hope this feature would be added. Thanks! 😄
image

[FR] Allow to disable plugin

Sometimes, I load plugin only for debugging purpose, and forgot to remove them. I would like to have a way to create a startup plugin group that disable plugin.

With my old Fast-Start script, I do that with await plugin.app.plugins.disablePlugin(plugin)

FR: Toggle for short notifications

On mobile, I want to be notified about loading of group, but I don't want to see list of plugins, I want to get only group name. So it'd be nice to have a checkbox or toggle for short version of notifications.

In other words, ability to remove data in red square.

Image

FR: organise plugins in groups in the community plugins tab

Hi,

Thank you for this great plugin.

Would it be possible to add UI items or grouping in the community plugins tab of obsidian?
It would make it much easier to manage our plugins and see which ones are not in groups.
For instance, instead of being in alphabetical order, our plugins could be viewed directly in regards to which group they belong to or in a section "no group".

Plug-in group not saving

I save a selection of plug-ins for a group, but when I re-start Obsidian, all the plug-ins are activated. The group is set to load at start up.

Is it possible that sync is re-setting the group?

Notice on further development

Unfortunately for multiple reasons I won't be able to work on developing Plugin Groups as actively as it would deserve. Thus it will most likely take me longer to respond.
I will try to fix exisiting bugs, though I can't say how fast and it will take some time before I get around to implementing new features.

If anyone is kind enough to create pull requests with fixes or new features I'll still try to merge those as fast as possible.

That is all to say: Development will continue, but unfortunately at a slower rate and potentially longer breaks.

Feature Request: Allow toggling Core Plugins

I would like to be able to toggle core plugins too, not just Community plugins. For example, when I use certain Community Plugins I turn off certain other Core Plugins because there functionality then becomes redundant.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.