A notification plugin for the profanity XMPP client
This is a plugin for the profanity XMPP client to flash an LED on incoming messages. It currently supports the ThinkLight LEDs on ThinkPad laptops as well as the blink(1) USB LED.
First, download the source code. You can either download the release tarball linked above or get the source directly from git.
Now you get to compile the code. To build the plugin with all its features:
./configure
You will need to have the hidapi library installed for this. If you don't need support for blink(1) devices you can disable it and you won't need to install the hidapi library:
./configure --disable-blink1
Now compile and install the plugin:
make cp src/.libs/blink.so ~/.local/share/profanity/plugins/
You should now be able to load the plugin in profanity:
/plugins load blink.so
If all went well you should see something like this:
02:36:37 - Using Thinklight for notifications 02:36:37 - Loaded plugin: blink.so
If you get any error messages check profanity's log file at ~/.local/share/profanity/logs/profanity.log
.
To indicate that everything works as it should, your active device should blink when profanity starts. Currently the plugin supports two types of devices out-of-the-box:
If you compiled profanity-blink with blink(1) support the USB LED device should be used by default. If it's not, check your error log.
You will need to grant yourself write permissions to /sys/devices/platform/thinkpad_acpi/leds/tpacpi::thinklight/brightness
for this to work. You may want to make that change permanent by adding it to your /etc/rc.local
script.
With a bit of extra work you can use any other type of LED device known to your kernel. Just have a look at /sys/class/leds/
to get a list of all devices in your machine. To use any of them instead of the ThinkLight, change the THINKLIGHT_BASE
definition in blink.c
before you compile the plugin, then adjust the device permissions as described above.
This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
For more information on this, and how to apply and follow the GNU GPL, see https://www.gnu.org/licenses/gpl.html.