背景(可跳过):由于某些(可能是硬件)缺陷,我的笔记本电脑有时会毫无预警地断开与电池的连接,如果交流适配器未连接到计算机和电源,则会导致立即且不安全的关机。几个所谓的计算机维修人员已经证明完全无法找到问题所在(其中一个试图让我更换硬盘,声称其中 80% 已损坏,尽管我仍然可以访问所有文件),所以在浪费了很多钱却一无所获之后,我决定忍受它,只在连接到外部电源时使用笔记本电脑。
实际问题:如何让 Ubuntu(16.04)在交流适配器的电源中断时立即通知我(通过短信和/或声音)?
自己的尝试:我写了以下脚本
notify-send -i face-worried "No power!" "Connect the adapter."
/opt/custom_scripts/warning_AC.sh
既可以以 root身份运行,也可以以普通用户身份运行(我在 中都试过了bash
)。然后我尝试模仿在这个答案在unix SA上让这个脚本在交流电插上电源时运行。也就是说,我已经监控了
sudo udevadm info --path=/sys/class/power_supply/AC0
识别插入或拔出适配器时所做的更改。我看到(其中包括)
E: POWER_SUPPLY_NAME=AC0
E: POWER_SUPPLY_ONLINE=0
E: SUBSYSTEM=power_supply
第二行中,当电源线插入时,状态0
变为1
,当电源线拔出时,状态变为。因此,我决定需要放入的脚本/etc/udev/rules.d/80-power.rules
是
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_NAME}=="AC0", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/opt/custom_scripts/warning_AC.sh"
我重新启动了计算机,但插入或拔出电源时没有任何反应。
我对 Linux 和 Ubuntu 还很陌生,想尽可能多地学习命令、脚本等知识,但我只能做到这些了。谢谢你的帮助。
答案1
从Ubuntu,完美符合您定义的应用程序,BATTERY MONITOR
。
首先安装依赖项:
sudo apt install python3 python3-gi libnotify-dev acpi
然后,通过 ppa 安装:
sudo add-apt-repository ppa:maateen/battery-monitor -y; sudo apt-get update; sudo apt-get install battery-monitor -y
或者
从开发者处下载应用程序Github页面并安装它(考虑到您正在使用Xenial
):
cd ~/Downloads && wget -c https://github.com/maateen/battery-monitor/releases/download/v0.4/battery-monitor_0.4-xenial_all.deb && sudo dpkg -i battery-monitor_0.4-xenial_all.deb
虽然没有提到,但快速重启并不会有什么坏处。
编辑:-此外,您似乎需要至少手动启动该应用程序一次才能使该应用程序开始工作。