Plugin standard and the concentration folder for every equisdots plugin — converted from the stack, samples, or third-party contributions.
| Path | What |
|---|---|
docs/plugins.md |
Plugin standard — manifest, folders, enablement, scan + loader + CLI contracts |
docs/conversion.md |
Conversion roadmap: which stack features become plugins, and their status |
docs/nyx.md |
Review: completing Nyx's conversion and its extensibility through the plugin system |
docs/testing.md |
How to deploy the experimental branches on a live session (checklist + rollback) |
plugins/ |
Every plugin lives here — one folder per plugin, folder name = plugin.json → id, any origin; _template/ is the scaffold |
registry.json |
Install-time index: every known plugin and its source repo (for dots plugins add, future store) |
tests/smoke.sh |
Local checks (no CI): manifests, qmldir imports, scan resolution, lints plus hub id integrity (duplicate ids, registry consistency, every hub plugin registered) |
- A plugin declares itself with
plugin.jsonand is discovered by scanning folders:~/.config/hypr/plugins/<id>/(managed bydots) and~/.config/hypr/plugins-user/<id>/(yours; wins onidcollisions). - The settings panel grows a Plugins group: every installed plugin shows up with an enable/disable toggle and a Configure shortcut to its own page.
- Enable state lives in the plugin's own settings file
(
~/.config/hypr/plugins/<id>/settings.json) under the manifest'stogglepath (plugins.<id>.enabledby default, or the plugin's own switch — Nyx, for example, points atmascots.enabledso there is only one switch); the coresettings.jsononly carries the config-menu flag. hypr/mixedplugins ship ahypr.luafragment that the Hyprland config runs at load time with an injected SDK (mod.*). A failing plugin never aborts the config; errors land in~/.cache/equisdots/plugins-report.json.dots plugins list|enable|disable <id>does the same from the CLI.
Try the sample:
mkdir -p ~/.config/hypr/plugins-user
cp -r plugins/hello ~/.config/hypr/plugins-user/
# Settings → Plugins → enable "Hello Plugin", then press SUPER + SHIFT + HStatus: POC — the standard is a draft; see docs/plugins.md for the
contracts, the acceptance criteria and the open questions.
MIT — see LICENSE.