profanity-blink

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.

Download

Installation

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.

Supported Devices

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:

blink(1)

blink(1) USB LED

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.

ThinkLight

ThinkLight

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.

LEDs

Other devices

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.

External links

License

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.