init
This commit is contained in:
commit
7c7e8069e2
24
COPYING
Normal file
24
COPYING
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
This is free and unencumbered software released into the public domain.
|
||||||
|
|
||||||
|
Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
distribute this software, either in source code form or as a compiled
|
||||||
|
binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
means.
|
||||||
|
|
||||||
|
In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
of this software dedicate any and all copyright interest in the
|
||||||
|
software to the public domain. We make this dedication for the benefit
|
||||||
|
of the public at large and to the detriment of our heirs and
|
||||||
|
successors. We intend this dedication to be an overt act of
|
||||||
|
relinquishment in perpetuity of all present and future rights to this
|
||||||
|
software under copyright law.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
|
For more information, please refer to <http://unlicense.org/>
|
18
Makefile
Normal file
18
Makefile
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
PREFIX ?= /usr/local
|
||||||
|
|
||||||
|
install:
|
||||||
|
install -Dm755 btw $(PREFIX)/bin/btw
|
||||||
|
install -Dm644 btw.1 $(PREFIX)/share/man/man1/btw.1
|
||||||
|
|
||||||
|
uninstall:
|
||||||
|
rm -v $(PREFIX)/bin/btw $(PREFIX)/share/man/man1/btw.1
|
||||||
|
|
||||||
|
pkgbuild:
|
||||||
|
mkdir -p src
|
||||||
|
cp btw btw.1 src/
|
||||||
|
makepkg -c
|
||||||
|
|
||||||
|
readme:
|
||||||
|
@groff -man -Tascii btw.1 | col -bx
|
||||||
|
|
||||||
|
.PHONY: readme
|
15
PKGBUILD
Normal file
15
PKGBUILD
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
pkgname=btw
|
||||||
|
pkgver=1.0
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc=''
|
||||||
|
arch=(any)
|
||||||
|
url=https://git.nxhs.cloud/ge/btw
|
||||||
|
license=(Unlicense)
|
||||||
|
depends=(coreutils acpi libnotify)
|
||||||
|
provides=(btw)
|
||||||
|
conflicts=()
|
||||||
|
srcdir="$PWD"
|
||||||
|
package() {
|
||||||
|
install -Dm755 $srcdir/btw $pkgdir/usr/bin/btw
|
||||||
|
install -Dm644 $srcdir/btw.1 $pkgdir/usr/share/man/man1/btw.1
|
||||||
|
}
|
113
README
Normal file
113
README
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
BTW(1) User Commands BTW(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
NAME
|
||||||
|
btw - battery watchdog
|
||||||
|
|
||||||
|
SYNOPSIS
|
||||||
|
btw [-c|--crit value] [-p|--preriod seconds] [-l|--log file]
|
||||||
|
[-j|--syslog] [-s|--summary text] [-b|--body text] [-w|--watch]
|
||||||
|
btw --help
|
||||||
|
btw --version
|
||||||
|
|
||||||
|
DESCRIPTION
|
||||||
|
Send notification when critical battery level reached.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
-v, --version
|
||||||
|
Print version and exit.
|
||||||
|
|
||||||
|
-h, --help
|
||||||
|
Print this help message and exit.
|
||||||
|
|
||||||
|
-c, --crit value
|
||||||
|
Battery critical value in percents [default: 10]
|
||||||
|
|
||||||
|
-p, --preriod seconds
|
||||||
|
Battery check out period in seconds [default: 30]
|
||||||
|
|
||||||
|
-l, --log file
|
||||||
|
Log file [default: ~/.cache/btw.log] -j, --syslog Use logger in-
|
||||||
|
stead of log file.
|
||||||
|
|
||||||
|
-s, --summary text
|
||||||
|
Custom notification title text.
|
||||||
|
|
||||||
|
-b, --body text
|
||||||
|
Custom notification body text.
|
||||||
|
|
||||||
|
-w, --watch
|
||||||
|
Follow to the log file (tail -f).
|
||||||
|
|
||||||
|
INVOKING
|
||||||
|
Run watchdog in background. See application autostart options for your
|
||||||
|
desktop environment or init system. For example add in your ~/.xinitrc:
|
||||||
|
|
||||||
|
btw &
|
||||||
|
|
||||||
|
or create ~/.config/autostart/btw.desktop if you have GNOME Desktop:
|
||||||
|
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Laptop battery watchdog (btw)
|
||||||
|
Exec=btw
|
||||||
|
Type=Application
|
||||||
|
|
||||||
|
LOGGING
|
||||||
|
btw writes battery status log in log file. Set file by --log option.
|
||||||
|
|
||||||
|
Log format:
|
||||||
|
|
||||||
|
[date time] [state] [level]%
|
||||||
|
|
||||||
|
There is:
|
||||||
|
|
||||||
|
[date time]
|
||||||
|
`date +'%Y-%m-%d %H:%M:%S'` command output.
|
||||||
|
|
||||||
|
[state]
|
||||||
|
Battery status, can be 'Charging' or 'Discharging'.
|
||||||
|
|
||||||
|
[level]
|
||||||
|
Battery current level in percents.
|
||||||
|
|
||||||
|
If --syslog option is passed use following commands to watch log.
|
||||||
|
|
||||||
|
btw -jw
|
||||||
|
# or
|
||||||
|
journalctl -t btw -f
|
||||||
|
|
||||||
|
EXAMPLES
|
||||||
|
btw will send notification at every battery checkout while current bat-
|
||||||
|
tery level is lower than critical value. For example, with following
|
||||||
|
command:
|
||||||
|
|
||||||
|
btw -c 15 -p 30
|
||||||
|
|
||||||
|
you will recieve notification every 30 seconds until battery is under
|
||||||
|
10%. You can set up custom notification text via --summary and --body
|
||||||
|
options.
|
||||||
|
|
||||||
|
Variables can be used in notification:
|
||||||
|
|
||||||
|
level Current battery level in percents.
|
||||||
|
|
||||||
|
state Battery status, can be full, charging or discharging.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
|
||||||
|
btw -s 'Battery is very low!' -b 'Status: $state, $level%'
|
||||||
|
|
||||||
|
FILES
|
||||||
|
~/.cache/btw.log
|
||||||
|
Log file.
|
||||||
|
|
||||||
|
/tmp/btw.lock
|
||||||
|
Lock file. Prevents unwanted notifications.
|
||||||
|
|
||||||
|
SEE ALSO
|
||||||
|
acpi(1), notify-send(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
btw 1.0 2022-01-10 BTW(1)
|
228
btw
Executable file
228
btw
Executable file
@ -0,0 +1,228 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# * Battery Watchdog (see help text below).
|
||||||
|
#
|
||||||
|
# This is free and unencumbered software released into the public domain.
|
||||||
|
#
|
||||||
|
# Anyone is free to copy, modify, publish, use, compile, sell, or
|
||||||
|
# distribute this software, either in source code form or as a compiled
|
||||||
|
# binary, for any purpose, commercial or non-commercial, and by any
|
||||||
|
# means.
|
||||||
|
#
|
||||||
|
# In jurisdictions that recognize copyright laws, the author or authors
|
||||||
|
# of this software dedicate any and all copyright interest in the
|
||||||
|
# software to the public domain. We make this dedication for the benefit
|
||||||
|
# of the public at large and to the detriment of our heirs and
|
||||||
|
# successors. We intend this dedication to be an overt act of
|
||||||
|
# relinquishment in perpetuity of all present and future rights to this
|
||||||
|
# software under copyright law.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||||
|
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||||
|
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
# OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
#
|
||||||
|
# For more information, please refer to <http://unlicense.org/>
|
||||||
|
# ---
|
||||||
|
# Dependencies:
|
||||||
|
# acpi <https://sourceforge.net/projects/acpiclient/>
|
||||||
|
# libnotify <https://salsa.debian.org/gnome-team/libnotify>
|
||||||
|
#
|
||||||
|
# Installation:
|
||||||
|
# # on Arch Linux:
|
||||||
|
# pacman -S acpi # (commynity repo)
|
||||||
|
# pacman -S libnotyfy # (extra repo)
|
||||||
|
# # on Debian/Ubuntu:
|
||||||
|
# apt-get install acpi
|
||||||
|
# apt-get install libnotify
|
||||||
|
|
||||||
|
print_help() {
|
||||||
|
printf \
|
||||||
|
"btw - battery watchdog. Send notification when critical battery level reached.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
btw [-c|--crit \033[4mvalue\033[0m] [-p|--preriod \033[4mseconds\033[0m] \
|
||||||
|
[-l|--log \033[4mfile\033[0m]
|
||||||
|
[-j|--syslog] [-s|--summary t\033[4mext\033[0m] \
|
||||||
|
[-b|--body t\033[4mext\033[0m] [-w|--watch]
|
||||||
|
btw --help
|
||||||
|
btw --version
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-v, --version
|
||||||
|
Print version and exit.
|
||||||
|
|
||||||
|
-h, --help
|
||||||
|
Print this help message and exit.
|
||||||
|
|
||||||
|
-c, --crit \033[4mvalue\033[0m
|
||||||
|
Battery critical value in percents [default: 10]
|
||||||
|
|
||||||
|
-p, --preriod \033[4mseconds\033[0m
|
||||||
|
Battery check out period in seconds [default: 30]
|
||||||
|
|
||||||
|
-l, --log \033[4mfile\033[0m
|
||||||
|
Log file [default: ~/.cache/btw.log]
|
||||||
|
|
||||||
|
-j, --syslog
|
||||||
|
Use logger instead of log file.
|
||||||
|
|
||||||
|
-s, --summary \033[4mtext\033[0m
|
||||||
|
Custom notification title text.
|
||||||
|
|
||||||
|
-b, --body \033[4mtext\033[0m
|
||||||
|
Custom notification body text.
|
||||||
|
|
||||||
|
-w, --watch
|
||||||
|
Follow to the log file (tail -f).
|
||||||
|
|
||||||
|
See \033[1mbtw\033[0m(1) for full help.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
send_notify() {
|
||||||
|
notify-send --urgency=critical --icon=battery-empty --category=System \
|
||||||
|
"$(eval echo "$1")" "$(eval echo "$2")"
|
||||||
|
}
|
||||||
|
|
||||||
|
is_int() {
|
||||||
|
if [ -n "$1" ] && [ "$1" -eq "$1" ] 2>/dev/null; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo 'Value is not integer' >&2; exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Transform long options to short ones
|
||||||
|
for ARG in "$@"; do
|
||||||
|
shift
|
||||||
|
case "$ARG" in
|
||||||
|
--crit)
|
||||||
|
set -- "$@" "-c"
|
||||||
|
;;
|
||||||
|
--period)
|
||||||
|
set -- "$@" "-p"
|
||||||
|
;;
|
||||||
|
--log)
|
||||||
|
set -- "$@" "-l"
|
||||||
|
;;
|
||||||
|
--syslog)
|
||||||
|
set -- "$@" "-j"
|
||||||
|
;;
|
||||||
|
--summary)
|
||||||
|
set -- "$@" "-s"
|
||||||
|
;;
|
||||||
|
--body)
|
||||||
|
set -- "$@" "-b"
|
||||||
|
;;
|
||||||
|
--watch)
|
||||||
|
set -- "$@" "-w"
|
||||||
|
;;
|
||||||
|
--help)
|
||||||
|
set -- "$@" "-h"
|
||||||
|
;;
|
||||||
|
--version)
|
||||||
|
set -- "$@" "-v"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set -- "$@" "$ARG"
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Parse short opts
|
||||||
|
while getopts c:p:l:js:b:whv OPT; do
|
||||||
|
case "$OPT" in
|
||||||
|
c)
|
||||||
|
is_int "$OPTARG"
|
||||||
|
critical="$OPTARG"
|
||||||
|
;;
|
||||||
|
p)
|
||||||
|
is_int "$OPTARG"
|
||||||
|
period="$OPTARG"
|
||||||
|
;;
|
||||||
|
l)
|
||||||
|
log="$OPTARG"
|
||||||
|
;;
|
||||||
|
j)
|
||||||
|
syslog=1
|
||||||
|
;;
|
||||||
|
s)
|
||||||
|
summary="$OPTARG"
|
||||||
|
;;
|
||||||
|
b)
|
||||||
|
body="$OPTARG"
|
||||||
|
;;
|
||||||
|
w)
|
||||||
|
watch=1
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
print_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
echo 1.0
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo Unknown option: "$OPT" >&2
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Default values
|
||||||
|
period="${period:-30}" # check battery every `period` seconds
|
||||||
|
critical="${critical:-10}" # battery limit (in %)
|
||||||
|
clevel="${clevel:-100}" # current battery value (in %, temporary variable)
|
||||||
|
summary="${summary:-Extremely low battery: \$level%}"
|
||||||
|
body="${body:-Check the charger, battery currently is \$state}"
|
||||||
|
lock=/tmp/btw.lock # lock file
|
||||||
|
log="${log:-"$HOME"/.cache/btw.log}"
|
||||||
|
|
||||||
|
mkdir -p "$HOME"/.cache
|
||||||
|
|
||||||
|
if [ -n "$watch" ]; then
|
||||||
|
if [ -n "$syslog" ]; then
|
||||||
|
journalctl -t btw -f
|
||||||
|
else
|
||||||
|
tail -f "$log"
|
||||||
|
fi
|
||||||
|
exit "$?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf 'crit: %s%%; period: %ss; log: %s\n' "$critical" "$period" "$log" >&2
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
battery="$(acpi -b | awk '{print $3 " " $4}' |
|
||||||
|
sed -E 's/,|%//g;' | tr '[:upper:]' '[:lower:]')"
|
||||||
|
level="${battery##* }" # e.g. "49" (in percents)
|
||||||
|
state="${battery%% *}" # e.g. "charging"
|
||||||
|
|
||||||
|
if [ "$level" -le "$critical" ]; then
|
||||||
|
if [ ! -f "$lock" ]; then
|
||||||
|
send_notify "$summary" "$body"
|
||||||
|
touch "$lock"
|
||||||
|
fi
|
||||||
|
# Warn in every percent less
|
||||||
|
if [ "$level" -le "$clevel" ]; then
|
||||||
|
send_notify "$summary" "$body"
|
||||||
|
touch "$lock"
|
||||||
|
clevel="$level"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
[ -f "$lock" ] && rm "$lock"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_message="$(printf '%s %s %s%%' \
|
||||||
|
"$(date +'%Y-%m-%d %H:%M:%S')" "$state" "$level")"
|
||||||
|
if [ -n "$syslog" ]; then
|
||||||
|
echo "$log_message"
|
||||||
|
logger -i "$$" -t btw -- "$log_message"
|
||||||
|
else
|
||||||
|
echo "$log_message" | tee -a "$log"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep "$period"
|
||||||
|
done
|
146
btw.1
Normal file
146
btw.1
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
.\" btw (c) ge <https://nixhacks.net>
|
||||||
|
.\" License: The Unlicense <https://unlicense.org/>
|
||||||
|
.\" vim: set filetype=groff:
|
||||||
|
.TH BTW 1 "2022-01-10" "btw 1.0" "User Commands"
|
||||||
|
.SH NAME
|
||||||
|
btw \- battery watchdog
|
||||||
|
.SH SYNOPSIS
|
||||||
|
.SY btw
|
||||||
|
.OP \-c|\-\-crit value
|
||||||
|
.OP \-p|\-\-preriod seconds
|
||||||
|
.OP \-l|\-\-log file
|
||||||
|
.OP \-j|\-\-syslog
|
||||||
|
.OP \-s|\-\-summary text
|
||||||
|
.OP \-b|\-\-body text
|
||||||
|
.OP \-w|\-\-watch
|
||||||
|
.SY btw
|
||||||
|
.B \-\-help
|
||||||
|
.SY btw
|
||||||
|
.B \-\-version
|
||||||
|
.YS
|
||||||
|
.SH DESCRIPTION
|
||||||
|
Send notification when critical battery level reached.
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
\fB\-v\fR, \fB\-\-version\fR
|
||||||
|
Print version and exit.
|
||||||
|
.TP
|
||||||
|
\fB\-h\fR, \fB\-\-help\fR
|
||||||
|
Print this help message and exit.
|
||||||
|
.TP
|
||||||
|
\fB\-c\fR, \fB\-\-crit\fR \fIvalue\fR
|
||||||
|
Battery critical value in percents [default: 10]
|
||||||
|
.TP
|
||||||
|
\fB\-p\fR, \fB\-\-preriod\fR \fIseconds\fR
|
||||||
|
Battery check out period in seconds [default: 30]
|
||||||
|
.TP
|
||||||
|
\fB\-l\fR, \fB\-\-log\fR \fIfile\fR
|
||||||
|
Log file [default: ~/.cache/btw.log]
|
||||||
|
\fB\-j\fR, \fB\-\-syslog\fR
|
||||||
|
Use logger instead of log file.
|
||||||
|
.TP
|
||||||
|
\fB\-s\fR, \fB\-\-summary\fR \fItext\fR
|
||||||
|
Custom notification title text.
|
||||||
|
.TP
|
||||||
|
\fB\-b\fR, \fB\-\-body\fR \fItext\fR
|
||||||
|
Custom notification body text.
|
||||||
|
.TP
|
||||||
|
\fB\-w\fR, \fB\-\-watch\fR
|
||||||
|
Follow to the log file (tail -f).
|
||||||
|
.SH INVOKING
|
||||||
|
Run watchdog in background. See application autostart options for your
|
||||||
|
desktop environment or init system. For example add in your ~/.xinitrc:
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
btw &
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
or create ~/.config/autostart/btw.desktop if you have GNOME Desktop:
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Laptop battery watchdog (btw)
|
||||||
|
Exec=btw
|
||||||
|
Type=Application
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
.SH LOGGING
|
||||||
|
btw writes battery status log in log file. Set file by --log option.
|
||||||
|
.PP
|
||||||
|
Log format:
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
[date time] [state] [level]%
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
There is:
|
||||||
|
.TP
|
||||||
|
[date time]
|
||||||
|
`date +'%Y-%m-%d %H:%M:%S'` command output.
|
||||||
|
.TP
|
||||||
|
[state]
|
||||||
|
Battery status, can be 'Charging' or 'Discharging'.
|
||||||
|
.TP
|
||||||
|
[level]
|
||||||
|
Battery current level in percents.
|
||||||
|
.PP
|
||||||
|
If --syslog option is passed use following commands to watch log.
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
btw -jw
|
||||||
|
# or
|
||||||
|
journalctl -t btw -f
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
.SH EXAMPLES
|
||||||
|
.B btw
|
||||||
|
will send notification at every battery checkout while current battery
|
||||||
|
level is lower than critical value. For example, with following command:
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
btw -c 15 -p 30
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
you will recieve notification every 30 seconds until battery is under 10%.
|
||||||
|
You can set up custom notification text via --summary and --body options.
|
||||||
|
.PP
|
||||||
|
Variables can be used in notification:
|
||||||
|
.TP
|
||||||
|
.B level
|
||||||
|
Current battery level in percents.
|
||||||
|
.TP
|
||||||
|
.B state
|
||||||
|
Battery status, can be
|
||||||
|
.IR full ,
|
||||||
|
.IR charging
|
||||||
|
or
|
||||||
|
.IR discharging .
|
||||||
|
.PP
|
||||||
|
For example:
|
||||||
|
.PP
|
||||||
|
.in +4m
|
||||||
|
.EX
|
||||||
|
btw -s 'Battery is very low!' -b 'Status: $state, $level%'
|
||||||
|
.EE
|
||||||
|
.in
|
||||||
|
.PP
|
||||||
|
.SH FILES
|
||||||
|
.TP
|
||||||
|
~/.cache/btw.log
|
||||||
|
Log file.
|
||||||
|
.TP
|
||||||
|
/tmp/btw.lock
|
||||||
|
Lock file. Prevents unwanted notifications.
|
||||||
|
.SH SEE ALSO
|
||||||
|
.BR acpi (1),
|
||||||
|
.BR notify-send (1)
|
Loading…
Reference in New Issue
Block a user