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.
AGPL-3.0-or-later — see LICENSE. Copyright (C) 2026 xscriptor x@xscriptor.com.
This repository is licensed under the GNU Affero General Public License, version 3 or any later version. If you modify the software and let users interact with it over a network, you must offer them the corresponding source.
Releases published before 2026-11-13 were distributed under the MIT License and remain available under those terms.
Third-party components, fonts, icons, images, sounds, vendored code and other assets keep their original licenses and are not covered by this license. See THIRD-PARTY.md / CREDITS.md where present.
Bundled third-party plugins may keep their own license and attribution; the
_template/ scaffold is Apache-2.0 for user-created plugins. See
PLUGIN-LICENSING.md.