summaryrefslogtreecommitdiff
path: root/batteryarc-widget
diff options
context:
space:
mode:
Diffstat (limited to 'batteryarc-widget')
-rw-r--r--batteryarc-widget/README.md2
-rw-r--r--batteryarc-widget/batteryarc.lua81
2 files changed, 83 insertions, 0 deletions
diff --git a/batteryarc-widget/README.md b/batteryarc-widget/README.md
new file mode 100644
index 0000000..96ad074
--- /dev/null
+++ b/batteryarc-widget/README.md
@@ -0,0 +1,2 @@
+# Batteryarc widget
+:hammer: Work in progress...:construction:
diff --git a/batteryarc-widget/batteryarc.lua b/batteryarc-widget/batteryarc.lua
index e69de29..14db87c 100644
--- a/batteryarc-widget/batteryarc.lua
+++ b/batteryarc-widget/batteryarc.lua
@@ -0,0 +1,81 @@
+local awful = require("awful")
+local naughty = require("naughty")
+local wibox = require("wibox")
+local watch = require("awful.widget.watch")
+
+local USERNAME = os.getenv("USER")
+
+batteryarc_widget = wibox.widget {
+ {
+ id = "txt",
+ text = "1",
+ font = "Play 5",
+ widget = wibox.widget.textbox
+ },
+ max_value = 1,
+ rounded_edge = true,
+ thickness = 2,
+ start_angle = 4.71238898, -- 2pi*3/4
+ forced_height = 16,
+ forced_width = 16,
+ bg = "#ffffff11",
+ paddings = 2,
+ widget = wibox.container.arcchart,
+ set_value = function(self, value)
+ self.value = value
+ end,
+}
+
+watch(
+ "acpi", 10,
+ function(widget, stdout, stderr, exitreason, exitcode)
+ local batteryType
+ local _, status, charge_str, time = string.match(stdout, '(.+): (%a+), (%d?%d%d)%%,? ?.*')
+ local charge = tonumber(charge_str)
+ widget.value = charge / 100
+ widget.txt.text = charge
+ end,
+ batteryarc_widget
+)
+
+-- Popup with battery info
+-- One way of creating a pop-up notification - naughty.notify
+local notification
+function show_battery_status()
+ awful.spawn.easy_async([[bash -c 'acpi']],
+ function(stdout, _, _, _)
+ notification = naughty.notify{
+ text = stdout,
+ title = "Battery status",
+ timeout = 5, hover_timeout = 0.5,
+ width = 200,
+ }
+ end
+ )
+end
+batteryarc_widget:connect_signal("mouse::enter", function() show_battery_status() end)
+batteryarc_widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end)
+
+-- Alternative to naughty.notify - tooltip. You can compare both and choose the preferred one
+
+--battery_popup = awful.tooltip({objects = {battery_widget}})
+
+-- To use colors from beautiful theme put
+-- following lines in rc.lua before require("battery"):
+-- beautiful.tooltip_fg = beautiful.fg_normal
+-- beautiful.tooltip_bg = beautiful.bg_normal
+
+--[[ Show warning notification ]]
+function show_battery_warning()
+ naughty.notify{
+ icon = "/home/" .. USERNAME .. "/.config/awesome/nichosi.png",
+ icon_size=100,
+ text = "Huston, we have a problem",
+ title = "Battery is dying",
+ timeout = 5, hover_timeout = 0.5,
+ position = "bottom_right",
+ bg = "#F06060",
+ fg = "#EEE9EF",
+ width = 300,
+ }
+end