
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
bsnotifier
Advanced tools
Command line application that shows a popup window when the battery is low. This Python script can be used to notify battery status in i3wm environments.

This application can be simply installed by running:
pip install bsnotifier
if you want to install from a source distribution:
git clone https://github.com/eccanto/battery-status-notifier
cd battery-status-notifier/
python setup.py install
To start the notifier you must run the command line application:
bsnotifier
By default the application will check the battery status every 1:30 minutes, if the battery percentage is less than
10% a popup window will be shown.
Auto start the notifier application in i3:
Linking the application executable to make it accessible to other users.
BSNOTIFIER_PATH="$(which bsnotifier)"
sudo ln -s "${BSNOTIFIER_PATH}" /usr/bin/bsnotifier
Edit i3 config file.
# ~/.config/i3/config
...
exec --no-startup-id bsnotifier -o "$(mktemp)"
...
$ bsnotifier --help
Usage: bsnotifier [OPTIONS]
Command line application that shows a popup window when the battery is low.
Options:
-i, --interval INTEGER The time interval in seconds that the script waits
before checking the battery again (default: 150.0
seconds).
-l, --level INTEGER The battery percentage at which the popup window is
displayed (default: 10).
-s, --silent Do not play the sound when popup window is
displayed.
-o, --output PATH Log file path (default: .bsnotifier.log).
--help Show this message and exit.
Python requirements:
pip3 install -r requirements_testing.txt
for python_version in "3.7" "3.8" "3.9" "3.10" "3.11" ; do pyenv install ${python_version}; done
pyenv local "3.7" "3.8" "3.9" "3.10" "3.11"
We use tox and pytest to run the test suite:
tox
to run the test suite for a particular Python version, you can do:
tox -e py37
These are the linters that will help us to follow good practices and style guides of our source code. We will be using the following static analysis tools, which will be executed when generating a new push in the repository (git hooks).
After cloning the repository run the following command in the repository root:
git config core.hooksPath .githooks
Tools used:
brunette: A best practice Python code formatter.
isort: Python utility / library to sort imports alphabetically, and automatically separated into sections and by type.
prospector: Prospector is a tool to analyse Python code and output information about errors, potential problems, convention violations and complexity.
Tools executed by Prospector:
Tools used:
shellcheck: Finds bugs in your shell scripts (bash).
Installation:
apt install shellcheck
tox -e code_checkers
bash scripts/code_checkers.sh
FAQs
Command line application that shows a popup window when the battery is low
We found that bsnotifier demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.