diff --git a/awesome/background_widget.lua b/awesome/background_widget.lua
index c43ac5c..a6e6429 100644
--- a/awesome/background_widget.lua
+++ b/awesome/background_widget.lua
@@ -1,26 +1,43 @@
+local os = require('os')
+naughty = require('naughty')
local wibox = require('wibox')
local awful = require('awful')
local gears = require('gears')
+local json = require('json')
-function todo_list_widget(s)
+local home = os.getenv('HOME')
+local todo_path = home .. '/.config/todo/todo.json'
- local text = wibox.widget{
- markup = '\n TODO\n - Hello',
+function read_all(file)
+
+ return content
+end
+
+function todo_list_widget(todo, s)
+
+ local text = '\n ' .. todo.title .. '\n'
+
+ for key, item in pairs(todo.items) do
+ text = text .. ' - ' .. item .. '\n'
+ end
+
+ local text = wibox.widget {
+ markup = text,
align = 'left',
valign = 'top',
- font = "Ubuntu 20",
+ font = "Ubuntu 18",
widget = wibox.widget.textbox
}
- local widget = wibox.widget.background(text, "#000000aa", function(cr, width, height)
+ local widget = wibox.widget.background(text, todo.color, function(cr, width, height)
gears.shape.rounded_rect(cr, width, height, 20)
end)
widget.shape_border_width = 1
widget.shape_border_color = "#ffffff"
- widget.forced_width = 500
- widget.forced_height = 500
- widget.point = { x = 20, y = 30 }
+ widget.forced_width = todo.width
+ widget.forced_height = todo.height
+ widget.point = { x = todo.x, y = todo.y }
return widget
@@ -28,22 +45,39 @@ end
function add_background_widget(s)
- background_widget = awful.wibar({
- screen = s,
- height = s.geometry.height,
- bg = "#00000000",
- })
+ local f = io.open(todo_path, "rb")
- local text = wibox.widget.textbox("Hello to you")
- text.point = { x = 75, y = 200 }
+ if f ~= nil then
- local w = todo_list_widget(s)
+ local content = f:read("*all")
+ f:close()
- background_widget:setup {
- layout = wibox.layout.manual,
- w
- }
+ todo = json.parse(content)
- background_widget:struts({left=0, right=0, top=0, bottom=0})
+ local l = wibox.layout {
+ layout = wibox.layout.manual
+ }
+
+ local widgets = {}
+
+ for key, val in pairs(todo) do
+ l:add(todo_list_widget(val, s))
+ end
+
+ background_widget = awful.wibar({
+ screen = s,
+ height = s.geometry.height,
+ bg = "#00000000",
+ })
+
+ background_widget:setup {
+ l,
+ layout = wibox.layout.manual
+ }
+
+ background_widget:struts({left=0, right=0, top=0, bottom=0})
+
+ end
end
+