From bd18313d125aa1873c21b9cce9bbf81a335e48b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 28 May 2019 17:56:36 +0000 Subject: [PATCH] power: Use more fine-grained battery levels Adwaita-icon-theme added new battery icons which represent battery levels in 10% steps[0]. Use these if they are available, otherwise fall back to the existing icon names for compatibility with older icon themes. [0] https://gitlab.gnome.org/GNOME/adwaita-icon-theme/issues/6 https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/561 --- js/ui/status/power.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/js/ui/status/power.js b/js/ui/status/power.js index cd1c01d86..8ffb0c631 100644 --- a/js/ui/status/power.js +++ b/js/ui/status/power.js @@ -107,10 +107,20 @@ var Indicator = class extends PanelMenu.SystemIndicator { } // The icons - let icon = this._proxy.IconName; + let chargingState = this._proxy.State == UPower.DeviceState.CHARGING + ? '-charging' : ''; + let fillLevel = 10 * Math.floor(this._proxy.Percentage / 10); + let icon = this._proxy.State == UPower.DeviceState.FULLY_CHARGED + ? 'battery-level-100-charged-symbolic' + : `battery-level-${fillLevel}${chargingState}-symbolic`; + this._indicator.icon_name = icon; this._item.icon.icon_name = icon; + let fallbackIcon = this._proxy.IconName; + this._indicator.fallback_icon_name = fallbackIcon; + this._item.icon.fallback_icon_name = fallbackIcon; + // The icon label let label; if (this._proxy.State == UPower.DeviceState.FULLY_CHARGED)