Linux Mint에서 배터리가 거의 소진될 때 어떻게 알림을 받을 수 있나요?

Linux Mint에서 배터리가 거의 소진될 때 어떻게 알림을 받을 수 있나요?

인정하고 싶은 것보다 이런 일이 더 많이 발생했지만 때로는 상태 표시줄에 배터리가 표시되고 컴퓨터가 종료되기 때문에 배터리가 부족해지는 것을 눈치채지 못할 때도 있습니다. 이런 일이 발생하기 전에 큰 경보를 울리고 싶습니다. 나에게 생각나게 하는 방법이 있나요? Ubuntu에는 배터리가 부족해지고 있음을 알려주는 멋진 팝업 창이 있습니다.

답변1

스크립트를 작성하세요!

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를 통해 수행할 수 있다면 아마도 더 나은 접근 방식일 것입니다.

답변2

답변: hdgarrood의 답변, 설정 cron및 실행은 notify-send실제로 매우 까다롭습니다. (다행히도 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 +xBash 스크립트를 확인하세요 .

답변3

여기에 있는 모든 답변의 모든 정보를 사용하여 스크립트를 만들어 GitLab의 저장소에 넣었습니다.

다음과 같은 경우 알림이 표시됩니다.

  • 데이터 케이블이 분리되어 있고 배터리 전원이 30% 미만입니다.
  • 케이블이 연결되어 있고 배터리 충전량이 80% 이상입니다.

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

답변4

분명히 Cinnamon을 실행하고 있으므로 설치하기만 하면 됩니다.모니터링 및 종료 기능을 갖춘 배터리 애플릿(BAMS).

패널을 마우스 오른쪽 버튼으로 클릭 →+ 패널에 미니 프로그램 추가사용 가능한 애플릿(온라인), 검색 위젯에 "BAMS"를 입력한 후 설치하고 구성하세요.

가장 화려하지는 않지만 지금까지는 실수로 노트북의 플러그를 뽑았을 때를 상기시켜줍니다.

관련 정보