mirror of
https://github.com/elenapan/dotfiles.git
synced 2026-01-11 03:32:38 +08:00
79 lines
2.7 KiB
Lua
79 lines
2.7 KiB
Lua
local helpers = require("helpers")
|
|
local icons = require("icons")
|
|
local notifications = require("notifications")
|
|
|
|
-- Helper variables
|
|
local charger_first_time = true
|
|
local battery_first_time = true
|
|
local charger_plugged = true
|
|
local battery_full_already_notified = true
|
|
local battery_low_already_notified = false
|
|
local battery_critical_already_notified = false
|
|
local notif
|
|
local battery_current = 100
|
|
local battery_full_threshold = 96
|
|
|
|
-- Full / Low / Critical notifications
|
|
awesome.connect_signal("evil::battery", function(battery)
|
|
local message
|
|
local icon
|
|
local timeout
|
|
battery_current = battery
|
|
if battery_first_time then
|
|
battery_first_time = false
|
|
return
|
|
end
|
|
if not charger_plugged then
|
|
icon = icons.battery
|
|
if battery <= user.battery_threshold_critical and not battery_critical_already_notified then
|
|
battery_critical_already_notified = true
|
|
message = "CRITICAL"
|
|
-- message = helpers.colorize_text("CRITICAL", x.color9)
|
|
timeout = 0
|
|
elseif battery <= user.battery_threshold_low and not battery_low_already_notified then
|
|
battery_low_already_notified = true
|
|
message = "Low"
|
|
-- message = helpers.colorize_text("Low", x.color11)
|
|
timeout = 6
|
|
end
|
|
else
|
|
icon = icons.battery_charging
|
|
if battery > battery_full_threshold and not battery_full_already_notified then
|
|
battery_full_already_notified = true
|
|
message = "Full"
|
|
-- message = helpers.colorize_text("Full", x.color10)
|
|
timeout = 6
|
|
end
|
|
end
|
|
|
|
-- If message has been initialized, then we need to send a notification
|
|
if message then
|
|
notif = notifications.notify_dwim({ title = "Battery", message = message, icon = icon, timeout = timeout, app_name = "battery" }, notif)
|
|
end
|
|
end)
|
|
|
|
-- Charger notifications
|
|
awesome.connect_signal("evil::charger", function(plugged)
|
|
charger_plugged = plugged
|
|
local message
|
|
local icon
|
|
if plugged then
|
|
battery_critical_already_notified = false
|
|
battery_low_already_notified = false
|
|
-- Avoids notifying of a full battery if it was almost full after plugging
|
|
battery_full_already_notified = battery_current > battery_full_threshold
|
|
message = "Plugged"
|
|
icon = icons.battery_charging
|
|
else
|
|
battery_full_already_notified = false
|
|
message = "Unplugged"
|
|
icon = icons.battery
|
|
end
|
|
|
|
-- Do not send a notification the first time (when AwesomeWM (re)starts)
|
|
if charger_first_time then
|
|
charger_first_time = false
|
|
else
|
|
notif = notifications.notify_dwim({ title = "Charger", message = message, icon = icon, timeout = 3, app_name = "charger" }, notif)
|
|
end
|
|
end)
|