Remove calendar, awful.widget.calendar_popup exists
This commit is contained in:
parent
57160f5dbc
commit
452fe88ef3
|
@ -34,8 +34,4 @@ conf.cmd.editor.gui = "gvim"
|
||||||
-- Mod-r binding for running programs
|
-- Mod-r binding for running programs
|
||||||
conf.cmd.run = function() awful.util.spawn("dmenu_run -l 10 -y 350") end
|
conf.cmd.run = function() awful.util.spawn("dmenu_run -l 10 -y 350") end
|
||||||
|
|
||||||
conf.calendar = {
|
|
||||||
start_week = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
return conf
|
return conf
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit 6cba6e0cc4b08b75125d62a1b9747b2b27218b26
|
Subproject commit bda8241754d6372ca39c9112eb1c187ea30b10d3
|
|
@ -10,8 +10,6 @@ local mb = binder.modal
|
||||||
|
|
||||||
local mpd = require("separable.mpd")
|
local mpd = require("separable.mpd")
|
||||||
local handy = require("handy")
|
local handy = require("handy")
|
||||||
--local calendar = require("separable.calendar")
|
|
||||||
|
|
||||||
local myglobalkeys = {}
|
local myglobalkeys = {}
|
||||||
|
|
||||||
local function mpdserver(host)
|
local function mpdserver(host)
|
||||||
|
@ -63,12 +61,9 @@ local docmap = {
|
||||||
{"j", binder.spawn("dmjavadoc"), "Javadoc" }
|
{"j", binder.spawn("dmjavadoc"), "Javadoc" }
|
||||||
}
|
}
|
||||||
|
|
||||||
--local calendarmap = {
|
local notifymap = {
|
||||||
-- o = { function() calendar:next() end, "Next" },
|
{"m", binder.spawn("newmails -p"), "Show unread mails" },
|
||||||
-- i = { function() calendar:prev() end, "Prev" },
|
}
|
||||||
-- onClose = function() calendar:hide() end
|
|
||||||
--}
|
|
||||||
|
|
||||||
|
|
||||||
local myglobalkeys = awful.util.table.join(
|
local myglobalkeys = awful.util.table.join(
|
||||||
awful.key({ }, "Pause", binder.spawn('rofi -show window')),
|
awful.key({ }, "Pause", binder.spawn('rofi -show window')),
|
||||||
|
|
|
@ -1,238 +0,0 @@
|
||||||
local beautiful = require("beautiful")
|
|
||||||
local wibox = require("wibox")
|
|
||||||
local conf = conf
|
|
||||||
local awful = require("awful")
|
|
||||||
|
|
||||||
local log = log
|
|
||||||
local calendar = {}
|
|
||||||
|
|
||||||
local weekdays = {"Su","Mo","Tu","We","Th","Fr","Sa"}
|
|
||||||
local monthdays = {31,28,31,30,31,30,31,31,30,31,30,31}
|
|
||||||
local monthnames = {"January", "February", "March", "April", "May", "June",
|
|
||||||
"July", "August", "September", "October", "November", "December"}
|
|
||||||
|
|
||||||
local num_rows = 6
|
|
||||||
|
|
||||||
local function get_weekday(day)
|
|
||||||
index = day + conf.calendar.start_week
|
|
||||||
if index > 7 then
|
|
||||||
index = index - math.floor(index / 7) * 7
|
|
||||||
end
|
|
||||||
print(index)
|
|
||||||
return weekdays[index]
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar.setup()
|
|
||||||
local cal = {}
|
|
||||||
setmetatable(cal, { __index = calendar })
|
|
||||||
|
|
||||||
cal.wibox = wibox({
|
|
||||||
fg = beautiful.fg_normal,
|
|
||||||
bg = beautiful.bg_normal,
|
|
||||||
border_width = 1,
|
|
||||||
border_color = beautiful.bg_focus,
|
|
||||||
})
|
|
||||||
|
|
||||||
cal.title = wibox.widget.textbox()
|
|
||||||
cal.layout = wibox.layout.fixed.vertical()
|
|
||||||
|
|
||||||
cal.layout:add(cal.title)
|
|
||||||
cal.wibox:set_widget(cal.layout)
|
|
||||||
cal.wibox.screen = 1
|
|
||||||
|
|
||||||
cal.wibox.visible = false
|
|
||||||
cal.wibox.ontop = true
|
|
||||||
cal.title:set_align("center")
|
|
||||||
cal:set_title("Calendar loading")
|
|
||||||
local wdays = wibox.layout.flex.horizontal()
|
|
||||||
local fieldwidth = 0
|
|
||||||
for day = 1,7,1 do
|
|
||||||
local label = wibox.widget.textbox()
|
|
||||||
wdays:add(label)
|
|
||||||
label:set_align("center")
|
|
||||||
label:set_markup("<b><i>"..get_weekday(day).."</i></b>")
|
|
||||||
local w,_ = label:fit(screen[1].geometry.width, screen[1].geometry.height)
|
|
||||||
fieldwidth = math.max(w, fieldwidth)
|
|
||||||
if beautiful.fontface then
|
|
||||||
label:set_font(beautiful.fontface .. " " .. (beautiful.fontsize + 4))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
cal.layout:add(wdays)
|
|
||||||
local _, title_h = cal.title:fit(0, 0)
|
|
||||||
local _, wdays_h = wdays:fit(0, 0)
|
|
||||||
cal.header_height = title_h + wdays_h
|
|
||||||
cal.header_width = (fieldwidth + 10) * 7
|
|
||||||
|
|
||||||
local cols = {}
|
|
||||||
local days = {}
|
|
||||||
for row = 1, num_rows, 1 do
|
|
||||||
days[row] = {}
|
|
||||||
cols[row] = wibox.layout.flex.horizontal()
|
|
||||||
for day = 1,7,1 do
|
|
||||||
days[row][day] = wibox.widget.textbox()
|
|
||||||
local d = days[row][day]
|
|
||||||
cols[row]:add(d)
|
|
||||||
d:set_text("[99]")
|
|
||||||
d:set_align("center")
|
|
||||||
if beautiful.fontface then
|
|
||||||
d:set_font(beautiful.fontface .. " " .. (beautiful.fontsize + 4))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
cal.layout:add(cols[row])
|
|
||||||
end
|
|
||||||
cal.cols = cols
|
|
||||||
cal.days = days
|
|
||||||
|
|
||||||
cal.offset = 0
|
|
||||||
|
|
||||||
cal:calculate_size()
|
|
||||||
cal:fill_days()
|
|
||||||
|
|
||||||
cal.layout:buttons(awful.util.table.join(
|
|
||||||
awful.button({ }, 1, function () cal:next() end),
|
|
||||||
awful.button({ }, 2, function () cal:now() end),
|
|
||||||
awful.button({ }, 3, function () cal:prev() end)
|
|
||||||
));
|
|
||||||
|
|
||||||
return cal
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:calculate_size()
|
|
||||||
local minheight = 0
|
|
||||||
local fieldwidth = 0
|
|
||||||
local inner_minheight = 0
|
|
||||||
|
|
||||||
for row = 1, num_rows, 1 do
|
|
||||||
for day = 1,7,1 do
|
|
||||||
local w,_ = self.days[row][day]:fit(screen[1].geometry.width, screen[1].geometry.height)
|
|
||||||
fieldwidth = math.max(w, fieldwidth)
|
|
||||||
end
|
|
||||||
_, inner_minheight = self.cols[row]:fit(0, 0)
|
|
||||||
minheight = minheight + inner_minheight
|
|
||||||
end
|
|
||||||
|
|
||||||
-- _, inner_minheight = self.title:fit(screen[1].geometry.width, screen[1].geometry.height)
|
|
||||||
-- minheight = minheight + inner_minheight
|
|
||||||
|
|
||||||
self.wibox.width = math.max(fieldwidth * 9, self.header_width);
|
|
||||||
self.wibox.height = math.max(50, minheight) + self.header_height
|
|
||||||
self.wibox.x = 18
|
|
||||||
self.wibox.y = 0 -- screen[1].geometry.height - self.wibox.height - 50
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function calendar:set_day_by_date(row, col, date, current)
|
|
||||||
if(current == date.day) then
|
|
||||||
self.days[row][col]:set_markup(
|
|
||||||
"<span background=\"" .. beautiful.bg_focus
|
|
||||||
.. "\" foreground=\""..beautiful.fg_focus
|
|
||||||
.. "\" weight=\"ultrabold\">["..current.."]</span>")
|
|
||||||
else
|
|
||||||
self.days[row][col]:set_text(current)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:set_day_label(row, col, label)
|
|
||||||
self.days[row][col]:set_markup(label)
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:next()
|
|
||||||
self.offset = self.offset + 1
|
|
||||||
self:fill_days()
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:prev()
|
|
||||||
self.offset = self.offset - 1
|
|
||||||
self:fill_days()
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:now()
|
|
||||||
self.offset = 0
|
|
||||||
self:fill_days()
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:fill_days()
|
|
||||||
local date = os.date("*t")
|
|
||||||
if self.offset ~= 0 then
|
|
||||||
local newdate = {}
|
|
||||||
newdate.year = date.year
|
|
||||||
newdate.day = 1
|
|
||||||
newdate.month = date.month + self.offset
|
|
||||||
|
|
||||||
while newdate.month < 1 do
|
|
||||||
newdate.year = newdate.year - 1
|
|
||||||
newdate.month = newdate.month + 12
|
|
||||||
end
|
|
||||||
|
|
||||||
while newdate.month > 12 do
|
|
||||||
newdate.year = newdate.year + 1
|
|
||||||
newdate.month = newdate.month - 12
|
|
||||||
end
|
|
||||||
|
|
||||||
date = os.date("*t", os.time(newdate))
|
|
||||||
end
|
|
||||||
|
|
||||||
self:set_title(monthnames[date.month] .. " " .. date.year)
|
|
||||||
|
|
||||||
local startday = (date.wday - date.day - conf.calendar.start_week) % 7 + 1
|
|
||||||
local cur_day = 1
|
|
||||||
|
|
||||||
for d = 1, startday - 1, 1 do
|
|
||||||
self.days[1][d]:set_text("")
|
|
||||||
end
|
|
||||||
|
|
||||||
for d = startday, 7, 1 do
|
|
||||||
if self.offset == 0 then
|
|
||||||
self:set_day_by_date(1, d, date, cur_day)
|
|
||||||
else
|
|
||||||
self.days[1][d]:set_text(cur_day)
|
|
||||||
end
|
|
||||||
|
|
||||||
cur_day = cur_day + 1
|
|
||||||
end
|
|
||||||
for r = 2,num_rows,1 do
|
|
||||||
for d = 1, 7, 1 do
|
|
||||||
if(cur_day > monthdays[date.month]) then
|
|
||||||
self.days[r][d]:set_text("")
|
|
||||||
else
|
|
||||||
if self.offset == 0 then
|
|
||||||
self:set_day_by_date(r, d, date, cur_day)
|
|
||||||
else
|
|
||||||
self.days[r][d]:set_text(cur_day)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
cur_day = cur_day + 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:toggle()
|
|
||||||
self:update_before_showing()
|
|
||||||
self.wibox.visible = not self.wibox.visible
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:show()
|
|
||||||
self:update_before_showing()
|
|
||||||
self.wibox.visible = true
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:hide()
|
|
||||||
self.wibox.visible = false
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:update_before_showing()
|
|
||||||
if not self.wibox.visible then
|
|
||||||
self:now()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function calendar:set_title(text)
|
|
||||||
self.title:set_markup("<span weight=\"bold\" size=\"larger\">"..text.."</span>")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- settings.x_offset < 0 and
|
|
||||||
-- screen[s].geometry.x - width + settings.x_offset or
|
|
||||||
-- settings.x_offset
|
|
||||||
|
|
||||||
return calendar.setup()
|
|
Loading…
Reference in a new issue