16.04没有低电量弹出通知

我在16.04使用Unity。 出于某种原因,我没有获得低电量的弹出通知。 我必须依靠顶部面板中的电池图标来查看电池是否处于“低电量”状态。 是16.04的默认行为吗? 或者我没有因低电量而弹出窗口?

尝试使用此命令重新安装indicator-power

 sudo apt-get install --reinstall indicator-power 

如果这不能解决问题,请考虑使用我以前的答案提供的电池监控脚本: https : //askubuntu.com/a/603322/295286

下面是python脚本,可以在电池电量超过一定百分比时通知您,并在系统低于10%时暂停系统。 用法很简单:

 python battery_monitor.py INT 

其中INT是您应该收到通知的所需电池百分比的整数值,例如30

您还可以将上述命令添加到启动应用程序,以便在每次登录Unity会话时启动此脚本

源代码

根据聊天和评论中的OP请求,脚本现在有两个参数,第一个用于放电通知,第二个用于收费通知。

也可以作为Github Gitst使用

 #!/usr/bin/env python from gi.repository import Notify import subprocess from time import sleep, time from sys import argv import dbus def send_notification(title, text): try: if Notify.init(argv[0]): n = Notify.Notification.new("Notify") n.update(title, text) n.set_urgency(2) if not n.show(): raise SyntaxError("sending notification failed!") else: raise SyntaxError("can't initialize notification!") except SyntaxError as error: print(error) if error == "sending notification failed!": Notify.uninit() else: Notify.uninit() def run_cmd(cmdlist): try: stdout = subprocess.check_output(cmdlist) except subprocess.CalledProcessError: pass else: if stdout: return stdout def run_dbus_method(bus_type, obj, path, interface, method, arg): if bus_type == "session": bus = dbus.SessionBus() if bus_type == "system": bus = dbus.SystemBus() proxy = bus.get_object(obj, path) method = proxy.get_dbus_method(method, interface) if arg: return method(arg) else: return method() def suspend_system(): run_dbus_method('session', 'com.canonical.Unity', '/com/canonical/Unity/Session', 'com.canonical.Unity.Session', 'Suspend', 'None') def get_battery_percentage(): output = run_cmd(['upower', '--dump']).decode().split('\n') found_battery = False for line in output: if 'BAT' in line: found_battery = True if found_battery and 'percentage' in line: return line.split()[1].split('%')[0] def main(): end = time() battery_path = "" for line in run_cmd(['upower', '-e']).decode().split('\n'): if 'battery_BAT' in line: battery_path = line break while True: notified = False while subprocess.call(['on_ac_power']) == 0: sleep(0.25) run_dbus_method('system', 'org.freedesktop.UPower', battery_path, 'org.freedesktop.UPower.Device', 'Refresh', 'None') battery_percentage = int(get_battery_percentage()) if battery_percentage == int(argv[2]) and not notified: subprocess.call( ['zenity', '--info','--text', 'Battery reached' + argv[2] + '%' ] ) notified = True while subprocess.call(['on_ac_power']) == 1: sleep(0.25) run_dbus_method('system', 'org.freedesktop.UPower', battery_path, 'org.freedesktop.UPower.Device', 'Refresh', 'None') battery_percentage = int(get_battery_percentage()) if battery_percentage <= int(argv[1]): if battery_percentage <= 10: send_notification('Low Battery', 'Will suspend in 60 seconds') sleep(60) suspend_system() continue if end < time(): end = time() + 600 send_notification('Low Battery', 'Plug in your charger') if __name__ == '__main__': main() 

这不正常我有一个16.04运行并获得弹出窗口,但我正在使用gnome shell tho。

您可以创建一个给您消息的脚本。

 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 

然后做一个cron工作并每隔几分钟运行一次。

是的,这很正常。 我写了一个简单的bash脚本来设置电池通知。

 #!/usr/bin/env bash # check if acpi is installed. if [ `dpkg -l | grep acpi | grep -v acpi-support | grep -v acpid | grep -c acpi` -ne 1 ]; then echo "run 'sudo apt install acpi' then run '$0' again." exit fi if [ $# -eq 1 ] && [ "$1" == "--install" ]; then echo "installing battery notifier..." if [ ! -e "$HOME/bin" ]; then mkdir $HOME/bin fi cp $0 $HOME/bin/bn.sh (crontab -l 2>/dev/null; echo "*/2 * * * * $HOME/bin/bn.sh") | crontab - else # check if power adapter is plugged in, if not, check battery status. if [ -z "`acpi -a | grep on-line`" ]; then batlvl=`acpi -b | grep -P -o '[0-9]+(?=%)'` if [ $batlvl -le 15 ] && [ $batlvl -ge 11 ]; then notify-send "Battery is at $batlvl%. Please plug your computer in." elif [ $batlvl -le 10 ] && [ $batlvl -ge 6 ]; then notify-send "Battery is at $batlvl%. Computer will shutdown at 5%." elif [ $batlvl -le 5 ]; then notify-send "BATTERY CRITICALLY LOW, SHUTTING DOWN IN 3 SECONDS!" sleep 3 shutdown -h now fi fi fi 

我也在我的github帐户上有这个和说明。 我希望这会有所帮助,让您更轻松。

我找到了一款出色的应用程序,可用于低电量,全电池等。

读这个

http://www.omgubuntu.co.uk/2016/07/ubuntu-battery-monitor-notifications