Найденный в конфигурационном файле Openbox rc.xml
:
# increase by 3%
amixer -q sset Master 3%+
# decrease by 3%
amixer -q sset Master 3%-
# mute/unmute
amixer -q sset Master toggle
amixer
страница руководства может предоставить больше подробную информацию.
запишите сценарий!
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
if [ $battery_level -le 10 ]
then
notify-send "Battery low" "Battery level is ${battery_level}%!"
fi
затем крон это для выполнения каждых нескольких минут или около этого. Но да, если можно сделать это через GUI, это - вероятно, намного лучший способ сделать его.
Поскольку у меня нет Gnome Shell или Корицей установленный, я не могу иметь прямой справки, поскольку доступ к источнику мог быть очень практичным, так как это - довольно легкое добавление такого элементарного расширения с JavaScript.
Необходимо открыться:
/usr/share/cinnamon/js/ui/status/power.js
и поиск percentageText - впоследствии, необходимо смочь добавить всплывающее сообщение или предупреждение.
find / -type f -name power.js
– nesyphlopanuri
13.01.2013, 16:32
У меня была та же самая проблема, и я выяснил обходное решение. Я установил из репозиториев Linux Mint приложение под названием GKrellM. Это контролирует много материала на Вашей машине и существует батарея. Установка с предупреждениями, это работает на меня как очарование.
больше информации в:
кто | grep -e «^ $1» -e «^ $2» -e «^ $3»
должен делать
Я ленивый чувак, и мне нравится делать это просто. ggdG
- это пять нажатий клавиш, в том числе Shift
gg
переходит в первую строку файла, d
- начало команды d
elete и G
- движение для перехода в нижнюю часть файла. Многословно, это перейти к началу файла и удалить все до конца плитки.
Проблема связана со средой KDE. У меня такая же проблема с MintMAYA KDE_version. Когда я работал с Mint9_Gnome, появилось очень полезное всплывающее окно, когда был достигнут определенный уровень низкого энергопотребления (автонастройка out_of_the_box на свежих установках). Очень раздражает то, что его закрывают без совета и без помощи основали даже гуглить много: (
Re: Ответ HDGARROVE, настройка CRON
для запуска Уведомление
на самом деле оказалось мучительно сам. (Я думаю, что Crontab -e
по умолчанию сохраняется через перезагрузку по умолчанию). Я следовал нескольким гидам, я не уверен, что именно исправил его в конце, но вот моя полная установка для запуска проверки каждые 5 минут:
$ Crontab -e
*/5 * * * * sh /home/nrw/.notify-send_setup
*/5 * * * * sh /home/nrw/.battnotif
$ CAT .Notify-send_setup
#!/bin/bash
touch $HOME/.dbus/Xdbus
chmod 600 $HOME/.dbus/Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus
exit 0
$ cat .battnotif
#!/bin/bash
export DISPLAY=:0
XAUTHORITY=/home/nrw/.Xauthority
if [ -r "$HOME/.dbus/Xdbus" ]; then
. "$HOME/.dbus/Xdbus"
fi
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
# I tried to only notify when not charging, but could not get it to work
# STATUS=$(cat /sys/class/power_supply/ADP1/online)
# if [ $battery_level -le 15 ] && [ $STATUS == "0" ]
if [ $battery_level -le 15 ]
then
/usr/bin/notify-send -u critical "Battery low" "Battery level is ${battery_level}%!"
echo 'batt low' >> /home/nrw/cron.log
fi
echo 'ran batt' >> /home/nrw/cron.log
Убедитесь, что Chmod + x
скрипты Bash.
Сейчас я выполняю следующее:
$ crontab -e
*/5 * * * * /home/<my username>/bin/checkLowBattery
$ cat /home/<my username>/bin/checkLowBattery
#!/bin/bash
POWERSUPPLY="/sys/class/power_supply/ACAD/online" # could be different on your system!
TOO_LOW=20 # how low is too low?
NOT_CHARGING="0"
ICON="/usr/share/icons/ubuntu-mono-dark/status/24/battery-low.svg" # eye candy
export DISPLAY=:0
BATTERY_LEVEL=$(acpi -b | grep -P -o '[0-9]+(?=%)')
STATUS=$(cat $POWERSUPPLY)
if [ $BATTERY_LEVEL -le $TOO_LOW -a $STATUS = $NOT_CHARGING ]
then
/usr/bin/notify-send -u critical -i "$ICON" -t 3000 "Battery low" "Battery level is ${BATTERY_LEVEL}%!"
fi
exit 0
Как вы можете видеть, это просто код Orangenarhals с некоторыми изменениями:
, он объясняет, как делать и среди прочего.) $ Найти / usr / share / icons / iname "* Batt * Low *"
) Не забудьте CHMOD + X
Ваши сценарии, вы можете запускать их непосредственно из CRON (Tab), нет необходимости в SH
.
(Это работает на Ubuntu, используя XMonad.)
У меня такая же проблема, и это меня очень расстраивает. Я решил с помощью сценария BatteryAlert.sh :
#!/bin/bash
BATTERY=$(upower -e | grep 'BAT')
while :
do
BATTERY_PERCENTAGE=$(upower -i $BATTERY|grep percentage|awk '{ print $2 }'|sed s/'%'/''/g)
CABLE=$(upower -d | grep -n2 line-power | grep online | awk '{ print $3 }')
if [[ "$BATTERY_PERCENTAGE" -lt "10" && $CABLE = "no" ]]; then
notify-send --urgency=critical "WARNING: Battery is about to die" "Plug in the power cable"
play /usr/share/sounds/KDE-Sys-Warning.ogg &> /dev/null
fi
sleep 10
done
Я использую KDE, но вы можете использовать его в любой среде рабочего стола. Вам не нужно запускать это как пользователь root или сходить с ума по синтаксису crontab. Вам нужно только изменить звук уведомления, если вы хотите звуковое предупреждение. Если вы не хотите запускать сценарий автоматически при запуске среды рабочего стола, поместите сценарий в папку $ USER / bin со сценарием BatteryAlertLauncher.sh :
#!/bin/bash
function getRunningProcesses
{
ps -aux | grep -v grep | grep BatteryAlert.sh
}
if [[ -n "$(getRunningProcesses)" ]] ; then
exit
fi
BatteryAlert.sh&
Убедитесь, что они являются исполняемыми:
chmod u+x $USER/bin/BatteryAlert*
Затем просто выполните следующую команду:
ln -s /home/$(USER)/bin/BatteryAlertLauncher.sh .config/autostart/
Вы также можете запустить сценарий предупреждения вручную из bash, введя эту команду:
BatteryAlertLauncher.sh
Небольшой поворот - на Knoppix (конечно, не на Mint, используемом OP) notify-send был недоступен (пакет libnotify-bin не установлен), поэтому вместо этого я нашел вот это полезным для оповещения:
xmessage Battery low & mplayer /usr/lib/libreoffice/share/gallery/sounds/beam.wav
Я просто бросил это в команду Alarm Command панели Battery Monitor в LXDE, скрипт не нужен.
Это предполагает, что у вас установлен LibreOffice, но этот .wav делает приятный звук при низком энергопотреблении. В Knoppix практически нет .ogg'ов.
Вот как я сделал это в моем Arch linux с Gnome как DE:
#!/bin/bash
eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";
battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
STATUS=$(cat /sys/class/power_supply/ACAD/online)
if [ $battery_level -le 15 ] && [ $STATUS == "0" ]
then
/usr/bin/notify-send -u critical "Battery low" "Battery level is ${battery_level}%!"
fi
Слово ACAD
в STATUS = $ (cat / sys / class / power_supply / ACAD / online)
будет меняться в зависимости от производителя портативного компьютера. Он используется, чтобы определить, подключен ли ваш колен к адаптеру переменного тока или нет. Вот как выглядит мой crontab:
* * * * * bash <path to script>
Не забудьте сделать скрипт исполняемым с помощью chmod u + x <путь к скрипту>
Этот простой вариант отлично работает для меня, требуется установить только простой пакет acpi
(без демонов, определенных окружений рабочего стола и т.п.).
В пользовательском crontab ( crontab -e
) введите следующее (все в одной строке, здесь она разделена для удобства чтения):
*/3 * * * * acpi --battery |
awk -F, '/Discharging/ { if (int($2) < 15) print }' | xargs -ri
env DISPLAY=:0 zenity --warning --text "battery low\n{}"
Она проверяет уровень заряда батареи ( acpi --battery
), и если вы не подключены к зарядному устройству ( / Discharging /
) и если уровень заряда батареи <15
%, это будет происходить каждые 3 минуты ( * / 3
) отобразить сообщение через zenity
, чтобы вас подвести.
Вместо zenity вы можете использовать xmessage
(на действительно спартанской машине) или даже что-то вроде aplay -q /usr/lib/libreoffice/share/gallery/sounds/cow.wav
для звуковых уведомлений (преимущество которых состоит в том, что они не будут прерывать набор текста с клавиатуры и будут работать даже для многопользовательских ноутбуков с несколькими сеансами, когда взлом DISPLAY =: 0
завершится ошибкой)
Если вам также необходимо приостановить / спящий режим на определенном критическом уровне, см. этот ответ
Поскольку вы, очевидно, используете Cinnamon, просто установите Battery Applet с мониторингом и остановка (BAMS) .
Щелкните правой кнопкой мыши панель → + Добавить апплеты на панель → Доступные апплеты (онлайн) , введите «BAMS» в виджете поиска, установите и настройте его.
Это не самое яркое, но пока что оно уже предупредило меня, когда я случайно отключил свой ноутбук от сети.
Загрузите апплет BAMS. Он автоматически предупредит вас, когда батарея достигнет определенного уровня, установленного вами. Это самое простое решение.
С помощью всей информации из всех ответов здесь я создал скрипт и поместил его в репозиторий на GitLab.
Уведомления будут отображаться, когда:
https://gitlab.com/gitaarik/battery-health-notifications
Мы приветствуем участие в расширении возможностей среды.
Сценарий на момент написания этой статьи:
#!/bin/bash
# Run this script as a cronjob every 5 minutes or so, to get notifications when
# battery percentage goes below 30% or above 80%.
# Cronjob line example:
# */5 * * * * /bin/bash /path/to/battery_health_notifications.sh
# This line is to make notify-send always work, also when run in a crontab.
# https://askubuntu.com/questions/298608/notify-send-doesnt-work-from-crontab/346580#346580
export $(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ | tr '\0' '\n')
BATTERY_PATH=$(upower -e | grep battery)
LINE_POWER_PATH=$(upower -e | grep line_power)
BATTERY_PERCENTAGE=$(upower -i $BATTERY_PATH | grep 'percentage:' | awk '{ print $2 }' | sed 's/%//')
CABLE_PLUGGED=$(upower -i $LINE_POWER_PATH | grep -A2 'line-power' | grep online | awk '{ print $2 }')
if [[ $CABLE_PLUGGED == 'yes' ]]; then
if [[ $BATTERY_PERCENTAGE -gt 80 ]]; then
notify-send --urgency=critical "Battery optimization" "Battery reached 80%, unplug the power cable to optimize battery life."
fi
else
if [[ $BATTERY_PERCENTAGE -lt 30 ]]; then
notify-send --urgency=critical "Battery optimization" "Battery is below 30%, plug in the power cable to optimize battery life."
fi
fi