aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/statusbar/panel/widgets/battery.lua
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2024-03-05 14:48:59 +0100
committerdelta <darkussdelta@gmail.com>2024-03-05 14:48:59 +0100
commit510ef8e178929cf5e0c7fd5a5120fecf5f1b79f2 (patch)
tree3582e5cd7d000335ca94f2a009f3aed57bd86919 /.config/awesome/ui/statusbar/panel/widgets/battery.lua
parent95ba8030f722a616cff06c122dcfb2f63e25cf45 (diff)
idk anymore
Diffstat (limited to '.config/awesome/ui/statusbar/panel/widgets/battery.lua')
-rw-r--r--.config/awesome/ui/statusbar/panel/widgets/battery.lua70
1 files changed, 70 insertions, 0 deletions
diff --git a/.config/awesome/ui/statusbar/panel/widgets/battery.lua b/.config/awesome/ui/statusbar/panel/widgets/battery.lua
new file mode 100644
index 0000000..52685b7
--- /dev/null
+++ b/.config/awesome/ui/statusbar/panel/widgets/battery.lua
@@ -0,0 +1,70 @@
+local gears = require "gears"
+local lit = require "lib.lit"
+local qbezier = require "quarrel.bezier"
+local qui = require "quarrel.ui"
+local wibox = require "wibox"
+
+local widget = wibox.widget {
+ widget = wibox.container.constraint,
+ height = 120,
+ width = 120,
+ strategy = "exact",
+ {
+ widget = lit.widget.linechart,
+ -- max_value = 30,
+ -- step_width = 10,
+ -- scale = true,
+ -- stack = false,
+ -- forced_height = 30,
+ -- step_hook = curvaceous
+ -- values = { 1, 10, 100 },
+ fill = true,
+ fill_color = "#00ff00",
+ -- fill_border = true,
+ fill_border_color = "#ff0000",
+ draw_bg = function(cr, width, _, min, max, transform)
+ cr:set_line_width(1)
+ local min_abs = math.abs(min)
+ local dash_pattern = { 6, 4 }
+ local rendered_zero, zero_overlap = false, false
+ for i = 0, 4 do
+ local temp = ((min_abs + max) * (i / 4)) - min_abs
+ rendered_zero = rendered_zero or temp == 0
+ if rendered_zero and not zero_overlap and min < 0 then
+ cr:set_source_rgba(gears.color.parse_color "#0000ff")
+ zero_overlap = true
+ else
+ cr:set_dash(dash_pattern, 1, 0)
+ cr:set_source_rgba(gears.color.parse_color "#ff0000ff")
+ end
+ local y = transform(temp)
+ cr:move_to(0, y)
+ cr:line_to(width, y)
+ cr:stroke()
+ cr:set_dash({}, 0, 0)
+ end
+
+ if not rendered_zero then
+ cr:set_source_rgba(gears.color.parse_color "#0000ff")
+ local h_0 = transform(0)
+ cr:move_to(0, h_0)
+ cr:line_to(width, h_0)
+ cr:stroke()
+ end
+ end,
+ },
+}
+
+-- for _ = 1, 100 do
+-- widget.widget:add_value(math.random(0, 30))
+-- end
+
+-- require "gears.timer" {
+-- autostart = true,
+-- timeout = 0.2,
+-- callback = function ()
+-- widget.widget:add_value(math.random(0, 30))
+-- end
+-- }
+
+return widget