Skip to content

0xAF/openwebrxplus-plugins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

layout title permalink
page
OpenWebRX+ Plugins Home
/

OpenWebRX+ Plugins

MIT License

OpenWebRX+ Plugins is a community-driven collection of plugins that extend OpenWebRX+ with new features, UI enhancements, and integrations for SDR receivers.

Table of Contents

Project Overview

This repository provides a set of plugins for OpenWebRX+, allowing users to customize and enhance their SDR experience. Plugins are grouped into:

  • Receiver Plugins: Enhance the receiver UI and add new features.
  • Map Plugins: Add new layers or features to the map interface.

Each plugin is documented in its own folder.

Beginner Quickstart

  1. Find your htdocs folder and set a helper variable:
export OWRX_FOLDER=$(dirname "$(find / -name openwebrx.js 2>/dev/null | head -n1)")
  1. Create the folders and download the init.js sample file:
mkdir -p "$OWRX_FOLDER/plugins/receiver"
cd "$OWRX_FOLDER/plugins/receiver"
wget https://0xaf.github.io/openwebrxplus-plugins/receiver/init.js.sample -O init.js
  1. Edit the init.js file and load the desired plugins:
${EDITOR-nano} init.js
  1. Keep the top two Plugins.load lines (utils, notify). They are shared dependencies. Add or remove names in PluginsToLoad to pick which plugins you want.
  2. Refresh the OpenWebRX+ page to see the changes. If nothing changes, restart varnish/nginx as noted below.

Plugin List

Receiver Plugins

Name Description
freq_scanner Adds a frequency scanner)(Joerg)
smeter Show S-Meter (needs calibration!)(Joerg)
search_bookmarks Search all OWRX bookmarks and click to tune (Yannis)
toggle_scannable Toggle the scannable state of bookmarks with right mouse button
tune_precise Add buttons for precise frequency tuning (LZ2DMV)
mouse_freq Show frequency under cursor on the waterfall
doppler Track Doppler shift/effect of satellites
magic_key Set MagicKey without typing it in the browser's address bar
screenshot Take screenshot of the waterfall
screen_reader Provide spoken notifications for accessibility
antenna_switcher Antenna switching for Raspberry Pi devices (LZ2DMV)
tune_checkbox Enable mouse-scroll to zoom by default (LZ2DMV)
frequency_far_jump Jump to a frequency outside the current profile (LZ2DMV)
keyboard_shortcuts (deprecated) Add keyboard shortcuts
colorful_spectrum Colorize the spectrum analyzer
connect_notify Send/receive notifications on user connect/disconnect
sort_profiles Sort profiles by name
utils Utility plugin, required by many plugins
notify Notification utility plugin
example Example plugin for developers
example_theme Example theme plugin for developers

Map Plugins

Name Description
layer_qth_maidenhead (deprecated) Add Maidenhead (QTH) grid to the map

Thirdparty Plugins

Name Description
owrxantswitcher Switch antenna ports using a WebAPI on the server.

Detailed Installation & Loading Instructions

  1. Find your OpenWebRX+ htdocs folder
    Use the following command to locate it:

    find / -name openwebrx.js
  2. Typical locations for htdocs:

    • /opt/openwebrx/htdocs
    • /usr/lib/python3/dist-packages/htdocs
  3. Create the plugins folders if they doesn't exist

    mkdir -p /path/to/htdocs/plugins/{receiver,map}
  4. Create or edit the init.js file inside the coresponding plugin type folder (receiver or map)
    Use the provided templates:

  5. Add plugin loading lines to your init.js file if you're not using the provided init.js - see Beginner Quickstart
    Use the async pattern so dependencies load first:

    (async () => {
      await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/utils/utils.js');
      await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/notify/notify.js');
      await Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/receiver/tune_precise/tune_precise.js');
    })();

Raspberry Pi & Docker Notes

  • Raspberry Pi:
    If using Raspberry Pi images, a caching service (varnish) may prevent plugins from loading immediately after editing init.js.
    Restart services to clear cache:

    sudo systemctl restart varnish nginx
  • Docker:
    For Docker images (openwebrxplus), bind-mount the plugins folder and follow the above instructions. See Docker image documentation for details.

Developing Plugins

If you want to create new plugins:

  1. Get familiar with the OWRX+ JS codebase.
  2. Review the example plugin and example theme plugin.
  3. Develop plugins locally in $OWRX_FOLDER/plugins/{type}/your_plugin/.
  4. Load local plugins by folder name:
    Plugins.load('your_plugin');
  5. Load remote plugins by URL (example for map plugin):
    Plugins.load('https://0xaf.github.io/openwebrxplus-plugins/map/layer_qth_maidenhead/layer_qth_maidenhead.js');

Plugin Structure

  • Each plugin lives in plugins/{receiver|map}/plugin_name/ and has a matching JS entry file plugin_name.js.
  • Plugins.<name>.init() must return true on success; return false (or nothing truthy) to abort when a prerequisite is missing.
  • Set _version (for dependency checks) and no_css = true if you do not want the loader to fetch plugin_name.css automatically.
  • By default, the loader tries to load a sibling CSS file after the JS. If you ship CSS, leave no_css unset.
  • Load dependencies explicitly with await Plugins.load('dependency') before loading plugins that need them.

Hosting on GitHub

To host plugins on GitHub, use GitHub Pages for correct JS Content-Type.

Contributing

Contributions are welcome!

  • Submit pull requests, providing the same structure for the folders as the rest of the plugins.
  • For major changes, open an issue first to discuss.
  • Please follow the style of existing plugins and documentation.

Support

Use these plugins at your own risk. No warranty is provided.
For support, contact LZ2SLL or join the OWRX+ Telegram Chat.

FAQ

Q: My plugin changes are not visible after editing init.js.
A: If using Raspberry Pi images, restart varnish and nginx as described above.

Q: Where do I put my local plugins?
A: In the htdocs/plugins/receiver or htdocs/plugins/map folder of your OpenWebRX+ installation.

Q: How do I load a plugin from a URL?
A: Use Plugins.load('https://.../plugin_name/plugin_name.js'); in your init.js.


Contributors


License

This project is licensed under the MIT License.

About

Plugins collection for OpenWebRX+

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5