68800cf8233c731da0b274a37d0ca67ddc17c553
Some users requested the ability to mute notifications from specific JIDs without disabling all sounds. This change introduces `mute` and `unmute` commands to allow fine-grained control over sound playback. While implementing this, the sound path expansion logic was improved by switching to `pathlib` with `lru_cache` for efficiency and clarity. Playback is now also rate-limited to avoid overlapping audio triggers from rapid message bursts. This lays the groundwork for more user-specific customization of sound notifications while keeping the experience smooth and reliable. Additionally the bug with ignoring sound's `kind` was fixed: now the plugin respects specific sounds set for rooms, chats and private messages within rooms. Finally, code was formatted via Black to avoid ambiguity in the formatting.
profanity-plugins
Building Profanity with plugin support
Dependencies required:
autoconf-archive
libtool
For Python plugins the following is also required:
python-dev
Installing plugins
Use the /plugins install command, e.g.
/plugins install ~/projects-git/profanity-plugins/stable/say.py
See the /help plugins command for further plugin management options.
Branches
0.5.0: Maintenance branch compatible Profanity 0.5.00.5.1: Maintenance branch compatible Profanity 0.5.1master: Development for Profanity 0.6.0 - 0.11.x
Developing plugins
API Documentation:
External plugins
- moj - Replace emojis
- profanity-copy-message-plugin - Copy messages to clipboard.
- profanity-discord - Forward jabber pings on to discord through a webhook.
- profanity-notifycmd - Launch a custom shell command when you receive a message in profanity.
- profanity-plugin-sanitise - Clean incoming messages.
- profanity-shortcuts-plugin - Store custom substitution shortcuts and use them in chats.
- profanity-plugins by H3rnand3zzz - Array of different QoL plugins.
- profanity-plugins by Reimar - Collection of plugins
Description
Languages
Python
75.7%
C
20.5%
Makefile
1.8%
Awk
1.4%
Shell
0.6%