wayfire-plugin installs and updates external Wayfire plugins in a user-writable managed prefix:
$XDG_DATA_HOME/wayfire/plugin-manager/install
If XDG_DATA_HOME is unset, this is usually:
~/.local/share/wayfire/plugin-manager/install
Wayfire searches the managed prefix for plugins and metadata at startup. If the running compositor has the IPC plugins enabled, wayfire-plugin also asks it to reload plugin metadata and retry loading plugins after successful installs and updates.
The wayfire-plugin.json manifest is optional. Without one, wayfire-plugin uses the repository directory as the plugin name, builds it with Meson, and prints the default reminder to enable the installed plugin in core/plugins.
During plugin builds, wayfire-plugin provides a temporary wayfire.pc that points plugindir and metadatadir at the XDG user directories. The original dependency flags, version, and ABI remain unchanged. Installations that hardcode other destinations are still tracked through Meson's install log when possible.
Install a plugin from a Git URL:
wayfire-plugin install https://github.com/example/wayfire-plugin-exampleInstall a plugin from a local checkout:
wayfire-plugin install ~/src/wayfire-plugin-exampleUpdate all managed plugins:
wayfire-plugin updateUpdate one plugin:
wayfire-plugin update plugin-nameRebuild all managed plugins for the current Wayfire target:
wayfire-plugin rebuildList managed plugins:
wayfire-plugin listShow paths and the Wayfire version detected through pkg-config:
wayfire-plugin pathsUninstall a plugin and remove its manager state:
wayfire-plugin remove plugin-nameremove runs the manifest's uninstall command when one was provided, otherwise it runs the generated Ninja uninstall target. If tracked files cannot be removed, the state is retained so the command can be retried with appropriate permissions. If neither uninstall method is available, installed files are left untouched.
Print the tool's phases, debug messages, and commands:
wayfire-plugin --verbose install https://github.com/example/pluginStart URL installs from a fresh clone:
wayfire-plugin --clean install https://github.com/example/plugin--clean removes the managed checkout/build state for URL installs. It does not delete local source directories.
wayfire-plugin installs plugin files and metadata, but it does not edit your Wayfire config. To enable a plugin, add its name to the core/plugins option in your config file.
Example:
[core]
plugins = alpha animate command my-pluginAfter editing the config, restart Wayfire or use your usual config reload workflow.
The tool builds against the wayfire found by pkg-config. If you have multiple Wayfire installations, select the desired one with PKG_CONFIG_PATH before running the tool.
Example:
PKG_CONFIG_PATH=/opt/wayfire/lib/pkgconfig wayfire-plugin rebuildIf IPC is available, the tool compares the running compositor against the pkg-config target and warns when they differ.