The Plugin SystemΒΆ

Plugins are Javascript modules loaded into qtermy and used to provided extended functionality. Plugins are loaded from $HOME/.local/share/qtermy/plugins and prefix/share/qtermy/plugins. Files in HOME take precedence over files in the system directory. System plugins can be disabled using the --nosysplugins argument to qtermy and plugins can be disabled entirely using the --noplugins argument.

Each plugin may register one or more features providing a unique capability. Features are described in the pages below. Use the Manage Plugins window to view the set of loaded plugins and their features. Plugins can also be unloaded and reloaded from that window.

qtermy embeds the Chrome V8 engine by Google to load and run plugins. Plugins are parsed as ECMAScript 6 modules and may use language constructs defined therein, with some caveats:

  • Dynamic module import is not supported yet.
  • Source files must use the .mjs extension commonly used for ES6 modules.

To get started with plugin development, examine the sample plugins distributed with qtermy. The files ending with .example contain detailed comments describing their respective features and can be renamed in order to load them. When developing a plugin, use the Manage Plugins window to reload it after making changes while watching for messages and exceptions in the Event Log. Use console.log() to print log messages directly from Javascript.


qtermy's plugin API is not yet stable and may change in future releases.