67 lines
1.7 KiB
Lua
67 lines
1.7 KiB
Lua
-- mod-version:3
|
|
local core = require "core"
|
|
local config = require "core.config"
|
|
local common = require "core.common"
|
|
local style = require "core.style"
|
|
local StatusView = require "core.statusview"
|
|
|
|
config.plugins.smallclock = common.merge({
|
|
enabled = true,
|
|
clock_type = "24",
|
|
-- The config specification used by the settings gui
|
|
config_spec = {
|
|
name = "Small Clock",
|
|
{
|
|
label = "Enabled",
|
|
description = "Show or hide the small clock from the status bar.",
|
|
path = "enabled",
|
|
type = "toggle",
|
|
default = true,
|
|
on_apply = function(enabled)
|
|
core.add_thread(function()
|
|
if enabled then
|
|
core.status_view:get_item("status:small-clock"):show()
|
|
else
|
|
core.status_view:get_item("status:small-clock"):hide()
|
|
end
|
|
end)
|
|
end
|
|
},
|
|
{
|
|
label = "Clock Type",
|
|
description = "Choose between 12 or 24 hours clock mode.",
|
|
path = "clock_type",
|
|
type = "selection",
|
|
default = "24",
|
|
values = {
|
|
{"24 Hours", "24"},
|
|
{"12 Hours", "12"}
|
|
}
|
|
}
|
|
}
|
|
}, config.plugins.smallclock)
|
|
|
|
local time = ""
|
|
|
|
local last_time = os.time()
|
|
local function update_time()
|
|
if os.time() > last_time then
|
|
local h = config.plugins.smallclock.clock_type == "24"
|
|
and os.date("%H") or os.date("%I")
|
|
local m = os.date("%M")
|
|
time = string.format("%02d:%02d", h, m)
|
|
last_time = os.time()
|
|
end
|
|
end
|
|
|
|
core.status_view:add_item({
|
|
name = "status:small-clock",
|
|
alignment = StatusView.Item.RIGHT,
|
|
get_item = function()
|
|
update_time()
|
|
return {style.accent, time}
|
|
end,
|
|
position = -1,
|
|
separator = core.status_view.separator2
|
|
})
|